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

Generic file I/O filter. More...

#include <FileIOFilter.h>

Inheritance diagram for FileIOFilter:

Classes

struct  FilterInfo
 
struct  LoadParameters
 Generic loading parameters. More...
 
struct  SaveParameters
 Generic saving parameters. More...
 

Public Types

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...
 

Public Member Functions

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 CC_FILE_ERROR loadFile (const QString &filename, ccHObject &container, LoadParameters &parameters)
 Loads one or more entities from a file. More...
 
virtual CC_FILE_ERROR saveToFile (ccHObject *entity, const QString &filename, const SaveParameters &parameters)
 Saves an entity (or a group of) to a file. More...
 
virtual bool canSave (CV_CLASS_ENUM type, bool &multiple, bool &exclusive) const
 Returns whether this I/O filter can save the specified type of entity. More...
 
virtual void unregister ()
 Called when the filter is unregistered. More...
 

Static Public Member Functions

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

 FileIOFilter (const FilterInfo &info)
 
void setImportExtensions (const QStringList &extensions)
 
void setImportFileFilterStrings (const QStringList &filterStrings)
 
void setExportFileFilterStrings (const QStringList &filterStrings)
 

Static Protected Attributes

static constexpr float DEFAULT_PRIORITY = 25.0f
 

Detailed Description

Generic file I/O filter.

Gives static access to file loader. Must be implemented by any specific I/O filter.

Definition at line 46 of file FileIOFilter.h.

Member Typedef Documentation

◆ FilterContainer

Type of a I/O filters container.

Definition at line 284 of file FileIOFilter.h.

◆ Shared

using FileIOFilter::Shared = QSharedPointer<FileIOFilter>

Shared type.

Definition at line 97 of file FileIOFilter.h.

Member Enumeration Documentation

◆ FilterFeature

Enumerator
NoFeatures 
Import 
Export 
BuiltIn 
DynamicInfo 

Definition at line 299 of file FileIOFilter.h.

Constructor & Destructor Documentation

◆ ~FileIOFilter()

virtual FileIOFilter::~FileIOFilter ( )
virtualdefault

◆ FileIOFilter()

FileIOFilter::FileIOFilter ( const FilterInfo info)
explicitprotected

Member Function Documentation

◆ canSave()

virtual bool FileIOFilter::canSave ( CV_CLASS_ENUM  type,
bool &  multiple,
bool &  exclusive 
) const
inlinevirtual

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 in RDBFilter, LASFilter, LasIOFilter, LASFWFFilter, FBXFilter, E57Filter, DRCFilter, SimpleBinFilter, MascaretFilter, MAFilter, HeightProfileFilter, SinusxFilter, SalomeHydroFilter, PVFilter, PovFilter, PNFilter, VTKFilter, STLFilter, PlyFilter, OFFFilter, ObjFilter, ImageFileFilter, DxfFilter, DepthMapFileFilter, BinFilter, AsciiFilter, PcdFilter, and IoAbstractLoader.

Definition at line 158 of file FileIOFilter.h.

References type.

◆ CheckForSpecialChars()

static bool FileIOFilter::CheckForSpecialChars ( const QString &  filename)
static

Returns whether special characters are present in the input string.

Referenced by IcmFilter::LoadCalibratedImages(), IcmFilter::loadFile(), FBXFilter::loadFile(), and FBXFilter::saveToFile().

◆ DisplayErrorMessage()

static void FileIOFilter::DisplayErrorMessage ( CC_FILE_ERROR  err,
const QString &  action,
const QString &  filename 
)
static

Displays (to console) the message corresponding to a given error code.

Parameters
errerror code
action"saving", "reading", etc.
filenamecorresponding file

◆ exportSupported()

bool FileIOFilter::exportSupported ( ) const

Returns whether this I/O filter can export files.

◆ FindBestFilterForExtension()

static Shared FileIOFilter::FindBestFilterForExtension ( const QString &  ext)
static

Returns the best filter (presumably) to open a given file extension.

Referenced by IcmFilter::loadFile(), and PovFilter::loadFile().

◆ getDefaultExtension()

