OpenLexocad  28.0
IndexedDrawable.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Geom/Ax2.h>
4 #include <Geom/GeomEnums.h>
5 #include <memory>
6 
7 namespace Geom { class IndexedMesh; }
8 namespace Geom { class Trsf; }
9 
10 
11 
12 namespace Topo
13 {
15 {
16  virtual ~SpecialFaceInfo() = default;
17  virtual Geom::SurfaceType getSurfaceType() const = 0;
18 };
19 
21 {
22 public:
25  double radius;
26 };
27 
29 {
30 public:
33  double angle;
34  double radius;
35 };
36 
37 class LX_TOPO_EXPORT IndexedFace
38 {
39 public:
41  IndexedFace(const IndexedFace& rhs);
42  std::vector<Geom::Pnt> vertices;
43  std::vector<Geom::Dir> verticesNormals;
44  std::vector<int> coordinateIndices;
45  int index;
46  std::shared_ptr<Topo::SpecialFaceInfo> info;
47  void dump() const;
48 };
49 
50 class LX_TOPO_EXPORT IndexedEdge
51 {
52 public:
54  IndexedEdge(const IndexedEdge& rhs);
55  std::vector<Geom::Pnt> vertices;
56  std::vector<int> edge_coordinateIndices;
57  int index;
58  void dump() const;
59 };
60 
61 
62 class LX_TOPO_EXPORT IndexedDrawable
63 {
64 public:
67  virtual ~IndexedDrawable(void);
68  std::vector<IndexedFace> faces;
69  std::vector<IndexedEdge> edges;
70  void clean();
71  std::string createMD5();
73  virtual void transform(const Geom::Trsf& t);
74  void dump();
75 };
76 }
Topo::IndexedEdge::vertices
std::vector< Geom::Pnt > vertices
Definition: IndexedDrawable.h:55
Topo::IndexedDrawable::create_IndexedMesh
void create_IndexedMesh(Geom::IndexedMesh &mesh)
Topo::IndexedEdge::index
int index
Definition: IndexedDrawable.h:57
Topo::SpecialFaceInfo_Cylinder::position
Geom::Ax2 position
Definition: IndexedDrawable.h:24
Topo::IndexedFace::vertices
std::vector< Geom::Pnt > vertices
Definition: IndexedDrawable.h:42
Topo::IndexedFace::dump
void dump() const
Topo::SpecialFaceInfo::~SpecialFaceInfo
virtual ~SpecialFaceInfo()=default
Topo::SpecialFaceInfo_Cylinder::getSurfaceType
Geom::SurfaceType getSurfaceType() const
Definition: IndexedDrawable.h:23
Topo::IndexedEdge
Definition: IndexedDrawable.h:51
Topo::IndexedDrawable
Definition: IndexedDrawable.h:63
Topo::IndexedEdge::edge_coordinateIndices
std::vector< int > edge_coordinateIndices
Definition: IndexedDrawable.h:56
Topo::IndexedDrawable::clean
void clean()
Topo::IndexedFace::coordinateIndices
std::vector< int > coordinateIndices
Definition: IndexedDrawable.h:44
Geom::SurfaceType::CYLINDER
@ CYLINDER
Topo::SpecialFaceInfo::getSurfaceType
virtual Geom::SurfaceType getSurfaceType() const =0
Topo::IndexedDrawable::IndexedDrawable
IndexedDrawable(void)
Geom::Ax2
Definition: Ax2.h:66
Topo::IndexedDrawable::IndexedDrawable
IndexedDrawable(const IndexedDrawable &rhs)
Topo::IndexedFace::IndexedFace
IndexedFace(const IndexedFace &rhs)
Topo::IndexedFace
Definition: IndexedDrawable.h:38
Geom::SurfaceType
SurfaceType
Definition: GeomEnums.h:24
Topo::IndexedDrawable::createMD5
std::string createMD5()
Geom::SurfaceType::CONE
@ CONE
Topo::SpecialFaceInfo_Cone::position
Geom::Ax2 position
Definition: IndexedDrawable.h:32
Topo::IndexedDrawable::faces
std::vector< IndexedFace > faces
Definition: IndexedDrawable.h:68
Topo::SpecialFaceInfo
Definition: IndexedDrawable.h:15
Topo
Definition: DbgInfo.h:17
Topo::SpecialFaceInfo_Cone
Definition: IndexedDrawable.h:29
Topo::IndexedFace::info
std::shared_ptr< Topo::SpecialFaceInfo > info
Definition: IndexedDrawable.h:46
Topo::IndexedEdge::IndexedEdge
IndexedEdge()
Topo::SpecialFaceInfo_Cone::radius
double radius
Definition: IndexedDrawable.h:34
Topo::IndexedEdge::dump
void dump() const
Topo::SpecialFaceInfo_Cone::getSurfaceType
Geom::SurfaceType getSurfaceType() const
Definition: IndexedDrawable.h:31
Topo::IndexedFace::verticesNormals
std::vector< Geom::Dir > verticesNormals
Definition: IndexedDrawable.h:43
Topo::IndexedDrawable::~IndexedDrawable
virtual ~IndexedDrawable(void)
Geom::Trsf
Definition: Trsf.h:58
Topo::IndexedFace::IndexedFace
IndexedFace()
GeomEnums.h
Ax2.h
Topo::IndexedFace::index
int index
Definition: IndexedDrawable.h:45
Topo::SpecialFaceInfo_Cylinder
Definition: IndexedDrawable.h:21
Topo::IndexedDrawable::transform
virtual void transform(const Geom::Trsf &t)
Topo::IndexedDrawable::edges
std::vector< IndexedEdge > edges
Definition: IndexedDrawable.h:69
Topo::SpecialFaceInfo_Cylinder::radius
double radius
Definition: IndexedDrawable.h:25
Topo::SpecialFaceInfo_Cone::angle
double angle
Definition: IndexedDrawable.h:33
Topo::IndexedEdge::IndexedEdge
IndexedEdge(const IndexedEdge &rhs)
Geom::IndexedMesh
Definition: IndexedMesh.h:15
Geom
Definition: PropertyContainer.h:33
Topo::IndexedDrawable::dump
void dump()