ImagingTools Core SDK
IMesh3d.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// STL includes
6#include <vector>
7
8// ImtCore includes
9#include <imt3d/IObject3d.h>
10#include <imt3d/IPointsBasedObject.h>
11
12
13namespace imt3d
14{
15
16
20class IMesh3d: virtual public IPointsBasedObject
21{
22public:
23 typedef std::vector<uint32_t> Face;
24 typedef std::vector<Face> Indices;
25
29 virtual bool CreateMesh(PointFormat pointFormat) = 0;
30
34 virtual bool CreateMesh(PointFormat pointFormat, int pointsCount, const void* pointsDataPtr, const Indices& indices) = 0;
35
36 virtual bool InsertData(int pointsCount, const void* pointsDataPtr, const Indices& indices) = 0;
37
41 virtual const Indices& GetIndices() const = 0;
42};
43
44
45} // namespace imt3d
46
47
virtual bool CreateMesh(PointFormat pointFormat, int pointsCount, const void *pointsDataPtr, const Indices &indices)=0
virtual const Indices & GetIndices() const =0
virtual bool CreateMesh(PointFormat pointFormat)=0