PeriDyno
1.0.0
Loading...
Searching...
No Matches
D:
Peridyno
peridyno
src
Dynamics
Cuda
SemiAnalyticalScheme
initializeSemiAnalyticalScheme.cpp
Go to the documentation of this file.
1
#include "
initializeSemiAnalyticalScheme.h
"
2
3
#include "
NodeFactory.h
"
4
5
#include "ParticleSystem/ParticleSystem.h"
6
7
#include "
SemiAnalyticalSFINode.h
"
8
#include "
TriangularMeshBoundary.h
"
9
10
#include "
ComputeParticleAnisotropy.h
"
11
#include "
SemiAnalyticalSummationDensity.h
"
12
#include "
SemiAnalyticalPBD.h
"
13
14
namespace
dyno
15
{
16
std::atomic<SemiAnalyticalSchemeInitializer*>
SemiAnalyticalSchemeInitializer::gInstance
;
17
std::mutex
SemiAnalyticalSchemeInitializer::gMutex
;
18
19
dyno::PluginEntry
*
SemiAnalyticalSchemeInitializer::instance
()
20
{
21
SemiAnalyticalSchemeInitializer
* ins =
gInstance
.load(std::memory_order_acquire);
22
if
(!ins) {
23
std::lock_guard<std::mutex> tLock(
gMutex
);
24
ins =
gInstance
.load(std::memory_order_relaxed);
25
if
(!ins) {
26
ins =
new
SemiAnalyticalSchemeInitializer
();
27
ins->
setName
(
"SemiAnalyticalScheme"
);
28
ins->
setVersion
(
"1.0"
);
29
ins->
setDescription
(
"A semi-analytical scheme library"
);
30
31
gInstance
.store(ins, std::memory_order_release);
32
}
33
}
34
35
return
ins;
36
}
37
38
void
SemiAnalyticalSchemeInitializer::initializeActions
()
39
{
40
NodeFactory
* factory =
NodeFactory::instance
();
41
42
auto
page = factory->
addPage
(
43
"Particle System"
,
44
"ToolBarIco/ParticleSystem/ParticleSystem.png"
);
45
46
auto
group = page->addGroup(
"Semi Analytical Scheme"
);
47
48
group->addAction(
49
"Semi Analytical SFI"
,
50
"ToolBarIco/ParticleSystem/SemiAnalvticalSFI_yellow.png"
,
51
[=]()->std::shared_ptr<Node> {
return
std::make_shared<SemiAnalyticalSFINode<DataType3f>>(); });
52
53
group->addAction(
54
"Triangular Mesh Boundary"
,
55
"ToolBarIco/ParticleSystem/SemiAnalvticalSFI.png"
,
56
[=]()->std::shared_ptr<Node> {
return
std::make_shared<TriangularMeshBoundary<DataType3f>>(); });
57
}
58
59
dyno::PluginEntry
*
SemiAnalyticalScheme::initStaticPlugin
()
60
{
61
if
(
dyno::SemiAnalyticalSchemeInitializer::instance
()->initialize())
62
return
dyno::SemiAnalyticalSchemeInitializer::instance
();
63
64
return
nullptr
;
65
}
66
67
PERIDYNO_API
dyno::PluginEntry
*
SemiAnalyticalScheme::initDynoPlugin
()
68
{
69
if
(
dyno::SemiAnalyticalSchemeInitializer::instance
()->initialize())
70
return
dyno::SemiAnalyticalSchemeInitializer::instance
();
71
72
return
nullptr
;
73
}
74
75
}
ComputeParticleAnisotropy.h
NodeFactory.h
SemiAnalyticalPBD.h
SemiAnalyticalSFINode.h
SemiAnalyticalSummationDensity.h
TriangularMeshBoundary.h
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
dyno::SemiAnalyticalSchemeInitializer::instance
static PluginEntry * instance()
Definition
initializeSemiAnalyticalScheme.cpp:19
dyno::SemiAnalyticalSchemeInitializer::initializeActions
void initializeActions() override
Definition
initializeSemiAnalyticalScheme.cpp:38
dyno::SemiAnalyticalSchemeInitializer::gInstance
static std::atomic< SemiAnalyticalSchemeInitializer * > gInstance
Definition
initializeSemiAnalyticalScheme.h:19
dyno::SemiAnalyticalSchemeInitializer::gMutex
static std::mutex gMutex
Definition
initializeSemiAnalyticalScheme.h:20
dyno::SemiAnalyticalSchemeInitializer::SemiAnalyticalSchemeInitializer
SemiAnalyticalSchemeInitializer()
Definition
initializeSemiAnalyticalScheme.h:17
initializeSemiAnalyticalScheme.h
dyno::SemiAnalyticalScheme::initDynoPlugin
PERIDYNO_API dyno::PluginEntry * initDynoPlugin()
Definition
initializeSemiAnalyticalScheme.cpp:67
dyno::SemiAnalyticalScheme::initStaticPlugin
dyno::PluginEntry * initStaticPlugin()
Definition
initializeSemiAnalyticalScheme.cpp:59
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::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