PeriDyno 1.0.0
Loading...
Searching...
No Matches
Module.h
Go to the documentation of this file.
1
16#pragma once
17#include "Platform.h"
18#include <memory>
19#include <vector>
20#include <cassert>
21#include <iostream>
22#include "OBase.h"
23#include "Log.h"
24#include "DataTypes.h"
25#include "DeclareEnum.h"
26#include "DeclareField.h"
27#include "FCallbackFunc.h"
28#include "FieldTypes.h"
29
30namespace dyno
31{
32 class SceneGraph;
33 class Node;
34
35 class Module : public OBase
36 {
37 public:
38 Module(std::string name = "default");
39
40 ~Module(void) override;
41
42 bool initialize();
43
44 void update();
45
46 void setName(std::string name);
47
48 std::string getName() override;
49
53 virtual void setParentNode(Node* node);
54
61
68
69 bool isInitialized();
70
71 virtual std::string getModuleType() { return "Default"; }
72
73 bool attachField(FBase* field, std::string name, std::string desc, bool autoDestroy = true) override;
74
81 bool isInputComplete();
82 bool isOutputCompete();
83
84
85 public:
86 DEF_VAR(bool, ForceUpdate, false, "");
87
94 void setUpdateAlways(bool b);
95
96 protected:
97 //TODO: remove this step
98 virtual bool initializeImpl();
99 virtual void updateImpl();
100
101
102 virtual void preprocess() {};
103
104 virtual void postprocess() {};
105
106 virtual bool validateInputs();
107 virtual bool validateOutputs();
108
109 virtual bool requireUpdate();
110
115 virtual void updateStarted();
116 virtual void updateEnded();
117
118 private:
120 std::string m_module_name;
122 };
123}
virtual void updateImpl()
Definition Module.cpp:236
Node * m_node
Definition Module.h:119
SceneGraph * getSceneGraph()
Definition Module.cpp:212
void setName(std::string name)
Definition Module.cpp:187
bool isInitialized()
Definition Module.cpp:226
virtual bool validateOutputs()
Definition Module.cpp:159
~Module(void) override
Definition Module.cpp:15
virtual void setParentNode(Node *node)
Set the parent node.
Definition Module.cpp:193
virtual std::string getModuleType()
Definition Module.h:71
Node * getParentNode()
Definition Module.cpp:203
virtual void preprocess()
Definition Module.h:102
bool isOutputCompete()
Definition Module.cpp:127
void setUpdateAlways(bool b)
Set the update strategy for the module.
Definition Module.cpp:221
void update()
Definition Module.cpp:47
virtual void postprocess()
Definition Module.h:104
bool initialize()
Definition Module.cpp:36
virtual bool initializeImpl()
Definition Module.cpp:231
bool isInputComplete()
Check the completeness of input fields.
Definition Module.cpp:104
std::string getName() override
Definition Module.cpp:198
virtual void updateStarted()
Two functions called at the beginning and end of update() used for debug.
Definition Module.cpp:149
Module(std::string name="default")
Definition Module.cpp:7
virtual bool requireUpdate()
Definition Module.cpp:164
DEF_VAR(bool, ForceUpdate, false, "")
std::string m_module_name
Definition Module.h:120
virtual void updateEnded()
Definition Module.cpp:154
virtual bool validateInputs()
Definition Module.cpp:99
bool attachField(FBase *field, std::string name, std::string desc, bool autoDestroy=true) override
Attach a field to Base.
Definition Module.cpp:240
bool m_initialized
Definition Module.h:121
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25