QString FileIOFilter::getDefaultExtension ( ) const

Returns the default file extension.

◆ getFileFilters()

const QStringList& FileIOFilter::getFileFilters ( bool  onImport) const

Returns the file filter(s) for this I/O filter.

E.g. 'ASCII file (*.asc)'

Parameters
onImportwhether the requested filters are for import or export
Returns
list of filters

◆ GetFilter()

static Shared FileIOFilter::GetFilter ( const QString &  fileFilter,
bool  onImport 
)
static

Returns the filter corresponding to the given 'file filter'.

Referenced by CommandLoadLASFWF::process(), ccCommandLineParser::saveClouds(), and ccCommandLineParser::saveMeshes().

◆ GetFilters()

static const FilterContainer& FileIOFilter::GetFilters ( )
static

Returns the set of all registered filters.

Referenced by define_qcc_io(), and CommandChangeOutputFormat::getFileFormatFilter().

◆ HandleGlobalShift()

static bool FileIOFilter::HandleGlobalShift ( const CCVector3d P,
CCVector3d Pshift,
bool &  preserveCoordinateShift,
LoadParameters loadParameters,
bool  useInputCoordinatesShiftIfPossible = false 
)
static

Shortcut to the ecvGlobalShiftManager mechanism specific for files.

Parameters
[in]Psample point (typically the first loaded)
[out]Pshiftglobal shift
[out]preserveCoordinateShiftwhether shift sould be preserved on save
[in]loadParametersloading parameters
[in]useInputCoordinatesShiftIfPossiblewhether to use the input 'PShift' vector if possible
Returns
whether global shift has been defined/enabled

Referenced by FromFbxMesh(), GetGlobalShift(), LoadCloud(), SalomeHydroFilter::loadFile(), SinusxFilter::loadFile(), SimpleBinFilter::loadFile(), LASFWFFilter::loadFile(), LASFilter::loadFile(), and LoadScan().

◆ ImportFilterList()

static QStringList FileIOFilter::ImportFilterList ( )
static

Get a list of all the available importer filter strings for use in a drop down menu. Includes "All (*.)" as the first item in the list.

◆ importSupported()

bool FileIOFilter::importSupported ( ) const

Returns whether this I/O filter can import files.

◆ IncreaseSesionCounter()

static unsigned FileIOFilter::IncreaseSesionCounter ( )
static

Indicates to the I/O filters that a new loading/saving action has started

Returns
the updated session counter

◆ loadFile()

virtual CC_FILE_ERROR FileIOFilter::loadFile ( const QString &  filename,
ccHObject container,
LoadParameters parameters 
)
inlinevirtual

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 in IoAbstractLoader, STEPFilter, RDBFilter, LASFilter, LasIOFilter, LASFWFFilter, FBXFilter, E57Filter, DRCFilter, SimpleBinFilter, PDMSFilter, SoiFilter, SinusxFilter, SalomeHydroFilter, PVFilter, PovFilter, PNFilter, IcmFilter, BundlerFilter, VTKFilter, STLFilter, PTXFilter, PlyFilter, OFFFilter, ObjFilter, ImageFileFilter, DxfFilter, BinFilter, AsciiFilter, PcdFilter, PhotoScanFilter, and CSVMatrixFilter.

Definition at line 124 of file FileIOFilter.h.

References CC_FERR_NOT_IMPLEMENTED, and filename.

◆ LoadFromFile() [1/2]

static ccHObject* FileIOFilter::LoadFromFile ( const QString &  filename,
LoadParameters parameters,
CC_FILE_ERROR result,
const QString &  fileFilter = QString() 
)
static

Loads one or more entities from a file with known type.

Shortcut to the other version of FileIOFilter::LoadFromFile

Parameters
filenamefilename
parametersgeneric loading parameters
[out]resultfile error code
fileFilterinput filter 'file filter' (if empty, the best I/O filter will be guessed from the file extension)
Returns
loaded entities (or 0 if an error occurred)

◆ LoadFromFile() [2/2]

static ccHObject* FileIOFilter::LoadFromFile ( const QString &  filename,
LoadParameters parameters,
Shared  filter,
CC_FILE_ERROR result 
)
static

