PeriDyno
1.0.0
Loading...
Searching...
No Matches
D:
Peridyno
peridyno
src
Dynamics
Cuda
Multiphysics
initializeMultiphysics.cpp
Go to the documentation of this file.
1
#include "
initializeMultiphysics.h
"
2
3
#include "
NodeFactory.h
"
4
5
#include "
VolumeBoundary.h
"
6
#include "
AdaptiveBoundary.h
"
7
8
#include "
PoissonDiskSampling.h
"
9
10
namespace
dyno
11
{
12
std::atomic<MultiphysicsInitializer*>
MultiphysicsInitializer::gInstance
;
13
std::mutex
MultiphysicsInitializer::gMutex
;
14
15
PluginEntry
*
MultiphysicsInitializer::instance
()
16
{
17
MultiphysicsInitializer
* ins =
gInstance
.load(std::memory_order_acquire);
18
if
(!ins) {
19
std::lock_guard<std::mutex> tLock(
gMutex
);
20
ins =
gInstance
.load(std::memory_order_relaxed);
21
if
(!ins) {
22
ins =
new
MultiphysicsInitializer
();
23
ins->
setName
(
"Peridynamics"
);
24
ins->
setVersion
(
"1.0"
);
25
ins->
setDescription
(
"A multiphysics library"
);
26
27
gInstance
.store(ins, std::memory_order_release);
28
}
29
}
30
31
return
ins;
32
}
33
34
MultiphysicsInitializer::MultiphysicsInitializer
()
35
:
PluginEntry
()
36
{
37
}
38
39
void
MultiphysicsInitializer::initializeActions
()
40
{
41
NodeFactory
* factory =
NodeFactory::instance
();
42
43
auto
page = factory->
addPage
(
44
"Volume"
,
45
"ToolBarIco/Volume/GenerateSparseVolume.png"
);
46
47
auto
group = page->addGroup(
"Volume"
);
48
49
group->addAction(
50
"Adaptive Boundary"
,
51
"ToolBarIco/Volume/AdaptiveBoundary.png"
,
52
[=]()->std::shared_ptr<Node> {
53
auto
node = std::make_shared<AdaptiveBoundary<DataType3f>>();
54
return
node;
55
});
56
57
auto
psPage = factory->
addPage
(
58
"Particle System"
,
59
"ToolBarIco/ParticleSystem/ParticleSystem.png"
);
60
61
auto
emitters = psPage->addGroup(
"Emitters"
);
62
63
emitters->addAction(
64
"Poisson Disk Sampler"
,
65
"ToolBarIco/Modeling/PoissonDiskSampler_v2.png"
,
66
[=]()->std::shared_ptr<Node> {
67
return
std::make_shared<PoissonDiskSampling<DataType3f>>();
68
});
69
}
70
}
71
72
PERIDYNO_API
dyno::PluginEntry
*
Multiphysics::initDynoPlugin
()
73
{
74
if
(
dyno::MultiphysicsInitializer::instance
()->initialize())
75
return
dyno::MultiphysicsInitializer::instance
();
76
77
return
nullptr
;
78
}
79
80
dyno::PluginEntry
*
Multiphysics::initStaticPlugin
()
81
{
82
if
(
dyno::MultiphysicsInitializer::instance
()->initialize())
83
return
dyno::MultiphysicsInitializer::instance
();
84
85
return
nullptr
;
86
}
AdaptiveBoundary.h
NodeFactory.h
PoissonDiskSampling.h
VolumeBoundary.h
dyno::MultiphysicsInitializer::initializeActions
void initializeActions() override
Definition
initializeMultiphysics.cpp:39
dyno::MultiphysicsInitializer::instance
static PluginEntry * instance()
Definition
initializeMultiphysics.cpp:15
dyno::MultiphysicsInitializer::gMutex
static std::mutex gMutex
Definition
initializeMultiphysics.h:18
dyno::MultiphysicsInitializer::gInstance
static std::atomic< MultiphysicsInitializer * > gInstance
Definition
initializeMultiphysics.h:17
dyno::MultiphysicsInitializer::MultiphysicsInitializer
MultiphysicsInitializer()
Definition
initializeMultiphysics.cpp:34
dyno::NodeFactory
Definition
NodeFactory.h:98
dyno::NodeFactory::instance
static NodeFactory * instance()
Definition
NodeFactory.cpp:9
dyno::NodeFactory::addPage
std::shared_ptr< NodePage > addPage(std::string name, std::string icon)
Definition
NodeFactory.cpp:54
initializeMultiphysics.h
Multiphysics::initDynoPlugin
PERIDYNO_API dyno::PluginEntry * initDynoPlugin()
Definition
initializeMultiphysics.cpp:72
Multiphysics::initStaticPlugin
dyno::PluginEntry * initStaticPlugin()
Definition
initializeMultiphysics.cpp:80
dyno
This is an implementation of AdditiveCCD based on peridyno.
Definition
Array.h:25
dyno::PluginEntry
Definition
PluginEntry.h:14
dyno::PluginEntry::setDescription
void setDescription(std::string desc)
Definition
PluginEntry.cpp:36
dyno::PluginEntry::PluginEntry
PluginEntry()
Definition
PluginEntry.cpp:5
dyno::PluginEntry::setVersion
void setVersion(std::string pluginVersion)
Definition
PluginEntry.cpp:31
dyno::PluginEntry::setName
void setName(std::string pluginName)
Definition
PluginEntry.cpp:26
Generated by
1.13.2