PeriDyno 1.0.0
Loading...
Searching...
No Matches
MergeSimplexSet.cpp
Go to the documentation of this file.
1#include "MergeSimplexSet.h"
2
3namespace dyno
4{
5 template<typename TDataType>
7 : Node()
8 {
9 this->outSimplexSet()->allocate();
10 }
11
12 template<typename TDataType>
17
18 template<typename TDataType>
20 {
21 auto edge_set = this->inEdgeSet()->constDataPtr();
22 auto tri_set = this->inTriangleSet()->constDataPtr();
23 auto tet_set = this->inTetrahedronSet()->constDataPtr();
24
25 auto& p0 = edge_set->getPoints();
26 auto& p1 = tri_set->getPoints();
27 auto& p2 = tet_set->getPoints();
28
29 uint num = p0.size() + p1.size() + p2.size();
30
31 auto simplices = this->outSimplexSet()->getDataPtr();
32
33 DArray<Coord> points(num);
34
35 points.assign(p0, p0.size(), 0, 0);
36 points.assign(p1, p1.size(), 0, p0.size());
37 points.assign(p2, p2.size(), 0, p0.size() + p1.size());
38
39 simplices->setPoints(points);
40 simplices->setEdgeIndex(edge_set->getEdges());
41 simplices->setTriangleIndex(tri_set->getTriangles());
42 simplices->setTetrahedronIndex(tet_set->getTetrahedrons());
43
44 simplices->update();
45 }
46
48}
#define DEFINE_CLASS(name)
Definition Object.h:140
void resetStates() override
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
Array< T, DeviceType::GPU > DArray
Definition Array.inl:89
unsigned int uint
Definition VkProgram.h:14