PeriDyno 1.0.0
Loading...
Searching...
No Matches
PolygonSet.h
Go to the documentation of this file.
1
16#pragma once
17#include "PointSet.h"
18#include "EdgeSet.h"
19#include "TriangleSet.h"
20#include "QuadSet.h"
21
22namespace dyno
23{
27 template<typename TDataType>
28 class PolygonSet : public EdgeSet<TDataType>
29 {
30 typedef typename TDataType::Real Real;
31 typedef typename TDataType::Coord Coord;
32
33 typedef typename TopologyModule::Edge Edge;
35 typedef typename TopologyModule::Quad Quad;
36
37 public:
39 ~PolygonSet() override;
40
44 void setPolygons(const CArrayList<uint>& indices);
45 void setPolygons(const DArrayList<uint>& indices);
46
48
50
52
56
57
59
60 bool isEmpty() override;
61
66
71
76
81
86
87 protected:
88 void updateTopology() override;
89
90 void updateEdges() override;
91
92 private:
94
95 //Map vertex id to polygon id
97
98 //Map polygon id to edge id
100
101 //Map edge id to triangle id
103 };
104}
105
TopologyModule::Edge Edge
Definition PolygonSet.h:33
bool isEmpty() override
void extractTriangleSet(TriangleSet< TDataType > &ts)
extract all triangles
void triangleSetToPolygonSet(TriangleSet< TDataType > &ts)
turn all polygons into triangles and store into one TriangleSet
DArrayList< uint > & polygon2Edge()
Definition PolygonSet.h:51
void extractEdgeSet(EdgeSet< TDataType > &es)
extract and merge edges from all polygons into one EdgeSet
TopologyModule::Quad Quad
Definition PolygonSet.h:35
~PolygonSet() override
void updateEdges() override
DArray<::dyno::TopologyModule::Edg2Poly > mEdg2Poly
Definition PolygonSet.h:102
DArrayList< uint > mPoly2Edg
Definition PolygonSet.h:99
void turnIntoTriangleSet(TriangleSet< TDataType > &ts)
turn all polygons into triangles and store into one TriangleSet
DArray<::dyno::TopologyModule::Edg2Poly > & edge2Polygon()
Definition PolygonSet.h:53
void setPolygons(const CArrayList< uint > &indices)
initialize polygon indices
DArrayList< uint > mPolygonIndex
Definition PolygonSet.h:93
DArrayList< uint > & polygonIndices()
Definition PolygonSet.h:47
TDataType::Real Real
Definition PolygonSet.h:30
void extractQuadSet(QuadSet< TDataType > &qs)
extract all quads
DArrayList< uint > & vertex2Polygon()
Definition PolygonSet.h:49
TDataType::Coord Coord
Definition PolygonSet.h:31
DArrayList< uint > mVer2Poly
Definition PolygonSet.h:96
void copyFrom(PolygonSet< TDataType > &polygons)
void updateTopology() override
TopologyModule::Triangle Triangle
Definition PolygonSet.h:34
void setPolygons(const DArrayList< uint > &indices)
VectorND< PointType, 2 > Edge
VectorND< PointType, 4 > Quad
Vector< PointType, 3 > Triangle
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
Array< T, DeviceType::GPU > DArray
Definition Array.inl:89
ArrayList< T, DeviceType::CPU > CArrayList
Definition ArrayList.h:207
ArrayList< ElementType, DeviceType::GPU > DArrayList
Definition ArrayList.inl:83