ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
LasIOFilter Class Reference

#include <LasIOFilter.h>

Inheritance diagram for LasIOFilter:
Collaboration diagram for LasIOFilter:

Public Member Functions

 LasIOFilter ()
 
CC_FILE_ERROR loadFile (const QString &fileName, ccHObject &container, LoadParameters &parameters) override
 Loads one or more entities from a file. More...
 
bool canSave (CV_CLASS_ENUM type, bool &multiple, bool &exclusive) const override
 Returns whether this I/O filter can save the specified type of entity. More...
 
CC_FILE_ERROR saveToFile (ccHObject *entity, const QString &filename, const SaveParameters &parameters) override
 Saves an entity (or a group of) to a file. More...
 
- Public Member Functions inherited from FileIOFilter
virtual ~FileIOFilter ()=default
 
bool importSupported () const
 Returns whether this I/O filter can import files. More...
 
bool exportSupported () const
 Returns whether this I/O filter can export files. More...
 
const QStringList & getFileFilters (bool onImport) const
 Returns the file filter(s) for this I/O filter. More...
 
QString getDefaultExtension () const
 Returns the default file extension. More...
 
virtual void unregister ()
 Called when the filter is unregistered. More...
 

Additional Inherited Members

- Public Types inherited from FileIOFilter
enum  FilterFeature {
  NoFeatures = 0x0000 , Import = 0x00001 , Export = 0x0002 , BuiltIn = 0x0004 ,
  DynamicInfo = 0x0008
}
 
using Shared = QSharedPointer< FileIOFilter >
 Shared type. More...
 
using FilterContainer = std::vector< FileIOFilter::Shared >
 Type of a I/O filters container. More...
 
- Static Public Member Functions inherited from FileIOFilter
static QStringList ImportFilterList ()
 
static ccHObjectLoadFromFile (const QString &filename, LoadParameters &parameters, Shared filter, CC_FILE_ERROR &result)
 Loads one or more entities from a file with a known filter. More...
 
static ccHObjectLoadFromFile (const QString &filename, LoadParameters &parameters, CC_FILE_ERROR &result, const QString &fileFilter=QString())
 Loads one or more entities from a file with known type. More...
 
static CC_FILE_ERROR SaveToFile (ccHObject *entities, const QString &filename, const SaveParameters &parameters, Shared filter)
 
static CC_FILE_ERROR SaveToFile (ccHObject *entities, const QString &filename, const SaveParameters &parameters, const QString &fileFilter)
 
static bool HandleGlobalShift (const CCVector3d &P, CCVector3d &Pshift, bool &preserveCoordinateShift, LoadParameters &loadParameters, bool useInputCoordinatesShiftIfPossible=false)
 Shortcut to the ecvGlobalShiftManager mechanism specific for files. More...
 
static void DisplayErrorMessage (CC_FILE_ERROR err, const QString &action, const QString &filename)
 Displays (to console) the message corresponding to a given error code. More...
 
static bool CheckForSpecialChars (const QString &filename)
 Returns whether special characters are present in the input string. More...
 
static void ResetSesionCounter ()
 
static unsigned IncreaseSesionCounter ()
 
static void Register (Shared filter)
 Registers a new filter. More...
 
static Shared GetFilter (const QString &fileFilter, bool onImport)
 Returns the filter corresponding to the given 'file filter'. More...
 
static Shared FindBestFilterForExtension (const QString &ext)
 Returns the best filter (presumably) to open a given file extension. More...
 
static const FilterContainerGetFilters ()
 Returns the set of all registered filters. More...
 
static void UnregisterAll ()
 Unregisters all filters. More...
 
- Protected Member Functions inherited from FileIOFilter
 FileIOFilter (const FilterInfo &info)
 
void setImportExtensions (const QStringList &extensions)
 
void setImportFileFilterStrings (const QStringList &filterStrings)
 
void setExportFileFilterStrings (const QStringList &filterStrings)
 
- Static Protected Attributes inherited from FileIOFilter
static constexpr float DEFAULT_PRIORITY = 25.0f
 

Detailed Description

Definition at line 35 of file LasIOFilter.h.

Constructor & Destructor Documentation

◆ LasIOFilter()

LasIOFilter::LasIOFilter ( )

Definition at line 79 of file LasIOFilter.cpp.

References FileIOFilter::Export, and FileIOFilter::Import.

Member Function Documentation

◆ canSave()

bool LasIOFilter::canSave ( CV_CLASS_ENUM  type,
bool &  multiple,
bool &  exclusive 
) const
overridevirtual

Returns whether this I/O filter can save the specified type of entity.

Parameters
typeentity type
multiplewhether the filter can save multiple instances of this entity at once
exclusivewhether the filter can only save this type of entity if selected or if it can be mixed with other types
Returns
whether the entity type can be saved

Reimplemented from FileIOFilter.

Definition at line 437 of file LasIOFilter.cpp.

References CV_TYPES::POINT_CLOUD, and type.

◆ loadFile()

CC_FILE_ERROR LasIOFilter::loadFile ( const QString &  filename,
ccHObject container,
LoadParameters parameters 
)
overridevirtual

Loads one or more entities from a file.

This method must be implemented by children classes.

Parameters
filenamefile to load
containercontainer to store loaded entities
parametersgeneric loading parameters
Returns
error

Reimplemented from FileIOFilter.

Definition at line 91 of file LasIOFilter.cpp.

References LasOpenDialog::action(), ccHObject::addChild(), FileIOFilter::LoadParameters::alwaysDisplayLoadDialog, ccColorScalesManager::BGYR, CC_FERR_CANCELED_BY_USER, CC_FERR_NO_ERROR, CC_FERR_NOT_ENOUGH_MEMORY, CC_FERR_NOT_IMPLEMENTED, CC_FERR_THIRD_PARTY_LIB_FAILURE, LasScalarField::Classification, LasScalarField::EdgeOfFlightLine, error(), CVLog::Error(), LasScalarField::ExtendedClassification, LasScalarField::ExtendedNumberOfReturns, LasScalarField::ExtendedReturnNumber, LasScalarField::ExtendedScanAngle, LasScalarField::ExtendedScannerChannel, LasScalarFieldLoader::extraFields(), LasOpenDialog::filterOutNotChecked(), LasScalarField::ForPointFormat(), ccColorScalesManager::GetDefaultScale(), GetGlobalShift(), LasScalarField::GpsTime, ccColorScalesManager::GREY, LasScalarFieldLoader::handleExtraScalarFields(), LasScalarFieldLoader::handleRGBValue(), LasScalarFieldLoader::handleScalarFields(), LasDetails::HasRGB(), LasDetails::HasWaveform(), LasNames::Intensity, LasScalarField::Intensity, ecvProgressDialog::isCancelRequested(), LasScalarField::KeypointFlag, LasOpenDialog::Load, max(), LasScalarField::NearInfrared, Vector3Tpl< Type >::norm2(), LasScalarField::NumberOfReturns, cloudViewer::NormalizedProgress::oneStep(), LasScalarField::OverlapFlag, FileIOFilter::LoadParameters::parentWidget, LasExtraScalarField::ParseExtraScalarFields(), LasScalarField::PointSourceId, CVLog::Print(), LasOpenDialog::resetShouldSkipDialog(), LasScalarField::ReturnNumber, LasMetadata::SaveMetadataInto(), LasScalarField::ScanAngleRank, LasScalarField::ScanDirectionFlag, seconds, FileIOFilter::LoadParameters::sessionStart, LasOpenDialog::setAvailableScalarFields(), LasScalarFieldLoader::setForce8bitRgbMode(), LasScalarFieldLoader::setIgnoreFieldsWithDefaultValues(), ecvProgressDialog::setInfo(), LasOpenDialog::setInfo(), LasScalarFieldLoader::setManualTimeShift(), ecvProgressDialog::setMethodTitle(), LasOpenDialog::shouldForce8bitColors(), LasOpenDialog::shouldIgnoreFieldsWithDefaultValues(), LasOpenDialog::shouldSkipDialog(), LasScalarFieldLoader::standardFields(), ecvProgressDialog::start(), LasScalarField::SyntheticFlag, LasOpenDialog::Tile, TileLasReader(), LasOpenDialog::tilingOptions(), LasOpenDialog::timeShiftValue(), LasScalarField::UserData, CVLog::Warning(), LasScalarField::WithheldFlag, Tuple3Tpl< Type >::x, Tuple3Tpl< Type >::y, and Tuple3Tpl< Type >::z.

◆ saveToFile()

CC_FILE_ERROR LasIOFilter::saveToFile ( ccHObject entity,
const QString &  filename,
const SaveParameters parameters 
)
overridevirtual

Saves an entity (or a group of) to a file.

This method must be implemented by children classes.

Parameters
entityentity (or group of) to save
filenamefilename
parametersgeneric saving parameters
Returns
error

Reimplemented from FileIOFilter.

Definition at line 444 of file LasIOFilter.cpp.

References FileIOFilter::SaveParameters::alwaysDisplaySaveDialog, CC_FERR_BAD_ARGUMENT, CC_FERR_BAD_ENTITY_TYPE, CC_FERR_CANCELED_BY_USER, CC_FERR_NO_ERROR, CC_FERR_NO_SAVE, CC_FERR_THIRD_PARTY_LIB_FAILURE, CC_FERR_WRITING, cloudViewer::utility::ceil(), LasSaveDialog::chosenScale(), error(), CVLog::Error(), LasSaveDialog::extraFieldsToSave(), LasVlr::extraScalarFields, LasSaveDialog::fieldsToSave(), filename, LasSaver::getLastError(), cloudViewer::ScalarField::getName(), ccObject::isA(), LasMetadata::LoadLasVersionFrom(), LasMetadata::LoadOffsetFrom(), LasMetadata::LoadScaleFrom(), LasMetadata::LoadVlrs(), LasExtraScalarField::MatchExtraBytesToScalarFields(), max(), LasExtraScalarField::MAX_NAME_SIZE, LasDetails::LasVersion::minorVersion, LasExtraScalarField::name, ecvGlobalShiftManager::NeedShift(), LasSaver::open(), params, FileIOFilter::SaveParameters::parentWidget, CV_TYPES::POINT_CLOUD, LasDetails::LasVersion::pointFormat, CVLog::Print(), LasSaver::saveNextPoint(), LasSaver::savesWaveforms(), LasExtraScalarField::scalarFields, LasDetails::SelectBestVersion(), LasSaveDialog::selectedPointFormat(), LasSaveDialog::selectedVersion(), LasSaveDialog::setExtraScalarFields(), ecvProgressDialog::setInfo(), ecvProgressDialog::setMethodTitle(), LasSaveDialog::setOptimalScale(), LasSaveDialog::setOriginalScale(), LasSaveDialog::setVersionAndPointFormat(), LasSaveDialog::shouldSaveRGB(), LasSaveDialog::shouldSaveWaveform(), ecvProgressDialog::start(), LasExtraScalarField::type, CVLog::Warning(), LasDetails::EvlrHeader::Waveform(), Tuple3Tpl< Type >::x, Tuple3Tpl< Type >::y, and Tuple3Tpl< Type >::z.


The documentation for this class was generated from the following files: