Commit adb8e8e6 authored by Jan Möbius's avatar Jan Möbius
Browse files

Tobias: Documentation update for splats

git-svn-id: http://www.openflipper.org/svnrepo/OpenFlipper/branches/Free@14991 383ad7c9-94d9-4d36-a494-682f7c89f535
parent 87e9889f
......@@ -73,21 +73,21 @@ const SplatCloud::SelectionsHandle SplatCloud::SELECTIONS_HANDLE( "<Selections>"
void SplatCloud::copySplatProperties( const SplatCloud &_splatCloud )
{
// deep copy all splat-properties
SplatProperties::const_iterator splatPropertyIter;
SplatPropertyMap::const_iterator splatPropertyIter;
for( splatPropertyIter = _splatCloud.splatProperties_.begin(); splatPropertyIter != _splatCloud.splatProperties_.end(); ++splatPropertyIter )
{
// create new deep copy of current splat-property
SplatPropertyInterface *prop = splatPropertyIter->second->clone();
SplatPropertyInterface *prop = splatPropertyIter->second.property_->clone();
// check if out of memory
if( prop == 0 )
{
std::cerr << "Out of memory for a copy of SplatCloud's Splat-Property \"" << splatPropertyIter->first << "\"." << std::endl;
std::cerr << "Out of memory for a copy of SplatCloud's splat-property \"" << splatPropertyIter->first << "\"." << std::endl;
continue;
}
// insert new copy into splat-property map with same name as before
splatProperties_[ splatPropertyIter->first ] = prop;
// insert new property map entry into splat-property map with same name as before
splatProperties_[ splatPropertyIter->first ] = SplatPropertyMapEntry( prop, splatPropertyIter->second.numRequests_ );
}
// Get pointers to predefined splat-properties.
......@@ -103,21 +103,21 @@ void SplatCloud::copySplatProperties( const SplatCloud &_splatCloud )
void SplatCloud::copyCloudProperties( const SplatCloud &_splatCloud )
{
// deep copy all cloud-properties
CloudProperties::const_iterator cloudPropertyIter;
CloudPropertyMap::const_iterator cloudPropertyIter;
for( cloudPropertyIter = _splatCloud.cloudProperties_.begin(); cloudPropertyIter != _splatCloud.cloudProperties_.end(); ++cloudPropertyIter )
{
// create new deep copy of current cloud-property
CloudPropertyInterface *prop = cloudPropertyIter->second->clone();
CloudPropertyInterface *prop = cloudPropertyIter->second.property_->clone();
// check if out of memory
if( prop == 0 )
{
std::cerr << "Out of memory for a copy of SplatCloud's Cloud-Property \"" << cloudPropertyIter->first << "\"." << std::endl;
std::cerr << "Out of memory for a copy of SplatCloud's cloud-property \"" << cloudPropertyIter->first << "\"." << std::endl;
continue;
}
// insert new copy into cloud-property map with same name as before
cloudProperties_[ cloudPropertyIter->first ] = prop;
// insert new property map entry into cloud-property map with same name as before
cloudProperties_[ cloudPropertyIter->first ] = CloudPropertyMapEntry( prop, cloudPropertyIter->second.numRequests_ );
}
// Get pointers to predefined cloud-properties.
......@@ -147,12 +147,12 @@ SplatCloud::SplatCloud( const SplatCloud &_splatCloud )
void SplatCloud::clearSplatProperties()
{
// free memory of all splat-properties
SplatProperties::const_iterator splatPropertyIter;
SplatPropertyMap::const_iterator splatPropertyIter;
for( splatPropertyIter = splatProperties_.begin(); splatPropertyIter != splatProperties_.end(); ++splatPropertyIter )
delete splatPropertyIter->second;
delete splatPropertyIter->second.property_;
// clear splat-property map
SplatProperties().swap( splatProperties_ );
SplatPropertyMap().swap( splatProperties_ );
// reset pointers to predefined splat-properties
resetPredefinedSplatPropertyPointers();
......@@ -165,12 +165,12 @@ void SplatCloud::clearSplatProperties()
void SplatCloud::clearCloudProperties()
{
// free memory of all cloud-properties
CloudProperties::const_iterator cloudPropertyIter;
CloudPropertyMap::const_iterator cloudPropertyIter;
for( cloudPropertyIter = cloudProperties_.begin(); cloudPropertyIter != cloudProperties_.end(); ++cloudPropertyIter )
delete cloudPropertyIter->second;
delete cloudPropertyIter->second.property_;
// clear cloud-property map
CloudProperties().swap( cloudProperties_ );
CloudPropertyMap().swap( cloudProperties_ );
// reset pointers to predefined cloud-properties
resetPredefinedCloudPropertyPointers();
......@@ -215,9 +215,9 @@ void SplatCloud::swap( SplatCloud &_splatCloud )
void SplatCloud::clearSplats()
{
// clear data vector of all splat-properties
SplatProperties::const_iterator splatPropertyIter;
SplatPropertyMap::const_iterator splatPropertyIter;
for( splatPropertyIter = splatProperties_.begin(); splatPropertyIter != splatProperties_.end(); ++splatPropertyIter )
splatPropertyIter->second->clear();
splatPropertyIter->second.property_->clear();
// reset number of splats
numSplats_ = 0;
......@@ -230,9 +230,9 @@ void SplatCloud::clearSplats()
void SplatCloud::pushbackSplat()
{
// add one element at end of data vector of all splat-properties
SplatProperties::const_iterator splatPropertyIter;
SplatPropertyMap::const_iterator splatPropertyIter;
for( splatPropertyIter = splatProperties_.begin(); splatPropertyIter != splatProperties_.end(); ++splatPropertyIter )
splatPropertyIter->second->pushback();
splatPropertyIter->second.property_->pushback();
// increase number of splats
++numSplats_;
......@@ -245,9 +245,9 @@ void SplatCloud::pushbackSplat()
void SplatCloud::resizeSplats( unsigned int _num )
{
// resize data vector of all splat-properties
SplatProperties::const_iterator splatPropertyIter;
SplatPropertyMap::const_iterator splatPropertyIter;
for( splatPropertyIter = splatProperties_.begin(); splatPropertyIter != splatProperties_.end(); ++splatPropertyIter )
splatPropertyIter->second->resize( _num );
splatPropertyIter->second.property_->resize( _num );
// update number of splats
numSplats_ = _num;
......
......@@ -73,9 +73,9 @@ unsigned int SplatCloud::eraseSplatsByFlag( const std::vector<T> &_flags )
if( numDelete != 0 )
{
// keep only elements with given indices in data vector of all splat-properties
SplatProperties::const_iterator splatPropertyIter;
SplatPropertyMap::const_iterator splatPropertyIter;
for( splatPropertyIter = splatProperties_.begin(); splatPropertyIter != splatProperties_.end(); ++splatPropertyIter )
splatPropertyIter->second->crop( indices );
splatPropertyIter->second.property_->crop( indices );
// update number of splats
numSplats_ = indices.size();
......@@ -110,16 +110,24 @@ template <typename T>
template <typename T>
bool SplatCloud::addSplatProperty( const SplatCloud::PropertyHandleT<T> &_handle, SplatCloud::SplatPropertyT<T> *(&_property) )
bool SplatCloud::requestSplatProperty( const SplatCloud::PropertyHandleT<T> &_handle, SplatCloud::SplatPropertyT<T> *(&_property) )
{
// try to find property
SplatProperties::iterator iter = splatProperties_.find( _handle );
// try to find property map entry
SplatPropertyMap::iterator iter = splatProperties_.find( _handle );
// if a property with the same name is already present, try to cast and abort
// check if a property with the same name is already present
if( iter != splatProperties_.end() )
{
_property = dynamic_cast<SplatPropertyT<T> *>( iter->second );
return (_property != 0);
// try to cast
_property = dynamic_cast<SplatPropertyT<T> *>( iter->second.property_ );
// check if cast failed and property in map has different type. if so, return failure (_property is 0)
if( _property == 0 )
return false;
// increase number of requests and return success (_property is a valid pointer)
++iter->second.numRequests_;
return true;
}
// create new property
......@@ -137,8 +145,8 @@ bool SplatCloud::addSplatProperty( const SplatCloud::PropertyHandleT<T> &_handle
return false;
}
// insert new property and return success (_property is a valid pointer)
splatProperties_[ _handle ] = _property;
// insert new property map entry and return success (_property is a valid pointer)
splatProperties_[ _handle ] = SplatPropertyMapEntry( _property, 1 );
return true;
}
......@@ -147,16 +155,24 @@ bool SplatCloud::addSplatProperty( const SplatCloud::PropertyHandleT<T> &_handle
template <typename T>
bool SplatCloud::addCloudProperty( const SplatCloud::PropertyHandleT<T> &_handle, SplatCloud::CloudPropertyT<T> *(&_property) )
bool SplatCloud::requestCloudProperty( const SplatCloud::PropertyHandleT<T> &_handle, SplatCloud::CloudPropertyT<T> *(&_property) )
{
// try to find property
CloudProperties::iterator iter = cloudProperties_.find( _handle );
// try to find property map entry
CloudPropertyMap::iterator iter = cloudProperties_.find( _handle );
// if a property with the same name is already present, try to cast and abort
// check if a property with the same name is already present
if( iter != cloudProperties_.end() )
{
_property = dynamic_cast<CloudPropertyT<T> *>( iter->second );
return (_property != 0);
// try to cast
_property = dynamic_cast<CloudPropertyT<T> *>( iter->second.property_ );
// check if cast failed and property in map has different type. if so, return failure (_property is 0)
if( _property == 0 )
return false;
// increase number of requests and return success (_property is a valid pointer)
++iter->second.numRequests_;
return true;
}
// create new property
......@@ -166,8 +182,8 @@ bool SplatCloud::addCloudProperty( const SplatCloud::PropertyHandleT<T> &_handle
if( _property == 0 )
return false;
// insert new property and return success (_property is a valid pointer)
cloudProperties_[ _handle ] = _property;
// insert new property map entry and return success (_property is a valid pointer)
cloudProperties_[ _handle ] = CloudPropertyMapEntry( _property, 1 );
return true;
}
......@@ -176,25 +192,34 @@ bool SplatCloud::addCloudProperty( const SplatCloud::PropertyHandleT<T> &_handle
template <typename T>
void SplatCloud::removeSplatProperty( const SplatCloud::PropertyHandleT<T> &_handle )
bool SplatCloud::releaseSplatProperty( const SplatCloud::PropertyHandleT<T> &_handle, SplatCloud::SplatPropertyT<T> *(&_property) )
{
// try to find property
SplatProperties::iterator iter = splatProperties_.find( _handle );
// try to find property map entry
SplatPropertyMap::iterator iter = splatProperties_.find( _handle );
// set prop to 0 if *not* found or cast fails, otherwise to a valid pointer
SplatPropertyT<T> *prop = (iter == splatProperties_.end()) ? 0 : dynamic_cast<SplatPropertyT<T> *>( iter->second );
// set _property to 0 if *not* found or cast fails, otherwise to a valid pointer
_property = (iter == splatProperties_.end()) ? 0 : dynamic_cast<SplatPropertyT<T> *>( iter->second.property_ );
// if a property with the same name but a different type is present, do *not* remove any property
// if *not* a valid pointer, abort
if( prop == 0 )
return;
// if *not* a valid pointer, abort and return failure (_property is 0)
if( _property == 0 )
return false;
// decrease number of request
--iter->second.numRequests_;
// free memory of property
delete prop;
// check if property should *not* be removed yet. if so, return success (_property is a valid pointer)
if( iter->second.numRequests_ != 0 )
return true;
// free memory of property and reset pointer
delete _property;
_property = 0;
// remove property
// remove property map entry and return false because _property is 0
splatProperties_.erase( iter );
return false;
}
......@@ -202,25 +227,34 @@ void SplatCloud::removeSplatProperty( const SplatCloud::PropertyHandleT<T> &_han
template <typename T>
void SplatCloud::removeCloudProperty( const SplatCloud::PropertyHandleT<T> &_handle )
bool SplatCloud::releaseCloudProperty( const SplatCloud::PropertyHandleT<T> &_handle, SplatCloud::CloudPropertyT<T> *(&_property) )
{
// try to find property
CloudProperties::iterator iter = cloudProperties_.find( _handle );
// try to find property map entry
CloudPropertyMap::iterator iter = cloudProperties_.find( _handle );
// set prop to 0 if *not* found or cast fails, otherwise to a valid pointer
CloudPropertyT<T> *prop = (iter == cloudProperties_.end()) ? 0 : dynamic_cast<CloudPropertyT<T> *>( iter->second );
// set _property to 0 if *not* found or cast fails, otherwise to a valid pointer
_property = (iter == cloudProperties_.end()) ? 0 : dynamic_cast<CloudPropertyT<T> *>( iter->second.property_ );
// if a property with the same name but a different type is present, do *not* remove any property
// if *not* a valid pointer, abort
if( prop == 0 )
return;
// if *not* a valid pointer, abort and return failure (_property is 0)
if( _property == 0 )
return false;
// decrease number of request
--iter->second.numRequests_;
// free memory of property
delete prop;
// check if property should *not* be removed yet. if so, return success (_property is a valid pointer)
if( iter->second.numRequests_ != 0 )
return true;
// remove property
// free memory of property and reset pointer
delete _property;
_property = 0;
// remove property map entry and return false because _property is 0
cloudProperties_.erase( iter );
return false;
}
......@@ -230,11 +264,11 @@ void SplatCloud::removeCloudProperty( const SplatCloud::PropertyHandleT<T> &_han
template <typename T>
void SplatCloud::getSplatProperty( const SplatCloud::PropertyHandleT<T> &_handle, SplatCloud::SplatPropertyT<T> *(&_property) )
{
// try to find property
SplatProperties::const_iterator iter = splatProperties_.find( _handle );
// try to find property map entry
SplatPropertyMap::const_iterator iter = splatProperties_.find( _handle );
// set _property to 0 if *not* found or cast fails, otherwise to a valid pointer
_property = (iter == splatProperties_.end()) ? 0 : dynamic_cast<SplatPropertyT<T> *>( iter->second );
_property = (iter == splatProperties_.end()) ? 0 : dynamic_cast<SplatPropertyT<T> *>( iter->second.property_ );
}
......@@ -244,11 +278,11 @@ void SplatCloud::getSplatProperty( const SplatCloud::PropertyHandleT<T> &_handle
template <typename T>
void SplatCloud::getSplatProperty( const SplatCloud::PropertyHandleT<T> &_handle, const SplatCloud::SplatPropertyT<T> *(&_property) ) const
{
// try to find property
SplatProperties::const_iterator iter = splatProperties_.find( _handle );
// try to find property map entry
SplatPropertyMap::const_iterator iter = splatProperties_.find( _handle );
// set _property to 0 if *not* found or cast fails, otherwise to a valid pointer
_property = (iter == splatProperties_.end()) ? 0 : dynamic_cast<const SplatPropertyT<T> *>( iter->second );
_property = (iter == splatProperties_.end()) ? 0 : dynamic_cast<const SplatPropertyT<T> *>( iter->second.property_ );
}
......@@ -258,11 +292,11 @@ void SplatCloud::getSplatProperty( const SplatCloud::PropertyHandleT<T> &_handle
template <typename T>
void SplatCloud::getCloudProperty( const SplatCloud::PropertyHandleT<T> &_handle, SplatCloud::CloudPropertyT<T> *(&_property) )
{
// try to find property
CloudProperties::const_iterator iter = cloudProperties_.find( _handle );
// try to find property map entry
CloudPropertyMap::const_iterator iter = cloudProperties_.find( _handle );
// set _property to 0 if *not* found or cast fails, otherwise to a valid pointer
_property = (iter == cloudProperties_.end()) ? 0 : dynamic_cast<CloudPropertyT<T> *>( iter->second );
_property = (iter == cloudProperties_.end()) ? 0 : dynamic_cast<CloudPropertyT<T> *>( iter->second.property_ );
}
......@@ -272,9 +306,9 @@ void SplatCloud::getCloudProperty( const SplatCloud::PropertyHandleT<T> &_handle
template <typename T>
void SplatCloud::getCloudProperty( const SplatCloud::PropertyHandleT<T> &_handle, const SplatCloud::CloudPropertyT<T> *(&_property) ) const
{
// try to find property
CloudProperties::const_iterator iter = cloudProperties_.find( _handle );
// try to find property map entry
CloudPropertyMap::const_iterator iter = cloudProperties_.find( _handle );
// set _property to 0 if *not* found or cast fails, otherwise to a valid pointer
_property = (iter == cloudProperties_.end()) ? 0 : dynamic_cast<const CloudPropertyT<T> *>( iter->second );
_property = (iter == cloudProperties_.end()) ? 0 : dynamic_cast<const CloudPropertyT<T> *>( iter->second.property_ );
}
......@@ -571,7 +571,7 @@ QString SplatCloudObject::getObjectinfo()
}
else
{
SplatCloud::SplatProperties::const_iterator splatPropertyIter;
SplatCloud::SplatPropertyMap::const_iterator splatPropertyIter;
for( splatPropertyIter = splatCloud_->splatProperties().begin(); splatPropertyIter != splatCloud_->splatProperties().end(); ++splatPropertyIter )
output += QString( " " ) + splatPropertyIter->first.c_str();
}
......@@ -583,7 +583,7 @@ QString SplatCloudObject::getObjectinfo()
}
else
{
SplatCloud::CloudProperties::const_iterator cloudPropertyIter;
SplatCloud::CloudPropertyMap::const_iterator cloudPropertyIter;
for( cloudPropertyIter = splatCloud_->cloudProperties().begin(); cloudPropertyIter != splatCloud_->cloudProperties().end(); ++cloudPropertyIter )
output += QString( " " ) + cloudPropertyIter->first.c_str();
}
......
......@@ -81,11 +81,11 @@ static const int COLORRANGE_0_255 = 1;
FilePTSPlugin::FilePTSPlugin() :
loadOptions_( 0 ),
saveOptions_( 0 ),
loadBinaryFile_ ( 0 ),
loadBinaryFile_( 0 ),
loadNormals_ ( 0 ),
loadPointsizes_ ( 0 ),
loadPointsizes_( 0 ),
loadColors_ ( 0 ),
loadColorRange_ ( 0 ),
loadColorRange_( 0 ),
loadIndices_ ( 0 ),
saveBinaryFile_( 0 ),
saveNormals_ ( 0 ),
......@@ -134,7 +134,7 @@ bool FilePTSPlugin::readBinaryFile( const char *_filename, SplatCloud &_splatClo
// check success of requests
if( !success )
{
emit log( LOGERR, QString( "Out of memory for input file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Out of memory for input file \"" ) + _filename + QString( "\".\n" ) );
return false; // return failure
}
......@@ -142,7 +142,7 @@ bool FilePTSPlugin::readBinaryFile( const char *_filename, SplatCloud &_splatClo
FILE *file = fopen( _filename, "rb" );
if( !file )
{
emit log( LOGERR, QString( "Could not open input file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Could not open input file \"" ) + _filename + QString( "\".\n" ) );
return false;
}
......@@ -153,7 +153,7 @@ bool FilePTSPlugin::readBinaryFile( const char *_filename, SplatCloud &_splatClo
// check file type
if( fileType != 1 && fileType != 2 )
{
emit log( LOGERR, QString( "Bad filetype (" ) + QString::number( fileType ) + QString( ") in input file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Bad filetype (" ) + QString::number( fileType ) + QString( ") in input file \"" ) + _filename + QString( "\".\n" ) );
fclose( file );
return false; // return failure
}
......@@ -253,13 +253,13 @@ bool FilePTSPlugin::readBinaryFile( const char *_filename, SplatCloud &_splatClo
// check for errors
if( ferror( file ) )
{
emit log( LOGERR, QString( "Could not read input file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Could not read input file \"" ) + _filename + QString( "\".\n" ) );
fclose( file );
return false; // return failure
}
if( feof( file ) )
{
emit log( LOGERR, QString( "Unexpected end in input file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Unexpected end in input file \"" ) + _filename + QString( "\".\n" ) );
fclose( file );
return false; // return failure
}
......@@ -308,7 +308,7 @@ bool FilePTSPlugin::readTextFile( const char *_filename, SplatCloud &_splatCloud
// check success of requests
if( !success )
{
emit log( LOGERR, QString( "Out of memory for input file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Out of memory for input file \"" ) + _filename + QString( "\".\n" ) );
return false; // return failure
}
......@@ -316,7 +316,7 @@ bool FilePTSPlugin::readTextFile( const char *_filename, SplatCloud &_splatCloud
FILE *file = fopen( _filename, "rb" );
if( !file )
{
emit log( LOGERR, QString( "Could not open input file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Could not open input file \"" ) + _filename + QString( "\".\n" ) );
return false;
}
......@@ -405,13 +405,13 @@ bool FilePTSPlugin::readTextFile( const char *_filename, SplatCloud &_splatCloud
// check for errors
if( ferror( file ) )
{
emit log( LOGERR, QString( "Could not read input file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Could not read input file \"" ) + _filename + QString( "\".\n" ) );
fclose( file );
return false; // return failure
}
if( feof( file ) )
{
emit log( LOGERR, QString( "Unexpected end in input file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Unexpected end in input file \"" ) + _filename + QString( "\".\n" ) );
fclose( file );
return false; // return failure
}
......@@ -420,7 +420,7 @@ bool FilePTSPlugin::readTextFile( const char *_filename, SplatCloud &_splatCloud
// check for errors
if( !feof( file ) ) // if end-of-file is *not* reached, something went wrong
{
emit log( LOGERR, QString( "Bad file format of input file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Bad file format of input file \"" ) + _filename + QString( "\".\n" ) );
fclose( file );
return false; // return failure
}
......@@ -464,7 +464,7 @@ bool FilePTSPlugin::writeBinaryFile( const char *_filename, const SplatCloudNode
// (saveColors && !_splatCloudNode->splatCloud().hasColors() ) ||
// (saveIndices && !_splatCloudNode->splatCloud().hasIndices() )
//{
// emit log( LOGERR, QString( "Desired properties not available for output file \"" ) + _filename + QString( "\"\n." ) );
// emit log( LOGERR, QString( "Desired properties not available for output file \"" ) + _filename + QString( "\".\n" ) );
// return false; // return failure
//}
......@@ -472,7 +472,7 @@ bool FilePTSPlugin::writeBinaryFile( const char *_filename, const SplatCloudNode
FILE *file = fopen( _filename, "wb" );
if( !file )
{
emit log( LOGERR, QString( "Could not open output file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Could not open output file \"" ) + _filename + QString( "\".\n" ) );
return false;
}
......@@ -565,7 +565,7 @@ bool FilePTSPlugin::writeBinaryFile( const char *_filename, const SplatCloudNode
// check for errors
if( ferror( file ) )
{
emit log( LOGERR, QString( "Could not write output file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Could not write output file \"" ) + _filename + QString( "\".\n" ) );
fclose( file );
return false; // return failure
}
......@@ -609,7 +609,7 @@ bool FilePTSPlugin::writeTextFile( const char *_filename, const SplatCloudNode *
// (saveColors && !_splatCloudNode->splatCloud().hasColors() ) ||
// (saveIndices && !_splatCloudNode->splatCloud().hasIndices() )
//{
// emit log( LOGERR, QString( "Desired properties not available for output file \"" ) + _filename + QString( "\"\n." ) );
// emit log( LOGERR, QString( "Desired properties not available for output file \"" ) + _filename + QString( "\".\n" ) );
// return false; // return failure
//}
......@@ -617,7 +617,7 @@ bool FilePTSPlugin::writeTextFile( const char *_filename, const SplatCloudNode *
FILE *file = fopen( _filename, "wt" );
if( !file )
{
emit log( LOGERR, QString( "Could not open output file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Could not open output file \"" ) + _filename + QString( "\".\n" ) );
return false;
}
......@@ -705,7 +705,7 @@ bool FilePTSPlugin::writeTextFile( const char *_filename, const SplatCloudNode *
// check for errors
if( ferror( file ) )
{
emit log( LOGERR, QString( "Could not write output file \"" ) + _filename + QString( "\"\n." ) );
emit log( LOGERR, QString( "Could not write output file \"" ) + _filename + QString( "\".\n" ) );
fclose( file );
return false; // return failure
}
......
......@@ -91,7 +91,7 @@ signals:
// -- LoadSave Interface --
void addEmptyObject( DataType _type, int &_objectId );
void deleteObject( int _objectId );
void deleteObject ( int _objectId );
void updatedObject( int _objectId, const UpdateType &_type );
//-- Logging Interface --
......
......@@ -210,18 +210,18 @@ public slots:
// VERTEX OPERATIONS
//==========================================
void selectVertices ( int _objectId, IdList _vertexList ); /// Select given vertices
void unselectVertices ( int _objectId, IdList _vertexList ); /// Unselect given vertices
void selectAllVertices ( int _objectId ); /// Select all vertices
void clearVertexSelection ( int _objectId ); /// Unselect all vertices
void invertVertexSelection ( int _objectId ); /// Invert the current vertex selection
IdList getVertexSelection ( int _objectId ); /// Return a list of all selected vertices
void deleteVertexSelection ( int _objectId ); /// Delete vertices that are currently selected
void colorizeVertexSelection( int _objectId, int _r, int _g, int _b, int _a ); /// Colorize the vertex selection
void selectVertices ( int _objectId, IdList _vertexList ); //!< Select given vertices
void unselectVertices ( int _objectId, IdList _vertexList ); //!< Unselect given vertices
void selectAllVertices ( int _objectId ); //!< Select all vertices
void clearVertexSelection ( int _objectId ); //!< Unselect all vertices
void invertVertexSelection ( int _objectId ); //!< Invert the current vertex selection
IdList getVertexSelection ( int _objectId ); //!< Return a list of all selected vertices
void deleteVertexSelection ( int _objectId ); //!< Delete vertices that are currently selected
void colorizeVertexSelection( int _objectId, int _r, int _g, int _b, int _a ); //!< Colorize the vertex selection
//===========================================================================
void lassoSelect( QRegion &_region, PrimitiveType _primitiveType, bool _deselection ); /// Lasso selection tool
void lassoSelect( QRegion &_region, PrimitiveType _primitiveType, bool _deselection ); //!< Lasso selection tool
/** @} */
......@@ -232,11 +232,11 @@ public slots:
private:
bool splatCloudDeleteSelection ( SplatCloud *_splatCloud, PrimitiveType _primitiveType ); /// Delete all selected elements of a SplatCloud
void splatCloudToggleSelection ( SplatCloud *_splatCloud, uint _index, ACG::Vec3d &_hit_point, PrimitiveType _primitiveType ); /// Toggle SplatCloud selection
void splatCloudSphereSelection ( SplatCloud *_splatCloud, uint _index, ACG::Vec3d &_hit_point, double _radius, PrimitiveType _primitiveTypes, bool _deselection ); /// Use the event to paint selection with a sphere
bool splatCloudVolumeSelection ( SplatCloud *_splatCloud, ACG::GLState &_state, QRegion *_region, PrimitiveType _primitiveTypes, bool _deselection ); /// Surface volume selection tool
void splatCloudColorizeSelection ( SplatCloud *_splatCloud, PrimitiveType _primitiveTypes, int _r, int _g, int _b, int _a ); /// Colorize the selection
bool splatCloudDeleteSelection ( SplatCloud *_splatCloud, PrimitiveType _primitiveType ); //!< Delete all selected elements of a SplatCloud
void splatCloudToggleSelection ( SplatCloud *_splatCloud, uint _index, ACG::Vec3d &_hit_point, PrimitiveType _primitiveType ); //!< Toggle SplatCloud selection
void splatCloudSphereSelection ( SplatCloud *_splatCloud, uint _index, ACG::Vec3d &_hit_point, double _radius, PrimitiveType _primitiveTypes, bool _deselection ); //!< Use the event to paint selection with a sphere
bool splatCloudVolumeSelection ( SplatCloud *_splatCloud, ACG::GLState &_state, QRegion *_region, PrimitiveType _primitiveTypes, bool _deselection ); //!< Surface volume selection tool
void splatCloudColorizeSelection ( SplatCloud *_splatCloud, PrimitiveType _primitiveTypes, int _r, int _g, int _b, int _a ); //!< Colorize the selection
/** @} */