PeriDyno 1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
initializeDualParticleSystem.cpp
Go to the documentation of this file.
2#include "DualParticleFluid.h"
9#include "ParticleSystem/ParticleFluid.h"
10#include "GLPointVisualModule.h"
11#include "ColorMapping.h"
12#include "Module/CalculateNorm.h"
13
14#include "NodeFactory.h"
15
16namespace dyno
17{
18 std::atomic<DualParticleSystemInitializer*> DualParticleSystemInitializer::gInstance;
20
22 {
23 DualParticleSystemInitializer* ins = gInstance.load(std::memory_order_acquire);
24 if (!ins) {
25 std::lock_guard<std::mutex> tLock(gMutex);
26 ins = gInstance.load(std::memory_order_relaxed);
27 if (!ins) {
29 ins->setName("Dual Particle System");
30 ins->setVersion("1.0");
31 ins->setDescription("A dual particle system library");
32
33 gInstance.store(ins, std::memory_order_release);
34 }
35 }
36
37 return ins;
38 }
39
44
46 {
48
49 auto page = factory->addPage(
50 "Particle System",
51 "ToolBarIco/DualParticleSystem/DualParticleSystem_v4.png");
52
53 auto group = page->addGroup("Particle Fluid Solvers");
54
55
56 group->addAction(
57 "Dual Particle Fluid",
58 "ToolBarIco/DualParticleSystem/DualParticleFluid_v4.png",
59 [=]()->std::shared_ptr<Node> {
60
61 auto fluid = std::make_shared<DualParticleFluid<DataType3f>>();
62
63 auto vpRender = std::make_shared<GLPointVisualModule>();
64 vpRender->setColor(Color(1, 1, 0));
65 vpRender->setColorMapMode(GLPointVisualModule::PER_VERTEX_SHADER);
66 fluid->stateVirtualPointSet()->connect(vpRender->inPointSet());
67 vpRender->varPointSize()->setValue(0.0005);
68 fluid->graphicsPipeline()->pushModule(vpRender);
69
70 return fluid;
71 });
72
73
74
75 }
76
77}
78
86
static std::atomic< DualParticleSystemInitializer * > gInstance
static NodeFactory * instance()
std::shared_ptr< NodePage > addPage(std::string name, std::string icon)
PERIDYNO_API dyno::PluginEntry * initDynoPlugin()
dyno::PluginEntry * initStaticPlugin()
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
Definition PluginEntry.h:14
void setDescription(std::string desc)
PluginEntry()
void setVersion(std::string pluginVersion)
void setName(std::string pluginName)