KiCad PCB EDA Suite
Loading...
Searching...
No Matches
X3DNODE Class Referenceabstract

The base class of all X3D nodes. More...

#include <x3d_base.h>

Inheritance diagram for X3DNODE:
X3DAPP X3DCOORDS X3DIFACESET X3DSHAPE X3DTRANSFORM

Public Member Functions

virtual void unlinkChildNode (const X3DNODE *aNode)
 Remove references to an owned child; it is invoked by the child upon destruction to ensure that the parent has no invalid references.
 
virtual void unlinkRefNode (const X3DNODE *aNode)
 Remove pointers to a referenced node; it is invoked by the referenced node upon destruction to ensure that the referring node has no invalid references.
 
void addNodeRef (X3DNODE *aNode)
 Add a pointer to a node which references, but does not own, this node.
 
void delNodeRef (X3DNODE *aNode)
 Remove a pointer to a node which references, but does not own, this node.
 
 X3DNODE ()
 
virtual ~X3DNODE ()
 
virtual bool Read (wxXmlNode *aNode, X3DNODE *aTopNode, X3D_DICT &aDict)=0
 
X3DNODES GetNodeType (void) const
 Return the type of this node instance.
 
X3DNODEGetParent (void) const
 Return a pointer to the parent node of this object or NULL if the object has no parent (ie.
 
wxString GetName (void) const
 Return the name of this object.
 
virtual bool SetParent (X3DNODE *aParent, bool doUnlink=true)=0
 Set the parent X3DNODE of this object.
 
virtual bool AddChildNode (X3DNODE *aNode)=0
 
virtual bool AddRefNode (X3DNODE *aNode)=0
 
std::string GetError (void)
 
virtual SGNODETranslateToSG (SGNODE *aParent)=0
 Produce a representation of the data using the intermediate scenegraph structures of the kicad_3dsg library.
 

Protected Attributes

X3DNODEm_Parent
 
X3DNODES m_Type
 
X3D_DICTm_Dict
 
std::list< X3DNODE * > m_BackPointers
 
std::list< X3DNODE * > m_Children
 
std::list< X3DNODE * > m_Refs
 
std::string m_error
 
wxString m_Name
 
SGNODEm_sgNode
 

Detailed Description

The base class of all X3D nodes.

Definition at line 74 of file x3d_base.h.

Constructor & Destructor Documentation

◆ X3DNODE()

X3DNODE::X3DNODE ( )

Definition at line 82 of file x3d_base.cpp.

References m_Dict, m_Parent, m_sgNode, m_Type, and X3D_INVALID.

◆ ~X3DNODE()

X3DNODE::~X3DNODE ( )
virtual

Definition at line 93 of file x3d_base.cpp.

References X3D_DICT::DelName(), m_Dict, and m_Name.

Member Function Documentation

◆ AddChildNode()

◆ addNodeRef()

void X3DNODE::addNodeRef ( X3DNODE aNode)

Add a pointer to a node which references, but does not own, this node.

Such back-pointers are required to ensure that invalidated references are removed when a node is deleted.

Parameters
aNodeis the node holding a reference to this object.

Definition at line 142 of file x3d_base.cpp.

References m_BackPointers, and m_Parent.

Referenced by X3DIFACESET::AddRefNode(), X3DSHAPE::AddRefNode(), and X3DTRANSFORM::AddRefNode().

◆ AddRefNode()

virtual bool X3DNODE::AddRefNode ( X3DNODE aNode)
pure virtual

◆ delNodeRef()

void X3DNODE::delNodeRef ( X3DNODE aNode)

Remove a pointer to a node which references, but does not own, this node.

Parameters
aNodeis the node holding a reference to this object.

Definition at line 165 of file x3d_base.cpp.

References m_BackPointers, and traceVrmlPlugin.

◆ GetError()

std::string X3DNODE::GetError ( void  )

Definition at line 202 of file x3d_base.cpp.

References m_error.

◆ GetName()

wxString X3DNODE::GetName ( void  ) const

Return the name of this object.

Definition at line 196 of file x3d_base.cpp.

References m_Name.

◆ GetNodeType()

◆ GetParent()

X3DNODE * X3DNODE::GetParent ( void  ) const

Return a pointer to the parent node of this object or NULL if the object has no parent (ie.

top level transform).

Definition at line 190 of file x3d_base.cpp.

References m_Parent.

Referenced by X3DIFACESET::AddChildNode(), X3DSHAPE::AddChildNode(), and X3DTRANSFORM::AddChildNode().

◆ Read()

virtual bool X3DNODE::Read ( wxXmlNode *  aNode,
X3DNODE aTopNode,
X3D_DICT aDict 
)
pure virtual

◆ SetParent()

virtual bool X3DNODE::SetParent ( X3DNODE aParent,
bool  doUnlink = true 
)
pure virtual

Set the parent X3DNODE of this object.

Parameters
aParent[in] is the desired parent node.
doUnlinkindicates that the child must be unlinked from the parent
Returns
true if the operation succeeds or false if the given node is not allowed to be a parent to the derived object.

Implemented in X3DAPP, X3DCOORDS, X3DIFACESET, X3DSHAPE, and X3DTRANSFORM.

Referenced by X3DIFACESET::AddChildNode(), X3DSHAPE::AddChildNode(), and X3DTRANSFORM::AddChildNode().

◆ TranslateToSG()

virtual SGNODE * X3DNODE::TranslateToSG ( SGNODE aParent)
pure virtual

Produce a representation of the data using the intermediate scenegraph structures of the kicad_3dsg library.

Parameters
aParentis a pointer to the parent SG node/
Returns
is non-NULL on success.

Implemented in X3DAPP, X3DCOORDS, X3DIFACESET, X3DSHAPE, and X3DTRANSFORM.

Referenced by X3DPARSER::Load(), and X3DSHAPE::TranslateToSG().

◆ unlinkChildNode()

void X3DNODE::unlinkChildNode ( const X3DNODE aNode)
virtual

Remove references to an owned child; it is invoked by the child upon destruction to ensure that the parent has no invalid references.

Parameters
aNodeis the child which is being deleted.

Reimplemented in X3DSHAPE.

Definition at line 102 of file x3d_base.cpp.

References m_Children.

Referenced by X3DAPP::SetParent(), X3DCOORDS::SetParent(), X3DIFACESET::SetParent(), X3DSHAPE::SetParent(), X3DTRANSFORM::SetParent(), and X3DSHAPE::unlinkChildNode().

◆ unlinkRefNode()

void X3DNODE::unlinkRefNode ( const X3DNODE aNode)
virtual

Remove pointers to a referenced node; it is invoked by the referenced node upon destruction to ensure that the referring node has no invalid references.

Parameters
aNodeis the node which is being deleted.

Reimplemented in X3DSHAPE.

Definition at line 122 of file x3d_base.cpp.

References m_Refs.

Referenced by X3DSHAPE::unlinkRefNode().

Member Data Documentation

◆ m_BackPointers

◆ m_Children

◆ m_Dict

◆ m_error

std::string X3DNODE::m_error
protected

Definition at line 166 of file x3d_base.h.

Referenced by GetError().

◆ m_Name

wxString X3DNODE::m_Name
protected

◆ m_Parent

◆ m_Refs

◆ m_sgNode

SGNODE* X3DNODE::m_sgNode
protected

◆ m_Type


The documentation for this class was generated from the following files: