21#include <unordered_map>
56 void addAction(std::shared_ptr<NodeAction> nAct);
57 void addAction(std::string
caption, std::string icon, std::function<std::shared_ptr<Node>()> act);
59 std::vector<std::shared_ptr<NodeAction>>&
actions() {
68 std::vector<std::shared_ptr<NodeAction>>
mActions;
79 std::shared_ptr<NodeGroup>
addGroup(std::string name);
83 std::map<std::string, std::shared_ptr<NodeGroup>>&
groups() {
94 std::map<std::string, std::shared_ptr<NodeGroup>>
mGroups;
102 std::shared_ptr<NodePage>
addPage(std::string name, std::string icon);
104 bool hasPage(std::string name);
106 std::map<std::string, std::shared_ptr<NodePage>>&
nodePages() {
120 std::map<std::string, std::shared_ptr<NodePage>>
mPages;
std::function< std::shared_ptr< Node >()> mCallback
std::function< std::shared_ptr< Node >()> action()
NodeAction(std::string caption, std::string icon, std::function< std::shared_ptr< Node >()> func=nullptr)
static NodeFactory * instance()
std::map< std::string, std::shared_ptr< NodePage > > & nodePages()
static std::atomic< NodeFactory * > pInstance
std::shared_ptr< NodePage > addPage(std::string name, std::string icon)
bool hasPage(std::string name)
std::map< std::string, std::shared_ptr< NodePage > > mPages
NodeFactory & operator=(const NodeFactory &)=delete
NodeFactory(const NodeFactory &)=delete
std::vector< std::shared_ptr< NodeAction > > & actions()
std::vector< std::shared_ptr< NodeAction > > mActions
void addAction(std::shared_ptr< NodeAction > nAct)
NodeGroup(std::string caption)
std::map< std::string, std::shared_ptr< NodeGroup > > mGroups
bool hasGroup(std::string name)
NodePage(std::string caption, std::string icon)
std::shared_ptr< NodeGroup > addGroup(std::string name)
std::map< std::string, std::shared_ptr< NodeGroup > > & groups()
This is an implementation of AdditiveCCD based on peridyno.