PeriDyno 1.0.0
Loading...
Searching...
No Matches
ParticleEmitter.h
Go to the documentation of this file.
1
16#pragma once
18
19namespace dyno
20{
25 template<typename TDataType>
26 class ParticleEmitter : public ParametricModel<TDataType>
27 {
28 public:
29 typedef typename TDataType::Real Real;
30 typedef typename TDataType::Coord Coord;
31
33 ~ParticleEmitter() override;
34
35 uint sizeOfParticles() { return mPosition.size(); }
36
39
40 std::string getNodeType() override;
41
42 public:
43 DEF_VAR(Real, VelocityMagnitude, 1, "Emitter Velocity");
44 DEF_VAR(Real, SamplingDistance, 0.005, "Emitter Sampling Distance");
45
46 DEF_VAR(Real, Spacing, Real(1), "A variable to control the particle generation frequency");
47
48 //DEF_VAR(Coord, InitialVelocity, Coord(0, -1, 0), "Initial velocity");
49
50 protected:
51 void resetStates() override;
52
53 void updateStates() final;
54
55 virtual void generateParticles();
56
58 {
59 auto center = this->varLocation()->getData();
60 auto rot_vec = this->varRotation()->getData();
61
63 float x_rad = rot_vec[0] / 180.0f * M_PI;
64 float y_rad = rot_vec[1] / 180.0f * M_PI;
65 float z_rad = rot_vec[2] / 180.0f * M_PI;
66
67 quat = quat * Quat<Real>(x_rad, Coord(1, 0, 0));
68 quat = quat * Quat<Real>(y_rad, Coord(0, 1, 0));
69 quat = quat * Quat<Real>(z_rad, Coord(0, 0, 1));
70
71 return quat.toMatrix3x3();
72 }
73
74 protected:
77
79 };
80}
#define M_PI
Definition Typedef.inl:36
DEF_VAR(Real, VelocityMagnitude, 1, "Emitter Velocity")
void resetStates() override
DArray< Coord > mVelocity
std::string getNodeType() override
virtual void generateParticles()
SquareMatrix< Real, 3 > rotationMatrix()
DArray< Coord > mPosition
DArray< Coord > & getPositions()
DEF_VAR(Real, SamplingDistance, 0.005, "Emitter Sampling Distance")
DArray< Coord > & getVelocities()
DEF_VAR(Real, Spacing, Real(1), "A variable to control the particle generation frequency")
TDataType::Coord Coord
static DYN_FUNC Quat< Real > identity()
Definition Quat.h:104
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
vgm::Quat quat
Definition vgMath.h:633