PeriDyno 1.0.0
Loading...
Searching...
No Matches
initializeInteraction.cpp
Go to the documentation of this file.
2
3#include "NodeFactory.h"
4
5#include "QuadPickerNode.h"
7#include "EdgePickerNode.h"
8#include "PointPickerNode.h"
9
10namespace dyno
11{
12 std::atomic<InteractionInitializer*> InteractionInitializer::gInstance;
14
16 {
17 InteractionInitializer* 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 InteractionInitializer();
23 ins->setName("Interaction");
24 ins->setVersion("1.0");
25 ins->setDescription("A interaction library");
26
27 gInstance.store(ins, std::memory_order_release);
28 }
29 }
30
31 return ins;
32 }
33
35 {
37
38 auto page = factory->addPage(
39 "Interaction",
40 "ToolBarIco/Interaction/Interaction.png");
41
42 auto group = page->addGroup("Interaction");
43
44 group->addAction(
45 "QuadPicker",
46 "ToolBarIco/Interaction/Picker.png",//48px-Image-x-generic.png
47
48 [=]()->std::shared_ptr<Node> { return std::make_shared<QuadPickerNode<DataType3f>>(); });
49
50 group->addAction(
51 "TrianglePicker",
52 "ToolBarIco/Interaction/Picker.png",//48px-Image-x-generic.png
53
54 [=]()->std::shared_ptr<Node> { return std::make_shared<TrianglePickerNode<DataType3f>>(); });
55
56 group->addAction(
57 "EdgePicker",
58 "ToolBarIco/Interaction/Picker.png",//48px-Image-x-generic.png
59
60 [=]()->std::shared_ptr<Node> { return std::make_shared<EdgePickerNode<DataType3f>>(); });
61
62 group->addAction(
63 "PointPicker",
64 "ToolBarIco/Interaction/Picker.png",//48px-Image-x-generic.png
65
66 [=]()->std::shared_ptr<Node> { return std::make_shared<PointPickerNode<DataType3f>>(); });
67 }
68}
69//
70
78
80{
83
84 return nullptr;
85}
static std::atomic< InteractionInitializer * > 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)