KiCad PCB EDA Suite
|
IFSG_NODE represents the base class of all DLL-safe Scene Graph nodes. More...
#include <ifsg_node.h>
Public Member Functions | |
IFSG_NODE () | |
virtual | ~IFSG_NODE () |
IFSG_NODE (const IFSG_NODE &aParent)=delete | |
IFSG_NODE & | operator= (const IFSG_NODE &)=delete |
void | Destroy (void) |
Function Destroy deletes the object held by this wrapper. | |
virtual bool | Attach (SGNODE *aNode)=0 |
Function Attach associates a given SGNODE* with this wrapper. | |
virtual bool | NewNode (SGNODE *aParent)=0 |
Function NewNode creates a new node to associate with this wrapper. | |
virtual bool | NewNode (IFSG_NODE &aParent)=0 |
SGNODE * | GetRawPtr (void) noexcept |
Function GetRawPtr() returns the raw internal SGNODE pointer. | |
S3D::SGTYPES | GetNodeType (void) const |
Function GetNodeType returns the type of this node instance. | |
SGNODE * | GetParent (void) const |
Function GetParent returns a pointer to the parent SGNODE of this object or NULL if the object has no parent (ie. | |
bool | SetParent (SGNODE *aParent) |
Function SetParent sets the parent SGNODE of this object. | |
const char * | GetName (void) |
Function GetName returns a pointer to the node name (NULL if no name assigned) | |
bool | SetName (const char *aName) |
Function SetName sets the node's name; if the pointer passed is NULL then the node's name is erased. | |
const char * | GetNodeTypeName (S3D::SGTYPES aNodeType) const |
Function GetNodeTypeName returns the text representation of the node type or NULL if the node somehow has an invalid type. | |
SGNODE * | FindNode (const char *aNodeName) |
Function FindNode searches the tree of linked nodes and returns a reference to the first node found with the given name. | |
bool | AddRefNode (SGNODE *aNode) |
Function AddRefNode adds a reference to an existing node which is not owned by (not a child of) this node. | |
bool | AddRefNode (IFSG_NODE &aNode) |
bool | AddChildNode (SGNODE *aNode) |
Function AddChildNode adds a node as a child owned by this node. | |
bool | AddChildNode (IFSG_NODE &aNode) |
Protected Attributes | |
SGNODE * | m_node |
IFSG_NODE represents the base class of all DLL-safe Scene Graph nodes.
Definition at line 54 of file ifsg_node.h.
IFSG_NODE::IFSG_NODE | ( | ) |
Definition at line 42 of file ifsg_node.cpp.
References m_node.
|
virtual |
Definition at line 48 of file ifsg_node.cpp.
References SGNODE::DisassociateWrapper(), and m_node.
|
delete |
bool IFSG_NODE::AddChildNode | ( | IFSG_NODE & | aNode | ) |
Definition at line 156 of file ifsg_node.cpp.
References SGNODE::AddChildNode(), GetRawPtr(), and m_node.
bool IFSG_NODE::AddChildNode | ( | SGNODE * | aNode | ) |
Function AddChildNode adds a node as a child owned by this node.
Definition at line 148 of file ifsg_node.cpp.
References SGNODE::AddChildNode(), and m_node.
Referenced by SHAPE::CalcShape(), EXPORTER_PCB_VRML::create_vrml_plane(), EXPORTER_PCB_VRML::create_vrml_shell(), EXPORTER_PCB_VRML::ExportVrmlFootprint(), and makeComponents().
bool IFSG_NODE::AddRefNode | ( | IFSG_NODE & | aNode | ) |
Definition at line 136 of file ifsg_node.cpp.
References SGNODE::AddRefNode(), GetRawPtr(), and m_node.
bool IFSG_NODE::AddRefNode | ( | SGNODE * | aNode | ) |
Function AddRefNode adds a reference to an existing node which is not owned by (not a child of) this node.
Definition at line 128 of file ifsg_node.cpp.
References SGNODE::AddRefNode(), and m_node.
Referenced by SHAPE::CalcShape(), EXPORTER_PCB_VRML::create_vrml_plane(), EXPORTER_PCB_VRML::create_vrml_shell(), EXPORTER_PCB_VRML::ExportVrmlFootprint(), makeComponents(), and vrmlToSG().
|
pure virtual |
Function Attach associates a given SGNODE* with this wrapper.
Implemented in IFSG_APPEARANCE, IFSG_COLORS, IFSG_COORDINDEX, IFSG_COORDS, IFSG_FACESET, IFSG_NORMALS, IFSG_SHAPE, IFSG_TRANSFORM, and IFSG_INDEX.
void IFSG_NODE::Destroy | ( | void | ) |
Function Destroy deletes the object held by this wrapper.
Definition at line 55 of file ifsg_node.cpp.
References SGNODE::DisassociateWrapper(), and m_node.
Referenced by loadIDFBoard(), processSolidOrShell(), WRL2BASE::TranslateToSG(), WRL2SHAPE::TranslateToSG(), WRL2TRANSFORM::TranslateToSG(), X3DSHAPE::TranslateToSG(), X3DTRANSFORM::TranslateToSG(), WRL1BASE::TranslateToSG(), WRL1GROUP::TranslateToSG(), WRL1SEPARATOR::TranslateToSG(), and EXPORTER_PCB_VRML::~EXPORTER_PCB_VRML().
SGNODE * IFSG_NODE::FindNode | ( | const char * | aNodeName | ) |
Function FindNode searches the tree of linked nodes and returns a reference to the first node found with the given name.
The reference is then typically added to another node via AddRefNode().
aNodeName | is the name of the node to search for |
Definition at line 120 of file ifsg_node.cpp.
References SGNODE::FindNode(), and m_node.
const char * IFSG_NODE::GetName | ( | void | ) |
Function GetName returns a pointer to the node name (NULL if no name assigned)
Definition at line 95 of file ifsg_node.cpp.
References SGNODE::GetName(), and m_node.
S3D::SGTYPES IFSG_NODE::GetNodeType | ( | void | ) | const |
Function GetNodeType returns the type of this node instance.
Definition at line 71 of file ifsg_node.cpp.
References SGNODE::GetNodeType(), m_node, and S3D::SGTYPE_END.
const char * IFSG_NODE::GetNodeTypeName | ( | S3D::SGTYPES | aNodeType | ) | const |
Function GetNodeTypeName returns the text representation of the node type or NULL if the node somehow has an invalid type.
Definition at line 112 of file ifsg_node.cpp.
References SGNODE::GetNodeTypeName(), and m_node.
SGNODE * IFSG_NODE::GetParent | ( | void | ) | const |
Function GetParent returns a pointer to the parent SGNODE of this object or NULL if the object has no parent (ie.
top level transform).
Definition at line 79 of file ifsg_node.cpp.
References SGNODE::GetParent(), and m_node.
Referenced by makeComponents().
|
noexcept |
Function GetRawPtr() returns the raw internal SGNODE pointer.
Definition at line 65 of file ifsg_node.cpp.
Referenced by AddChildNode(), AddRefNode(), SHAPE::CalcShape(), EXPORTER_PCB_VRML::create_vrml_plane(), EXPORTER_PCB_VRML::create_vrml_shell(), EXPORTER_PCB_VRML::ExportVrmlFootprint(), WRL1MATERIAL::GetAppearance(), getColor(), DATA::GetColor(), EXPORTER_PCB_VRML::getSGColor(), IFSG_APPEARANCE::IFSG_APPEARANCE(), IFSG_COLORS::IFSG_COLORS(), IFSG_COORDINDEX::IFSG_COORDINDEX(), IFSG_COORDS::IFSG_COORDS(), IFSG_FACESET::IFSG_FACESET(), IFSG_NORMALS::IFSG_NORMALS(), IFSG_SHAPE::IFSG_SHAPE(), loadIDFBoard(), LoadModel(), IFSG_APPEARANCE::NewNode(), IFSG_COLORS::NewNode(), IFSG_COORDINDEX::NewNode(), IFSG_COORDS::NewNode(), IFSG_FACESET::NewNode(), IFSG_NORMALS::NewNode(), IFSG_SHAPE::NewNode(), IFSG_TRANSFORM::NewNode(), processFace(), processLabel(), processSolidOrShell(), WRL2APPEARANCE::TranslateToSG(), WRL2BASE::TranslateToSG(), WRL2BOX::TranslateToSG(), WRL2MATERIAL::TranslateToSG(), WRL2SHAPE::TranslateToSG(), WRL2TRANSFORM::TranslateToSG(), X3DAPP::TranslateToSG(), X3DSHAPE::TranslateToSG(), X3DTRANSFORM::TranslateToSG(), WRL1BASE::TranslateToSG(), WRL1GROUP::TranslateToSG(), WRL1SEPARATOR::TranslateToSG(), vrmlToSG(), and EXPORTER_PCB_VRML::writeLayers().
|
pure virtual |
Implemented in IFSG_APPEARANCE, IFSG_COLORS, IFSG_COORDINDEX, IFSG_COORDS, IFSG_FACESET, IFSG_NORMALS, IFSG_SHAPE, IFSG_TRANSFORM, and IFSG_INDEX.
|
pure virtual |
Function NewNode creates a new node to associate with this wrapper.
Implemented in IFSG_APPEARANCE, IFSG_COLORS, IFSG_COORDINDEX, IFSG_COORDS, IFSG_FACESET, IFSG_NORMALS, IFSG_SHAPE, IFSG_TRANSFORM, and IFSG_INDEX.
bool IFSG_NODE::SetName | ( | const char * | aName | ) |
Function SetName sets the node's name; if the pointer passed is NULL then the node's name is erased.
Definition at line 103 of file ifsg_node.cpp.
References m_node, and SGNODE::SetName().
bool IFSG_NODE::SetParent | ( | SGNODE * | aParent | ) |
Function SetParent sets the parent SGNODE of this object.
aParent | [in] is the desired parent node |
Definition at line 87 of file ifsg_node.cpp.
References m_node, and SGNODE::SetParent().
Referenced by processFace(), and EXPORTER_PCB_VRML::~EXPORTER_PCB_VRML().
|
protected |
Definition at line 57 of file ifsg_node.h.
Referenced by AddChildNode(), IFSG_COLORS::AddColor(), IFSG_COORDS::AddCoord(), IFSG_INDEX::AddIndex(), IFSG_NORMALS::AddNormal(), AddRefNode(), IFSG_APPEARANCE::Attach(), IFSG_COLORS::Attach(), IFSG_COORDINDEX::Attach(), IFSG_COORDS::Attach(), IFSG_FACESET::Attach(), IFSG_NORMALS::Attach(), IFSG_SHAPE::Attach(), IFSG_TRANSFORM::Attach(), IFSG_FACESET::CalcNormals(), Destroy(), FindNode(), IFSG_COLORS::GetColorList(), IFSG_COORDS::GetCoordsList(), IFSG_INDEX::GetIndices(), GetName(), GetNodeType(), GetNodeTypeName(), IFSG_NORMALS::GetNormalList(), GetParent(), IFSG_APPEARANCE::IFSG_APPEARANCE(), IFSG_COLORS::IFSG_COLORS(), IFSG_COORDINDEX::IFSG_COORDINDEX(), IFSG_COORDS::IFSG_COORDS(), IFSG_FACESET::IFSG_FACESET(), IFSG_NODE(), IFSG_NORMALS::IFSG_NORMALS(), IFSG_SHAPE::IFSG_SHAPE(), IFSG_TRANSFORM::IFSG_TRANSFORM(), IFSG_APPEARANCE::NewNode(), IFSG_COLORS::NewNode(), IFSG_COORDINDEX::NewNode(), IFSG_COORDS::NewNode(), IFSG_FACESET::NewNode(), IFSG_NORMALS::NewNode(), IFSG_SHAPE::NewNode(), IFSG_TRANSFORM::NewNode(), IFSG_APPEARANCE::SetAmbient(), IFSG_COLORS::SetColorList(), IFSG_COORDS::SetCoordsList(), IFSG_APPEARANCE::SetDiffuse(), IFSG_APPEARANCE::SetEmissive(), IFSG_INDEX::SetIndices(), SetName(), IFSG_NORMALS::SetNormalList(), SetParent(), IFSG_TRANSFORM::SetRotation(), IFSG_TRANSFORM::SetScale(), IFSG_TRANSFORM::SetScaleOrientation(), IFSG_APPEARANCE::SetSpecular(), and ~IFSG_NODE().