PeriDyno 1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
DualParticleFluid.h
Go to the documentation of this file.
1
16
17#pragma once
18#include "ParticleSystem/ParticleFluid.h"
20#include "Topology/PointSet.h"
21#include "Collision/Attribute.h"
25
26namespace dyno
27{
28 template<typename TDataType>
29 class DualParticleFluid : public ParticleFluid<TDataType>
30 {
32
33 public:
34
35 typedef typename TDataType::Real Real;
36 typedef typename TDataType::Coord Coord;
37
41
42 DEF_ARRAY_STATE(Attribute, ParticleAttribute, DeviceType::GPU, "Real Particle Attribute");
43
44 DEF_ARRAY_STATE(Coord, BoundaryNorm, DeviceType::GPU, "Boundary Norm");
45
46 DEF_ARRAY_STATE(Coord, VirtualPosition, DeviceType::GPU, "Virtual Particle");
47
48 DEF_INSTANCE_STATE(PointSet<TDataType>, VirtualPointSet, "Topology");
49
50 DECLARE_ENUM(EVirtualParticleSamplingStrategy,
51 ColocationStrategy = 0,
52 ParticleShiftingStrategy = 1,
53 SpatiallyAdaptiveStrategy = 2);
54
55 DEF_ENUM(EVirtualParticleSamplingStrategy,
56 VirtualParticleSamplingStrategy,
57 EVirtualParticleSamplingStrategy::SpatiallyAdaptiveStrategy,
58 "Virtual Particle Sampling Strategy");
59
60 protected:
61
63
65
67
69 int key
70 );
71
72 std::shared_ptr<VirtualParticleGenerator<TDataType>> vpGen;
73
74 private:
75
76 };
77
79}
80
#define DECLARE_TCLASS(name, T1)
Definition Object.h:87
#define IMPLEMENT_TCLASS(name, T1)
Definition Object.h:103
particle attribute 0x00000000: [31-30]material; [29]motion; [28]Dynamic; [27-8]undefined yet,...
Definition Attribute.h:26
std::shared_ptr< VirtualParticleGenerator< TDataType > > vpGen
DEF_ARRAY_STATE(Coord, VirtualPosition, DeviceType::GPU, "Virtual Particle")
DEF_ARRAY_STATE(Coord, BoundaryNorm, DeviceType::GPU, "Boundary Norm")
DEF_ARRAY_STATE(Attribute, ParticleAttribute, DeviceType::GPU, "Real Particle Attribute")
DEF_ENUM(EVirtualParticleSamplingStrategy, VirtualParticleSamplingStrategy, EVirtualParticleSamplingStrategy::SpatiallyAdaptiveStrategy, "Virtual Particle Sampling Strategy")
DECLARE_ENUM(EVirtualParticleSamplingStrategy, ColocationStrategy=0, ParticleShiftingStrategy=1, SpatiallyAdaptiveStrategy=2)
void animationPipelineWithoutVirtualPartilce(int key)
DEF_INSTANCE_STATE(PointSet< TDataType >, VirtualPointSet, "Topology")
A PointSet stores the coordinates for a set of independent points.
Definition PointSet.h:8
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25