![]() |
PeriDyno 1.0.0
|
#include <Node.h>
Public Types | |
template<class T> | |
using | SPtr = std::shared_ptr<T> |
![]() | |
typedef std::vector< FBase * > | FieldVector |
typedef std::map< FieldID, FBase * > | FieldMap |
Public Member Functions | |
Node () | |
~Node () override | |
void | setName (std::string name) |
std::string | getName () override |
virtual std::string | getNodeType () |
bool | isAutoSync () |
bool | isAutoHidden () |
void | setAutoSync (bool con) |
Whether the node can be automatically synchronized when its ancestor is updated. | |
void | setAutoHidden (bool con) |
virtual bool | isActive () |
Check the state of dynamics. | |
virtual void | setActive (bool active) |
Set the state of dynamics. | |
virtual bool | isVisible () |
Check the visibility of context. | |
virtual void | setVisible (bool visible) |
Set the visibility of context. | |
virtual Real | getDt () |
Simulation timestep. | |
void | setDt (Real dt) |
void | setSceneGraph (SceneGraph *scn) |
SceneGraph * | getSceneGraph () |
std::vector< NodePort * > & | getImportNodes () |
std::vector< NodePort * > & | getExportNodes () |
bool | addModule (std::shared_ptr< Module > module) |
Add a module to m_module_list and other special module lists. | |
bool | deleteModule (std::shared_ptr< Module > module) |
template<class TModule> | |
bool | addModule (std::shared_ptr< TModule > tModule) |
Add a speical kind of module. | |
template<class TModule> | |
bool | deleteModule (std::shared_ptr< TModule > tModule) |
std::list< std::shared_ptr< Module > > & | getModuleList () |
bool | hasModule (std::string name) |
std::shared_ptr< Module > | getModule (std::string name) |
Get a module by its name. | |
template<class TModule> | |
std::shared_ptr< TModule > | getModule () |
Get the Module by the module class name. | |
template<class TModule> | |
std::shared_ptr< TModule > | getModule (std::string name) |
std::shared_ptr< Pipeline > | resetPipeline () |
std::shared_ptr< AnimationPipeline > | animationPipeline () |
std::shared_ptr< GraphicsPipeline > | graphicsPipeline () |
template<class TModule> | |
std::shared_ptr< TModule > | addModule (std::string name) |
void | update () |
Called every time interval. | |
void | updateGraphicsContext () |
void | reset () |
virtual NBoundingBox | boundingBox () |
bool | connect (NodePort *nPort) |
Depth-first tree traversal. | |
bool | disconnect (NodePort *nPort) |
bool | attachField (FBase *field, std::string name, std::string desc, bool autoDestroy=true) override |
Attach a field to Node. | |
std::vector< NodePort * > & | getAllNodePorts () |
uint | sizeOfNodePorts () |
uint | sizeOfImportNodes () const |
uint | sizeOfExportNodes () const |
void | setForceUpdate (bool b) |
DEF_VAR_STATE (Real, ElapsedTime, 0, "Elapsed Time") | |
DEF_VAR_STATE (Real, TimeStep, Real(0.033), "Time step size") | |
DEF_VAR_STATE (uint, FrameNumber, 0, "Frame number") | |
![]() | |
OBase () | |
~OBase () override | |
virtual std::string | caption () |
Return the caption. | |
virtual bool | captionVisible () |
Whether to hide the caption in the GUI. | |
virtual std::string | description () |
Return a description for the node or module, override this function to support user-defined description. | |
bool | addField (FBase *data) |
Add a field to Base FieldID will be set to the name of Field by default. | |
bool | addField (FieldID name, FBase *data) |
Add a field to Base. | |
bool | addFieldAlias (FieldID name, FBase *data) |
bool | addFieldAlias (FieldID name, FBase *data, FieldMap &fieldAlias) |
bool | findField (FBase *data) |
Find a field by its pointer. | |
bool | findFieldAlias (const FieldID name) |
Find a field by its name. | |
bool | findFieldAlias (const FieldID name, FieldMap &fieldAlias) |
Find a field in fieldAlias by its name This function is typically called by other functions. | |
bool | removeField (FBase *data) |
Remove a field by its pointer. | |
bool | removeFieldAlias (const FieldID name) |
Remove a field by its name. | |
bool | removeFieldAlias (const FieldID name, FieldMap &fieldAlias) |
FBase * | getField (const FieldID name) |
Return a field by its name. | |
std::vector< FBase * > & | getAllFields () |
template<typename T> | |
T * | getField (FieldID name) |
bool | isAllFieldsReady () |
Check the completeness of all required fields. | |
std::vector< FieldID > | getFieldAlias (FBase *data) |
int | getFieldAliasCount (FBase *data) |
void | setBlockCoord (float x, float y) |
float | bx () |
float | by () |
bool | findInputField (FBase *field) |
bool | addInputField (FBase *field) |
bool | removeInputField (FBase *field) |
std::vector< FBase * > & | getInputFields () |
bool | findOutputField (FBase *field) |
bool | addOutputField (FBase *field) |
bool | addToOutput (FBase *field) |
bool | removeOutputField (FBase *field) |
bool | removeFromOutput (FBase *field) |
std::vector< FBase * > & | getOutputFields () |
bool | findParameter (FBase *field) |
bool | addParameter (FBase *field) |
bool | removeParameter (FBase *field) |
std::vector< FBase * > & | getParameters () |
![]() | |
Object () | |
virtual | ~Object () |
ObjectId | objectId () |
Public Attributes | |
std::string | m_node_name |
Protected Member Functions | |
bool | appendExportNode (NodePort *nodePort) |
bool | removeExportNode (NodePort *nodePort) |
virtual void | preUpdateStates () |
virtual void | updateStates () |
virtual void | postUpdateStates () |
virtual void | updateTopology () |
virtual void | resetStates () |
virtual bool | validateInputs () |
virtual bool | requireUpdate () |
void | tick () |
notify all state and output fields are updated | |
Private Member Functions | |
bool | addNodePort (NodePort *port) |
bool | addToModuleList (std::shared_ptr< Module > module) |
bool | deleteFromModuleList (std::shared_ptr< Module > module) |
Private Attributes | |
bool | mAutoSync = false |
A parameter to control whether the node can be updated automatically by its ancestor. | |
bool | mPhysicsEnabled = true |
bool | mRenderingEnabled = true |
bool | mExported = true |
bool | mForceUpdate = true |
bool | mAutoHidden = false |
Real | mDt |
Time step size. | |
std::list< std::shared_ptr< Module > > | mModuleList |
A module list containing all modules. | |
std::shared_ptr< Pipeline > | mResetPipeline |
Pointer of the pipeline. | |
std::shared_ptr< AnimationPipeline > | mAnimationPipeline |
std::shared_ptr< GraphicsPipeline > | mGraphicsPipeline |
std::vector< NodePort * > | mImportNodes |
std::vector< NodePort * > | mExportNodes |
SceneGraph * | mSceneGraph = nullptr |
Friends | |
class | NodePort |
Additional Inherited Members | |
![]() | |
static bool | registerClass (ClassInfo *ci) |
static Object * | createObject (std::string name) |
static std::map< std::string, ClassInfo * > * | getClassMap () |
static ObjectId | baseId () |
Base Id. | |
![]() | |
std::vector< FBase * > | fields_input |
std::vector< FBase * > | fields_output |
std::vector< FBase * > | fields_param |
using dyno::Node::SPtr = std::shared_ptr<T> |
dyno::Node::Node | ( | ) |
|
override |
bool dyno::Node::addModule | ( | std::shared_ptr< Module > | module | ) |
Add a module to m_module_list and other special module lists.
module | module should be created before calling this function |
Definition at line 365 of file Node.cpp.
|
inline |
|
inline |
|
private |
|
private |
std::shared_ptr< AnimationPipeline > dyno::Node::animationPipeline | ( | ) |
|
protected |
|
overridevirtual |
Attach a field to Node.
field | Field pointer |
name | Field name |
desc | Field description |
autoDestroy | The field will be destroyed by Base if true, otherwise, the field should be explicitly destroyed by its creator. |
Reimplemented from dyno::OBase.
Definition at line 493 of file Node.cpp.
|
virtual |
bool dyno::Node::connect | ( | NodePort * | nPort | ) |
dyno::Node::DEF_VAR_STATE | ( | Real | , |
ElapsedTime | , | ||
0 | , | ||
"Elapsed Time" | ) |
dyno::Node::DEF_VAR_STATE | ( | uint | , |
FrameNumber | , | ||
0 | , | ||
"Frame number" | ) |
|
private |
bool dyno::Node::deleteModule | ( | std::shared_ptr< Module > | module | ) |
|
inline |
bool dyno::Node::disconnect | ( | NodePort * | nPort | ) |
|
inline |
|
virtual |
Simulation timestep.
Reimplemented in dyno::ParticleSystem< TDataType >.
Definition at line 93 of file Node.cpp.
|
inline |
|
inline |
|
inline |
Get the Module by the module class name.
TModule | Module class name |
Definition at line 168 of file Node.h.
std::shared_ptr< Module > dyno::Node::getModule | ( | std::string | name | ) |
|
inline |
|
inline |
|
overridevirtual |
Reimplemented from dyno::OBase.
Definition at line 43 of file Node.cpp.
|
virtual |
Reimplemented in dyno::AdaptiveBoundary< TDataType >, dyno::BasicShape< TDataType >, dyno::CapillaryWave< TDataType >, dyno::CollisionDetector< TDataType >, dyno::EdgePickerNode< TDataType >, dyno::GLCommonPointVisualNode< TDataType >, dyno::GLInstanceVisualNode< TDataType >, dyno::GLPointVisualNode< TDataType >, dyno::GLSurfaceVisualNode< TDataType >, dyno::GltfLoader< TDataType >, dyno::GLWireframeVisualNode< TDataType >, dyno::MarchingCubes< TDataType >, dyno::ModelEditing< TDataType >, dyno::NormalVisualization< TDataType >, dyno::OceanBase< TDataType >, dyno::OceanPatch< TDataType >, dyno::ParticleEmitter< TDataType >, dyno::ParticleEmitter< TDataType >, dyno::ParticleSystem< TDataType >, dyno::ParticleSystem< TDataType >, dyno::Peridynamics< TDataType >, dyno::PointPickerNode< TDataType >, dyno::QuadPickerNode< TDataType >, dyno::RigidBody< TDataType >, dyno::RigidBodySystem< TDataType >, dyno::RigidWaterCoupling< TDataType >, dyno::Sampler< TDataType >, dyno::SparseMarchingCubes< TDataType >, dyno::SparseVolumeClipper< TDataType >, dyno::StaticMeshLoader< TDataType >, dyno::TextureMeshLoader, dyno::TrianglePickerNode< TDataType >, dyno::VectorVisualNode< TDataType >, dyno::Vessel< TDataType >, dyno::Volume< TDataType >, dyno::VolumeBoolean< TDataType >, dyno::VolumeBoundary< TDataType >, dyno::VolumeClipper< TDataType >, and dyno::VolumeOctree< TDataType >.
SceneGraph * dyno::Node::getSceneGraph | ( | ) |
std::shared_ptr< GraphicsPipeline > dyno::Node::graphicsPipeline | ( | ) |
bool dyno::Node::hasModule | ( | std::string | name | ) |
|
virtual |
|
virtual |
|
protectedvirtual |
Reimplemented in dyno::DualParticleFluid< TDataType >, dyno::GhostFluid< TDataType >, dyno::MultibodySystem< TDataType >, dyno::OceanPatch< TDataType >, dyno::ParticleFluid< TDataType >, dyno::ParticleSystem< TDataType >, dyno::RigidBodySystem< TDataType >, dyno::SemiAnalyticalSFINode< TDataType >, dyno::TriangularMeshBoundary< TDataType >, and dyno::TriangularSystem< TDataType >.
Definition at line 201 of file Node.cpp.
|
protectedvirtual |
Reimplemented in dyno::Cloth< TDataType >, dyno::CodimensionalPD< TDataType >, dyno::DualParticleFluid< TDataType >, dyno::GhostFluid< TDataType >, dyno::Merge< TDataType >, dyno::ParticleFluid< TDataType >, dyno::ParticleFluid< TDataType >, dyno::ParticleRelaxtionOnMesh< TDataType >, dyno::ParticleSkinning< TDataType >, dyno::SemiAnalyticalSFINode< TDataType >, and dyno::TriangularMeshBoundary< TDataType >.
Definition at line 136 of file Node.cpp.
|
protected |
|
protectedvirtual |
void dyno::Node::reset | ( | ) |
std::shared_ptr< Pipeline > dyno::Node::resetPipeline | ( | ) |
|
protectedvirtual |
Reimplemented in dyno::ArticulatedBody< TDataType >, dyno::BasicShapeToVolume< TDataType >, dyno::CapillaryWave< TDataType >, dyno::CapsuleModel< TDataType >, dyno::CircularEmitter< TDataType >, dyno::Cloth< TDataType >, dyno::CodimensionalPD< TDataType >, dyno::CollisionDetector< TDataType >, dyno::ConeModel< TDataType >, dyno::ConfigurableBody< TDataType >, dyno::ConvertToTextureMesh< TDataType >, dyno::CopyModel< TDataType >, dyno::CopyToPoint< TDataType >, dyno::CubeModel< TDataType >, dyno::CylinderModel< TDataType >, dyno::DualParticleFluid< TDataType >, dyno::EarClipper< TDataType >, dyno::EdgePickerNode< TDataType >, dyno::EditableMesh< TDataType >, dyno::ExtractShape< TDataType >, dyno::ExtrudeModel< TDataType >, dyno::Gear< TDataType >, dyno::GhostFluid< TDataType >, dyno::GhostParticles< TDataType >, dyno::GLCommonPointVisualNode< TDataType >, dyno::GLInstanceVisualNode< TDataType >, dyno::GLPointVisualNode< TDataType >, dyno::GLSurfaceVisualNode< TDataType >, dyno::GltfLoader< TDataType >, dyno::GLWireframeVisualNode< TDataType >, dyno::GranularMedia< TDataType >, dyno::Group< TDataType >, dyno::HyperelasticBody< TDataType >, dyno::Jeep< TDataType >, dyno::JointDeform< TDataType >, dyno::LandScape< TDataType >, dyno::LargeOcean< TDataType >, dyno::MakeGhostParticles< TDataType >, dyno::MakeParticleSystem< TDataType >, dyno::MarchingCubes< TDataType >, dyno::Merge< TDataType >, dyno::MergeSimplexSet< TDataType >, dyno::MergeTriangleSet< TDataType >, dyno::MultibodySystem< TDataType >, dyno::NormalVisualization< TDataType >, dyno::Ocean< TDataType >, dyno::OceanPatch< TDataType >, dyno::ParticleEmitter< TDataType >, dyno::ParticleFluid< TDataType >, dyno::ParticleFluid< TDataType >, dyno::ParticleRelaxtionOnMesh< TDataType >, dyno::ParticleSkinning< TDataType >, dyno::ParticleSystem< TDataType >, dyno::ParticleSystem< TDataType >, dyno::Peridynamics< TDataType >, dyno::PlaneModel< TDataType >, dyno::PointClip< TDataType >, dyno::PointFromCurve< TDataType >, dyno::PointPickerNode< TDataType >, dyno::PointsBehindMesh< TDataType >, dyno::PointSetToTriangleSet< TDataType >, dyno::PointsLoader< TDataType >, dyno::PoissonDiskSampling< TDataType >, dyno::PoissonEmitter< TDataType >, dyno::PolyExtrude< TDataType >, dyno::PolygonSetToTriangleSetNode< TDataType >, dyno::QuadPickerNode< TDataType >, dyno::RigidBodySystem< TDataType >, dyno::RigidMesh< TDataType >, dyno::RigidSandCoupling< TDataType >, dyno::RigidWaterCoupling< TDataType >, dyno::SdfSampler< TDataType >, dyno::SemiAnalyticalSFINode< TDataType >, dyno::ShapeSampler< TDataType >, dyno::SparseMarchingCubes< TDataType >, dyno::SparseVolumeClipper< TDataType >, dyno::SphereModel< TDataType >, dyno::SplineConstraint< TDataType >, dyno::SplitSimplexSet< TDataType >, dyno::SquareEmitter< TDataType >, dyno::SquareEmitter< TDataType >, dyno::Subdivide< TDataType >, dyno::SurfaceParticleTracking< TDataType >, dyno::SweepModel< TDataType >, dyno::Tank< TDataType >, dyno::TetrahedralSystem< TDataType >, dyno::TextureMeshLoader, dyno::TextureMeshMerge< TDataType >, dyno::TextureMeshToTriangleSetNode< TDataType >, dyno::Thread< TDataType >, dyno::ThreadSystem< TDataType >, dyno::TrackedTank< TDataType >, dyno::TransformModel< TDataType >, dyno::TrianglePickerNode< TDataType >, dyno::TriangularSystem< TDataType >, dyno::TurningModel< TDataType >, dyno::UAV< TDataType >, dyno::UUV< TDataType >, dyno::VectorVisualNode< TDataType >, dyno::Vessel< TDataType >, dyno::VolumeBoolean< TDataType >, dyno::VolumeClipper< TDataType >, dyno::VolumeGenerator< TDataType >, dyno::VolumeLoader< TDataType >, dyno::VolumeOctreeBoolean< TDataType >, and dyno::VolumeOctreeGenerator< TDataType >.
Definition at line 214 of file Node.cpp.
|
virtual |
void dyno::Node::setAutoHidden | ( | bool | con | ) |
void dyno::Node::setAutoSync | ( | bool | con | ) |
void dyno::Node::setDt | ( | Real | dt | ) |
void dyno::Node::setForceUpdate | ( | bool | b | ) |
void dyno::Node::setSceneGraph | ( | SceneGraph * | scn | ) |
|
virtual |
|
protected |
void dyno::Node::update | ( | ) |
void dyno::Node::updateGraphicsContext | ( | ) |
|
protectedvirtual |
Reimplemented in dyno::AdaptiveBoundary< TDataType >, dyno::ArticulatedBody< TDataType >, dyno::CapillaryWave< TDataType >, dyno::GltfLoader< TDataType >, dyno::GranularMedia< TDataType >, dyno::JointDeform< TDataType >, dyno::LargeOcean< TDataType >, dyno::MarchingCubes< TDataType >, dyno::MergeTriangleSet< TDataType >, dyno::NormalVisualization< TDataType >, dyno::Ocean< TDataType >, dyno::OceanPatch< TDataType >, dyno::ParticleEmitter< TDataType >, dyno::ParticleEmitter< TDataType >, dyno::PointClip< TDataType >, dyno::PointSetToTriangleSet< TDataType >, dyno::PolygonSetToTriangleSetNode< TDataType >, dyno::RigidBody< TDataType >, dyno::RigidMesh< TDataType >, dyno::RigidSandCoupling< TDataType >, dyno::RigidWaterCoupling< TDataType >, dyno::SparseMarchingCubes< TDataType >, dyno::SparseVolumeClipper< TDataType >, dyno::SplineConstraint< TDataType >, dyno::SurfaceParticleTracking< TDataType >, dyno::TextureMeshToTriangleSetNode< TDataType >, dyno::TriangularMeshBoundary< TDataType >, dyno::VectorVisualNode< TDataType >, dyno::Vessel< TDataType >, dyno::VolumeBoundary< TDataType >, dyno::VolumeOctreeBoolean< TDataType >, dyno::VolumeOctreeGenerator< TDataType >, and dyno::Wake< TDataType >.
Definition at line 141 of file Node.cpp.
|
protectedvirtual |
Reimplemented in dyno::CodimensionalPD< TDataType >, dyno::TetrahedralSystem< TDataType >, dyno::ThreadSystem< TDataType >, and dyno::VolumeOctreeGenerator< TDataType >.
Definition at line 476 of file Node.cpp.
|
protectedvirtual |
Reimplemented in dyno::BasicShapeToVolume< TDataType >, dyno::CollisionDetector< TDataType >, dyno::MultibodySystem< TDataType >, dyno::OceanBase< TDataType >, dyno::SdfSampler< TDataType >, dyno::SemiAnalyticalSFINode< TDataType >, dyno::SparseMarchingCubes< TDataType >, dyno::SurfaceParticleTracking< TDataType >, and dyno::VolumeOctreeBoolean< TDataType >.
Definition at line 219 of file Node.cpp.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |