PeriDyno 1.0.0
Loading...
Searching...
No Matches
ParticleSystem.cpp
Go to the documentation of this file.
1#include "ParticleSystem.h"
2
3#include "Topology/PointSet.h"
4
5namespace dyno
6{
7 template<typename TDataType>
9 : Node()
10 {
11 auto ptSet = std::make_shared<PointSet<TDataType>>();
12 this->statePointSet()->setDataPtr(ptSet);
13 }
14
15 template<typename TDataType>
19
20 template<typename TDataType>
22 {
23 return "Particle Fluids";
24 }
25
26 template<typename TDataType>
28 {
29 auto ptSet = this->statePointSet()->getDataPtr();
30 if (ptSet != nullptr) {
31 if (!this->statePosition()->isEmpty())
32 {
33 ptSet->setPoints(this->statePosition()->constData());
34 }
35 else
36 ptSet->clear();
37 }
38
40 }
41
42 template<typename TDataType>
44 {
45 if (!this->statePosition()->isEmpty())
46 {
47 auto ptSet = this->statePointSet()->getDataPtr();
48 int num = this->statePosition()->size();
49 auto& pts = ptSet->getPoints();
50 if (num != pts.size())
51 {
52 pts.resize(num);
53 }
54
55 pts.assign(this->statePosition()->getData());
56 }
57 else
58 {
59 auto points = this->statePointSet()->getDataPtr();
60 points->clear();
61 }
62 }
63
65}
#define DEFINE_CLASS(name)
Definition Object.h:140
virtual void resetStates()
Definition Node.cpp:214
This class represents the base class for more advanced particle-based nodes.
void resetStates() override
std::string getNodeType() override
void postUpdateStates() override
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25