Loads one or more entities from a file with a known filter.

Shortcut to FileIOFilter::loadFile

Parameters
filenamefilename
parametersgeneric loading parameters
filterinput filter
[out]resultfile error code
Returns
loaded entities (or 0 if an error occurred)

Referenced by MainWindow::addToDB(), define_qcc_io(), JsonRPCPlugin::execute(), ccCommandLineParser::importFile(), ccGuiPythonInstance::loadFile(), PhotoScanFilter::loadFile(), IcmFilter::loadFile(), PovFilter::loadFile(), MainWindow::loadFile(), and ReadCloud().

◆ Register()

static void FileIOFilter::Register ( Shared  filter)
static

Registers a new filter.

◆ ResetSesionCounter()

static void FileIOFilter::ResetSesionCounter ( )
static

Indicates to the I/O filters that a new loading/saving session has started (for "Apply all" buttons for instance)

Referenced by MainWindow::addToDB(), and masc::Tools::LoadFile().

◆ SaveToFile() [1/2]

static CC_FILE_ERROR FileIOFilter::SaveToFile ( ccHObject entities,
const QString &  filename,
const SaveParameters parameters,
const QString &  fileFilter 
)
static

Saves an entity (or a group of) to a specific file thanks to a given filter Shortcut to the other version of FileIOFilter::SaveToFile

Parameters
entitiesentity to save (can be a group of other entities)
filenamefilename
parameterssaving parameters
fileFilteroutput filter 'file filter'
Returns
error type (if any)

◆ SaveToFile() [2/2]

static CC_FILE_ERROR FileIOFilter::SaveToFile ( ccHObject entities,
const QString &  filename,
const SaveParameters parameters,
Shared  filter 
)
static

Saves an entity (or a group of) to a specific file thanks to a given filter Shortcut to FileIOFilter::saveFile

Parameters
entitiesentity to save (can be a group of other entities)
filenamefilename
parameterssaving parameters
filteroutput filter
Returns
error type (if any)

Referenced by define_qcc_io(), ccCommandLineParser::exportEntity(), and PovFilter::saveToFile().

◆ saveToFile()

virtual CC_FILE_ERROR FileIOFilter::saveToFile ( ccHObject entity,
const QString &  filename,
const SaveParameters parameters 
)
inlinevirtual

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 in LASFilter, LasIOFilter, LASFWFFilter, FBXFilter, E57Filter, DRCFilter, SimpleBinFilter, MascaretFilter, MAFilter, HeightProfileFilter, SinusxFilter, SalomeHydroFilter, PVFilter, PovFilter, PNFilter, VTKFilter, STLFilter, PlyFilter, OFFFilter, ObjFilter, ImageFileFilter, DxfFilter, DepthMapFileFilter, BinFilter, AsciiFilter, and PcdFilter.

Definition at line 141 of file FileIOFilter.h.

References CC_FERR_NOT_IMPLEMENTED, and filename.

◆ setExportFileFilterStrings()

void FileIOFilter::setExportFileFilterStrings ( const QStringList &  filterStrings)
protected

Allow export filter strings to be set after construction (e.g. for ImageFileFilter & QImageReader::supportedImageFormats())

◆ setImportExtensions()

void FileIOFilter::setImportExtensions ( const QStringList &  extensions)
protected

Allow import extensions to be set after construction (e.g. for ImageFileFilter & QImageReader::supportedImageFormats())

◆ setImportFileFilterStrings()

void FileIOFilter::setImportFileFilterStrings ( const QStringList &  filterStrings)
protected

Allow import filter strings to be set after construction (e.g. for ImageFileFilter & QImageReader::supportedImageFormats())

◆ unregister()

virtual void FileIOFilter::unregister ( )
inlinevirtual

Called when the filter is unregistered.

Does nothing by default

Definition at line 296 of file FileIOFilter.h.

◆ UnregisterAll()

static void FileIOFilter::UnregisterAll ( )
static

Unregisters all filters.

Should be called at the end of the application

Referenced by main().

Member Data Documentation

◆ DEFAULT_PRIORITY


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