PeriDyno 1.0.0
Loading...
Searching...
No Matches
SimplexSet.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 "TetrahedronSet.h"
21
22namespace dyno
23{
24 template<typename TDataType>
25 class SimplexSet : public PointSet<TDataType>
26 {
27 typedef typename TDataType::Real Real;
28 typedef typename TDataType::Coord Coord;
29
30 typedef typename TopologyModule::Edge Edge;
33
34 public:
36 ~SimplexSet() override;
37
39
40 bool isEmpty() override;
41
42 void setEdgeIndex(const DArray<Edge>& segments) { mEdgeIndex.assign(segments); }
43 void setEdgeIndex(const CArray<Edge>& segments) { mEdgeIndex.assign(segments); }
44
45 void setTriangleIndex(const DArray<Triangle>& triangles) { mTriangleIndex.assign(triangles); }
46 void setTriangleIndex(const CArray<Triangle>& triangles) { mTriangleIndex.assign(triangles); }
47
48 void setTetrahedronIndex(const DArray<Tetrahedron>& tetrahedrons) { mTetrahedronIndex.assign(tetrahedrons); }
49 void setTetrahedronIndex(const CArray<Tetrahedron>& tetrahedrons) { mTetrahedronIndex.assign(tetrahedrons); }
50
55
60
65
67
72
77
78 protected:
79 void updateTopology() override;
80
81 private:
85 };
86}
87
void extractSimplex1D(EdgeSet< TDataType > &es)
return the 1-dimensional simplex to EdgeSet
TopologyModule::Edge Edge
Definition SimplexSet.h:30
void setTriangleIndex(const DArray< Triangle > &triangles)
Definition SimplexSet.h:45
TDataType::Real Real
Definition SimplexSet.h:27
TopologyModule::Triangle Triangle
Definition SimplexSet.h:31
void extractPointSet(PointSet< TDataType > &ps)
void setTetrahedronIndex(const DArray< Tetrahedron > &tetrahedrons)
Definition SimplexSet.h:48
TDataType::Coord Coord
Definition SimplexSet.h:28
DArray< Triangle > mTriangleIndex
Definition SimplexSet.h:83
void extractEdgeSet(EdgeSet< TDataType > &es)
extract and merge edges from 1, 2, 3-dimensional simplexes into one EdgeSet
TopologyModule::Tetrahedron Tetrahedron
Definition SimplexSet.h:32
DArray< Edge > mEdgeIndex
Definition SimplexSet.h:82
void setEdgeIndex(const DArray< Edge > &segments)
Definition SimplexSet.h:42
void updateTopology() override
DArray< Tetrahedron > mTetrahedronIndex
Definition SimplexSet.h:84
void setTriangleIndex(const CArray< Triangle > &triangles)
Definition SimplexSet.h:46
void setTetrahedronIndex(const CArray< Tetrahedron > &tetrahedrons)
Definition SimplexSet.h:49
bool isEmpty() override
void extractSimplex3D(TetrahedronSet< TDataType > &ts)
return the 3-dimensional simplex to TetrahedronSet
void setEdgeIndex(const CArray< Edge > &segments)
Definition SimplexSet.h:43
~SimplexSet() override
void extractTriangleSet(TriangleSet< TDataType > &ts)
extract and merge triangles from 2, 3-dimensional simplexes into one TriangleSet
void extractSimplex2D(TriangleSet< TDataType > &ts)
return the 2-dimensional simplex to TriangleSet
void copyFrom(SimplexSet< TDataType > &simplex)
VectorND< PointType, 2 > Edge
VectorND< PointType, 4 > Tetrahedron
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
Array< T, DeviceType::CPU > CArray
Definition Array.h:151