ImagingTools Core SDK
CStlMeshPersistenceComp.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// ACF includes
6#include <icomp/CComponentBase.h>
7#include <ilog/TLoggerCompWrap.h>
8#include <ifile/IFilePersistence.h>
9
10
11namespace imt3d
12{
13
14
15class CStlMeshPersistenceComp:
16 public ilog::CLoggerComponentBase,
17 virtual public ifile::IFilePersistence
18{
19public:
20 typedef ilog::CLoggerComponentBase BaseClass;
21
22 I_BEGIN_COMPONENT(CStlMeshPersistenceComp);
23 I_REGISTER_INTERFACE(ifile::IFilePersistence);
24 I_REGISTER_INTERFACE(ifile::IFileTypeInfo);
25 I_ASSIGN(m_ensureNormalsExistAttrPtr, "EnsureNormalsExist", "Build normals if they are missing in STL file", false, true);
26 I_END_COMPONENT;
27
28 // reimplemented (ifile::IFilePersistence)
29 virtual bool IsOperationSupported(
30 const istd::IChangeable* dataObjectPtr,
31 const QString* filePathPtr = NULL,
32 int flags = -1,
33 bool beQuiet = true) const;
34 virtual OperationState LoadFromFile(istd::IChangeable& data,
35 const QString& filePath = QString(),
36 ibase::IProgressManager* progressManagerPtr = NULL) const;
37 virtual OperationState SaveToFile(const istd::IChangeable& data,
38 const QString& filePath = QString(),
39 ibase::IProgressManager* progressManagerPtr = NULL) const;
40
41 // reimplemented (ifile::IFileTypeInfo)
42 virtual bool GetFileExtensions(QStringList& result, const istd::IChangeable* dataObjectPtr = NULL, int flags = -1, bool doAppend = false) const;
43 virtual QString GetTypeDescription(const QString* extensionPtr = NULL) const;
44
45private:
46 I_ATTR(bool, m_ensureNormalsExistAttrPtr);
47};
48
49
50} // namespace imt3d
51
52