PeriDyno 1.0.0
Loading...
Searching...
No Matches
initializeIO.cpp
Go to the documentation of this file.
1#include "initializeIO.h"
2
3#include "NodeFactory.h"
4
5#include "PointsLoader.h"
6
7
8namespace dyno
9{
10 std::atomic<IOInitializer*> IOInitializer::gInstance;
11 std::mutex IOInitializer::gMutex;
12
14 {
15 IOInitializer* ins = gInstance.load(std::memory_order_acquire);
16 if (!ins) {
17 std::lock_guard<std::mutex> tLock(gMutex);
18 ins = gInstance.load(std::memory_order_relaxed);
19 if (!ins) {
20 ins = new IOInitializer();
21 ins->setName("IO");
22 ins->setVersion("1.0");
23 ins->setDescription("A io library");
24
25 gInstance.store(ins, std::memory_order_release);
26 }
27 }
28
29 return ins;
30 }
31
36
38 {
40
41 auto page = factory->addPage(
42 "IO",
43 "ToolBarIco/Interaction/Interaction.png");
44
45 auto group = page->addGroup("Interaction");
46
47 group->addAction(
48 "Points Loader",
49 "ToolBarIco/Interaction/PointsLoader_v4.png",
50 [=]()->std::shared_ptr<Node> {
51 return std::make_shared<PointsLoader<DataType3f>>();
52 });
53 }
54}
55
57{
58 if (dyno::IOInitializer::instance()->initialize())
60
61 return nullptr;
62}
static PluginEntry * instance()
void initializeActions() override
static std::mutex gMutex
static std::atomic< IOInitializer * > gInstance
static NodeFactory * instance()
std::shared_ptr< NodePage > addPage(std::string name, std::string icon)
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
dyno::PluginEntry * initStaticPlugin()
Definition PluginEntry.h:14
void setDescription(std::string desc)
PluginEntry()
void setVersion(std::string pluginVersion)
void setName(std::string pluginName)