ImagingTools Core SDK
CObjPointCloudPersistenceComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QFile>
7#include <QtCore/QTextStream>
8
9// ACF includes
10#include <icomp/CComponentBase.h>
11#include <ilog/TLoggerCompWrap.h>
12#include <ifile/IFilePersistence.h>
13
14// ImtCore includes
15#include <imt3d/CPointCloud3d.h>
16
17
18namespace imt3d
19{
20
21
28 public ilog::CLoggerComponentBase,
29 virtual public ifile::IFilePersistence
30{
31public:
32 typedef ilog::CLoggerComponentBase BaseClass;
33
34 I_BEGIN_COMPONENT(CObjPointCloudPersistenceComp);
35 I_REGISTER_INTERFACE(ifile::IFilePersistence);
36 I_REGISTER_INTERFACE(ifile::IFileTypeInfo);
37 I_END_COMPONENT;
38
39 // reimplemented (ifile::IFilePersistence)
40 virtual bool IsOperationSupported(
41 const istd::IChangeable* dataObjectPtr,
42 const QString* filePathPtr = NULL,
43 int flags = -1,
44 bool beQuiet = true) const;
45 virtual OperationState LoadFromFile(istd::IChangeable& data,
46 const QString& filePath = QString(),
47 ibase::IProgressManager* progressManagerPtr = NULL) const;
48 virtual OperationState SaveToFile(const istd::IChangeable& data,
49 const QString& filePath = QString(),
50 ibase::IProgressManager* progressManagerPtr = NULL) const;
51
52 // reimplemented (ifile::IFileTypeInfo)
53 virtual bool GetFileExtensions(QStringList& result, const istd::IChangeable* dataObjectPtr = NULL, int flags = -1, bool doAppend = false) const;
54 virtual QString GetTypeDescription(const QString* extensionPtr = NULL) const;
55
56private:
57 template <typename PointType> void SaveToFileHelper(const CPointCloud3d& pointCloud, QTextStream& stream) const;
58};
59
60
61} // namespace imt3d
62
63