qCC_io version 2.13.alpha (Qt) - 31 May 2022
CloudCompare standard I/O filters (file readers & writers)
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Attributes | List of all members
FileIOFilter Class Reference

Generic file I/O filter. More...

#include <FileIOFilter.h>

Inheritance diagram for FileIOFilter:
Inheritance graph
[legend]

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.
 
using FilterContainer = std::vector< FileIOFilter::Shared >
 Type of a I/O filters container.
 

Public Member Functions

QCC_IO_LIB_API bool importSupported () const
 Returns whether this I/O filter can import files.
 
QCC_IO_LIB_API bool exportSupported () const
 Returns whether this I/O filter can export files.
 
QCC_IO_LIB_API const QStringList & getFileFilters (bool onImport) const
 Returns the file filter(s) for this I/O filter. More...
 
QCC_IO_LIB_API QString getDefaultExtension () const
 Returns the default file extension.
 
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 (CC_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 QCC_IO_LIB_API QStringList ImportFilterList ()
 
static QCC_IO_LIB_API ccHObject * LoadFromFile (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 QCC_IO_LIB_API ccHObject * LoadFromFile (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 QCC_IO_LIB_API CC_FILE_ERROR SaveToFile (ccHObject *entities, const QString &filename, const SaveParameters &parameters, Shared filter)
 Saves an entity (or a group of) to a specific file thanks to a given filter. More...
 
static QCC_IO_LIB_API CC_FILE_ERROR SaveToFile (ccHObject *entities, const QString &filename, const SaveParameters &parameters, const QString &fileFilter)
 Saves an entity (or a group of) to a specific file thanks to a given filter. More...
 
static QCC_IO_LIB_API bool HandleGlobalShift (const CCVector3d &P, CCVector3d &Pshift, bool &preserveCoordinateShift, LoadParameters &loadParameters, bool useInputCoordinatesShiftIfPossible=false)
 Shortcut to the ccGlobalShiftManager mechanism specific for files. More...
 
static QCC_IO_LIB_API 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 QCC_IO_LIB_API bool CheckForSpecialChars (const QString &filename)
 Returns whether special characters are present in the input string.
 
static QCC_IO_LIB_API void ResetSesionCounter ()
 Indicates to the I/O filters that a new loading/saving session has started (for "Apply all" buttons for instance)
 
static QCC_IO_LIB_API unsigned IncreaseSesionCounter ()
 Indicates to the I/O filters that a new loading/saving action has started. More...
 
static QCC_IO_LIB_API void InitInternalFilters ()
 Init internal filters (should be called once)
 
static QCC_IO_LIB_API void Register (Shared filter)
 Registers a new filter.
 
static QCC_IO_LIB_API Shared GetFilter (const QString &fileFilter, bool onImport)
 Returns the filter corresponding to the given 'file filter'.
 
static QCC_IO_LIB_API Shared FindBestFilterForExtension (const QString &ext)
 Returns the best filter (presumably) to open a given file extension.
 
static QCC_IO_LIB_API const FilterContainerGetFilters ()
 Returns the set of all registered filters.
 
static QCC_IO_LIB_API void UnregisterAll ()
 Unregisters all filters. More...
 

Protected Member Functions

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

Member Function Documentation

◆ canSave()

virtual bool FileIOFilter::canSave ( CC_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 AsciiFilter, BinFilter, DepthMapFileFilter, DxfFilter, ImageFileFilter, and PlyFilter.

◆ DisplayErrorMessage()

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

◆ 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

◆ HandleGlobalShift()

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

Shortcut to the ccGlobalShiftManager 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

◆ ImportFilterList()

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.

◆ IncreaseSesionCounter()

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 AsciiFilter, BinFilter, DxfFilter, ImageFileFilter, and PlyFilter.

◆ LoadFromFile() [1/2]

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]

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)

◆ SaveToFile() [1/2]

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]

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)

◆ 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 AsciiFilter, BinFilter, DepthMapFileFilter, DxfFilter, ImageFileFilter, and PlyFilter.

◆ 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

◆ UnregisterAll()

void FileIOFilter::UnregisterAll ( )
static

Unregisters all filters.

Should be called at the end of the application


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