KiCad PCB EDA Suite
X3DIFACESET Class Reference

#include <x3d_ifaceset.h>

Inheritance diagram for X3DIFACESET:
X3DNODE

Public Member Functions

 X3DIFACESET ()
 
 X3DIFACESET (X3DNODE *aParent)
 
virtual ~X3DIFACESET ()
 
bool Read (wxXmlNode *aNode, X3DNODE *aTopNode, X3D_DICT &aDict) override
 
bool SetParent (X3DNODE *aParent, bool doUnlink=true) override
 Set the parent X3DNODE of this object. More...
 
bool AddChildNode (X3DNODE *aNode) override
 
bool AddRefNode (X3DNODE *aNode) override
 
SGNODETranslateToSG (SGNODE *aParent) override
 Produce a representation of the data using the intermediate scenegraph structures of the kicad_3dsg library. More...
 
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. More...
 
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. More...
 
void addNodeRef (X3DNODE *aNode)
 Add a pointer to a node which references, but does not own, this node. More...
 
void delNodeRef (X3DNODE *aNode)
 Remove a pointer to a node which references, but does not own, this node. More...
 
X3DNODES GetNodeType (void) const
 Return the type of this node instance. More...
 
X3DNODEGetParent (void) const
 Return a pointer to the parent node of this object or NULL if the object has no parent (ie. More...
 
wxString GetName (void) const
 Return the name of this object. More...
 
std::string GetError (void)
 

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
 

Private Member Functions

void init ()
 
void readFields (wxXmlNode *aNode)
 

Private Attributes

X3DNODEcoord
 
bool ccw
 
float creaseAngle
 
float creaseLimit
 
std::vector< int > coordIndex
 

Detailed Description

Definition at line 39 of file x3d_ifaceset.h.

Constructor & Destructor Documentation

◆ X3DIFACESET() [1/2]

X3DIFACESET::X3DIFACESET ( )

Definition at line 39 of file x3d_ifaceset.cpp.

39  : X3DNODE()
40 {
42  coord = nullptr;
43  init();
44 }
X3DNODE * coord
Definition: x3d_ifaceset.h:53
X3DNODES m_Type
Definition: x3d_base.h:160
X3DNODE()
Definition: x3d_base.cpp:82

References coord, init(), X3DNODE::m_Type, and X3D_INDEXED_FACE_SET.

◆ X3DIFACESET() [2/2]

X3DIFACESET::X3DIFACESET ( X3DNODE aParent)

Definition at line 47 of file x3d_ifaceset.cpp.

47  : X3DNODE()
48 {
50  coord = nullptr;
51  init();
52 
53  if( nullptr != aParent )
54  {
55  X3DNODES ptype = aParent->GetNodeType();
56 
57  if( X3D_SHAPE == ptype )
58  m_Parent = aParent;
59  }
60 
61  if( nullptr != m_Parent )
62  m_Parent->AddChildNode( this );
63 }
X3DNODE * coord
Definition: x3d_ifaceset.h:53
X3DNODES m_Type
Definition: x3d_base.h:160
X3DNODE()
Definition: x3d_base.cpp:82
virtual bool AddChildNode(X3DNODE *aNode)=0
X3DNODES GetNodeType(void) const
Return the type of this node instance.
Definition: x3d_base.cpp:184
X3DNODE * m_Parent
Definition: x3d_base.h:159
X3DNODES
Definition: x3d_base.h:59

References X3DNODE::AddChildNode(), coord, X3DNODE::GetNodeType(), init(), X3DNODE::m_Parent, X3DNODE::m_Type, X3D_INDEXED_FACE_SET, and X3D_SHAPE.

◆ ~X3DIFACESET()

X3DIFACESET::~X3DIFACESET ( )
virtual

Definition at line 66 of file x3d_ifaceset.cpp.

67 {
68  wxLogTrace( traceVrmlPlugin, " * [INFO] Destroying IndexedFaceSet." );
69 }
const wxChar *const traceVrmlPlugin
Flag to enable VRML plugin trace output.
Definition: vrml.cpp:63

References traceVrmlPlugin.

Member Function Documentation

◆ AddChildNode()

bool X3DIFACESET::AddChildNode ( X3DNODE aNode)
overridevirtual

Implements X3DNODE.

Definition at line 181 of file x3d_ifaceset.cpp.

182 {
183  if( nullptr == aNode )
184  return false;
185 
186  if( aNode->GetNodeType() != X3D_COORDINATE )
187  return false;
188 
189  if( aNode == coord )
190  return true;
191 
192  if( nullptr != coord )
193  return false;
194 
195  m_Children.push_back( aNode );
196  coord = aNode;
197 
198  if( aNode->GetParent() != this )
199  aNode->SetParent( this );
200 
201  return true;
202 }
virtual bool SetParent(X3DNODE *aParent, bool doUnlink=true)=0
Set the parent X3DNODE of this object.
X3DNODE * coord
Definition: x3d_ifaceset.h:53
X3DNODE * GetParent(void) const
Return a pointer to the parent node of this object or NULL if the object has no parent (ie.
Definition: x3d_base.cpp:190
std::list< X3DNODE * > m_Children
Definition: x3d_base.h:164
X3DNODES GetNodeType(void) const
Return the type of this node instance.
Definition: x3d_base.cpp:184

References coord, X3DNODE::GetNodeType(), X3DNODE::GetParent(), X3DNODE::m_Children, X3DNODE::SetParent(), and X3D_COORDINATE.

◆ addNodeRef()

void X3DNODE::addNodeRef ( X3DNODE aNode)
inherited

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.

143 {
144  // the parent node must never be added as a backpointer
145  if( aNode == m_Parent )
146  return;
147 
148  std::list< X3DNODE* >::iterator sR = m_BackPointers.begin();
149  std::list< X3DNODE* >::iterator eR = m_BackPointers.end();
150 
151  while( sR != eR )
152  {
153  if( *sR == aNode )
154  return;
155 
156  ++sR;
157  }
158 
159  m_BackPointers.push_back( aNode );
160 
161  return;
162 }
std::list< X3DNODE * > m_BackPointers
Definition: x3d_base.h:163
X3DNODE * m_Parent
Definition: x3d_base.h:159

References X3DNODE::m_BackPointers, and X3DNODE::m_Parent.

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

◆ AddRefNode()

bool X3DIFACESET::AddRefNode ( X3DNODE aNode)
overridevirtual

Implements X3DNODE.

Definition at line 205 of file x3d_ifaceset.cpp.

206 {
207  if( nullptr == aNode )
208  return false;
209 
210  if( aNode->GetNodeType() != X3D_COORDINATE )
211  return false;
212 
213  if( aNode == coord )
214  return true;
215 
216  if( nullptr != coord )
217  return false;
218 
219  m_Refs.push_back( aNode );
220  aNode->addNodeRef( this );
221  coord = aNode;
222  return true;
223 }
X3DNODE * coord
Definition: x3d_ifaceset.h:53
void addNodeRef(X3DNODE *aNode)
Add a pointer to a node which references, but does not own, this node.
Definition: x3d_base.cpp:142
X3DNODES GetNodeType(void) const
Return the type of this node instance.
Definition: x3d_base.cpp:184
std::list< X3DNODE * > m_Refs
Definition: x3d_base.h:165

References X3DNODE::addNodeRef(), coord, X3DNODE::GetNodeType(), X3DNODE::m_Refs, and X3D_COORDINATE.

◆ delNodeRef()

void X3DNODE::delNodeRef ( X3DNODE aNode)
inherited

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.

166 {
167  std::list< X3DNODE* >::iterator np =
168  std::find( m_BackPointers.begin(), m_BackPointers.end(), aNode );
169 
170  if( np != m_BackPointers.end() )
171  {
172  m_BackPointers.erase( np );
173  return;
174  }
175 
176  wxLogTrace( traceVrmlPlugin, wxT( "%s:%s:%d\n"
177  " * [BUG] delNodeRef() did not find its target." ),
178  __FILE__, __FUNCTION__, __LINE__ );
179 
180  return;
181 }
std::list< X3DNODE * > m_BackPointers
Definition: x3d_base.h:163
const wxChar *const traceVrmlPlugin
Flag to enable VRML plugin trace output.
Definition: vrml.cpp:63

References X3DNODE::m_BackPointers, and traceVrmlPlugin.

◆ GetError()

std::string X3DNODE::GetError ( void  )
inherited

Definition at line 202 of file x3d_base.cpp.

203 {
204  return m_error;
205 }
std::string m_error
Definition: x3d_base.h:166

References X3DNODE::m_error.

◆ GetName()

wxString X3DNODE::GetName ( void  ) const
inherited

Return the name of this object.

Definition at line 196 of file x3d_base.cpp.

197 {
198  return m_Name;
199 }
wxString m_Name
Definition: x3d_base.h:168

References X3DNODE::m_Name.

◆ GetNodeType()

◆ GetParent()

X3DNODE * X3DNODE::GetParent ( void  ) const
inherited

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.

191 {
192  return m_Parent;
193 }
X3DNODE * m_Parent
Definition: x3d_base.h:159

References X3DNODE::m_Parent.

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

◆ init()

void X3DIFACESET::init ( )
private

Definition at line 72 of file x3d_ifaceset.cpp.

73 {
74  coord = nullptr;
75 
76  ccw = true;
77  creaseAngle = 0.733f; // approx 42 degrees; this is larger than VRML spec.
78  creaseLimit = 0.74317f; // cos( 0.733 )
79 }
float creaseLimit
Definition: x3d_ifaceset.h:57
X3DNODE * coord
Definition: x3d_ifaceset.h:53
float creaseAngle
Definition: x3d_ifaceset.h:56

References ccw, coord, creaseAngle, and creaseLimit.

Referenced by X3DIFACESET().

◆ Read()

bool X3DIFACESET::Read ( wxXmlNode *  aNode,
X3DNODE aTopNode,
X3D_DICT aDict 
)
overridevirtual

Implements X3DNODE.

Definition at line 130 of file x3d_ifaceset.cpp.

131 {
132  if( nullptr == aTopNode || nullptr == aNode )
133  return false;
134 
135  m_Dict = &aDict;
136  readFields( aNode );
137  bool ok = false;
138 
139  for( wxXmlNode* child = aNode->GetChildren(); child != nullptr; child = child->GetNext() )
140  {
141  if( child->GetName() == "Coordinate" )
142  ok = X3D::ReadCoordinates( child, this, aDict );
143 
144  }
145 
146  if( false == ok )
147  return false;
148 
149  if( !SetParent( aTopNode ) )
150  return false;
151 
152  return true;
153 }
void readFields(wxXmlNode *aNode)
bool SetParent(X3DNODE *aParent, bool doUnlink=true) override
Set the parent X3DNODE of this object.
X3D_DICT * m_Dict
Definition: x3d_base.h:161
bool ReadCoordinates(wxXmlNode *aNode, X3DNODE *aParent, X3D_DICT &aDict)
Definition: x3d_ops.cpp:193

References X3DNODE::m_Dict, X3D::ReadCoordinates(), readFields(), and SetParent().

◆ readFields()

void X3DIFACESET::readFields ( wxXmlNode *  aNode)
private

Definition at line 82 of file x3d_ifaceset.cpp.

83 {
84  // DEF
85  // ccw
86  // creaseAngle
87  // coordIndex
88 
89  wxXmlAttribute* prop;
90 
91  for( prop = aNode->GetAttributes(); prop != nullptr; prop = prop->GetNext() )
92  {
93  const wxString& pname = prop->GetName();
94 
95  if( pname == "DEF" )
96  {
97  m_Name = prop->GetValue();
98  m_Dict->AddName( m_Name, this );
99  }
100  else if( pname == "ccw" )
101  {
102  X3D::ParseSFBool( prop->GetValue(), ccw );
103  }
104  else if( pname == "creaseAngle" )
105  {
106  X3D::ParseSFFloat( prop->GetValue(), creaseAngle );
107 
108  if( creaseAngle < 0.0f )
109  creaseAngle = 0.0f;
110  else if( creaseAngle > static_cast<float>( M_PI * 0.34f ) )
111  creaseAngle = static_cast<float>( M_PI / 3.0f );
112 
113  creaseLimit = cosf( creaseAngle );
114  }
115  else if( pname == "coordIndex" )
116  {
117  wxStringTokenizer indices( prop->GetValue() );
118 
119  while( indices.HasMoreTokens() )
120  {
121  long index = 0;
122  indices.GetNextToken().ToLong( &index );
123  coordIndex.push_back( (int) index );
124  }
125  }
126  }
127 }
float creaseLimit
Definition: x3d_ifaceset.h:57
wxString m_Name
Definition: x3d_base.h:168
bool ParseSFFloat(const wxString &aSource, float &aResult)
Definition: x3d_ops.cpp:252
std::vector< int > coordIndex
Definition: x3d_ifaceset.h:58
bool AddName(const wxString &aName, X3DNODE *aNode)
Definition: x3d_base.cpp:35
bool ParseSFBool(const wxString &aSource, bool &aResult)
Definition: x3d_ops.cpp:231
float creaseAngle
Definition: x3d_ifaceset.h:56
X3D_DICT * m_Dict
Definition: x3d_base.h:161

References X3D_DICT::AddName(), ccw, coordIndex, creaseAngle, creaseLimit, X3DNODE::m_Dict, X3DNODE::m_Name, X3D::ParseSFBool(), and X3D::ParseSFFloat().

Referenced by Read().

◆ SetParent()

bool X3DIFACESET::SetParent ( X3DNODE aParent,
bool  doUnlink = true 
)
overridevirtual

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.

Implements X3DNODE.

Definition at line 156 of file x3d_ifaceset.cpp.

157 {
158  if( aParent == m_Parent )
159  return true;
160 
161  if( nullptr != aParent )
162  {
163  X3DNODES nt = aParent->GetNodeType();
164 
165  if( nt != X3D_SHAPE )
166  return false;
167  }
168 
169  if( nullptr != m_Parent && doUnlink )
170  m_Parent->unlinkChildNode( this );
171 
172  m_Parent = aParent;
173 
174  if( nullptr != m_Parent )
175  m_Parent->AddChildNode( this );
176 
177  return true;
178 }
virtual bool AddChildNode(X3DNODE *aNode)=0
X3DNODES GetNodeType(void) const
Return the type of this node instance.
Definition: x3d_base.cpp:184
virtual void unlinkChildNode(const X3DNODE *aNode)
Remove references to an owned child; it is invoked by the child upon destruction to ensure that the p...
Definition: x3d_base.cpp:102
X3DNODE * m_Parent
Definition: x3d_base.h:159
X3DNODES
Definition: x3d_base.h:59

References X3DNODE::AddChildNode(), X3DNODE::GetNodeType(), X3DNODE::m_Parent, X3DNODE::unlinkChildNode(), and X3D_SHAPE.

Referenced by Read().

◆ TranslateToSG()

SGNODE * X3DIFACESET::TranslateToSG ( SGNODE aParent)
overridevirtual

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.

Implements X3DNODE.

Definition at line 226 of file x3d_ifaceset.cpp.

227 {
228  S3D::SGTYPES ptype = S3D::GetSGNodeType( aParent );
229 
230  wxCHECK_MSG( aParent && ( ptype == S3D::SGTYPE_SHAPE ), nullptr,
231  wxString::Format( wxT( "IndexedFaceSet does not have a valid Shape parent "
232  "(parent ID: %d)" ),
233  ptype ) );
234 
235  wxLogTrace( traceVrmlPlugin,
236  wxT( " * [INFO] Translating IndexedFaceSet with %zu children, %zu references, "
237  "%zu back pointers, and %zu coordinate indices." ),
238  m_Children.size(), m_Refs.size(), m_BackPointers.size(), coordIndex.size() );
239 
240  if( m_sgNode )
241  {
242  if( nullptr != aParent )
243  {
244  if( nullptr == S3D::GetSGNodeParent( m_sgNode )
245  && !S3D::AddSGNodeChild( aParent, m_sgNode ) )
246  {
247  return nullptr;
248  }
249  else if( aParent != S3D::GetSGNodeParent( m_sgNode )
250  && !S3D::AddSGNodeRef( aParent, m_sgNode ) )
251  {
252  return nullptr;
253  }
254  }
255 
256  return m_sgNode;
257  }
258 
259  size_t vsize = coordIndex.size();
260 
261  if( nullptr == coord || vsize < 3 )
262  return nullptr;
263 
264  WRLVEC3F* pcoords;
265  size_t coordsize;
266  ((X3DCOORDS*) coord)->GetCoords( pcoords, coordsize );
267 
268  if( coordsize < 3 )
269  return nullptr;
270 
271  // check that all indices are valid
272  for( size_t idx = 0; idx < vsize; ++idx )
273  {
274  if( coordIndex[idx] < 0 )
275  continue;
276 
277  if( coordIndex[idx] >= (int)coordsize )
278  return nullptr;
279  }
280 
281  SHAPE lShape;
282  FACET* fp = nullptr;
283  size_t iCoord;
284  int idx; // coordinate index
285 
286  // no per-vertex colors; we can save a few CPU cycles
287  for( iCoord = 0; iCoord < vsize; ++iCoord )
288  {
289  idx = coordIndex[iCoord];
290 
291  if( idx < 0 )
292  {
293  if( nullptr != fp )
294  {
295  if( fp->HasMinPoints() )
296  fp = nullptr;
297  else
298  fp->Init();
299  }
300 
301  continue;
302  }
303 
304  // if the coordinate is bad then skip it
305  if( idx >= (int)coordsize )
306  continue;
307 
308  if( nullptr == fp )
309  fp = lShape.NewFacet();
310 
311  // push the vertex value and index
312  fp->AddVertex( pcoords[idx], idx );
313  }
314 
315  SGNODE* np = nullptr;
316 
317  if( ccw )
318  np = lShape.CalcShape( aParent, nullptr, WRL1_ORDER::ORD_CCW, creaseLimit, true );
319  else
320  np = lShape.CalcShape( aParent, nullptr, WRL1_ORDER::ORD_CLOCKWISE, creaseLimit, true );
321 
322  return np;
323 }
float creaseLimit
Definition: x3d_ifaceset.h:57
SGNODE * CalcShape(SGNODE *aParent, SGNODE *aColor, WRL1_ORDER aVertexOrder, float aCreaseLimit=0.74317, bool isVRML2=false)
Definition: wrlfacet.cpp:703
X3DNODE * coord
Definition: x3d_ifaceset.h:53
glm::vec3 WRLVEC3F
Definition: wrltypes.h:188
std::list< X3DNODE * > m_BackPointers
Definition: x3d_base.h:163
void AddVertex(WRLVEC3F &aVertex, int aIndex)
Add the vertex and its associated index to the internal list of polygon vertices.
Definition: wrlfacet.cpp:191
void Init()
Definition: wrlfacet.cpp:158
SGLIB_API SGNODE * GetSGNodeParent(SGNODE *aNode)
Definition: ifsg_api.cpp:492
The base class of all Scene Graph nodes.
Definition: sg_node.h:74
SGLIB_API bool AddSGNodeRef(SGNODE *aParent, SGNODE *aChild)
Definition: ifsg_api.cpp:501
std::list< X3DNODE * > m_Children
Definition: x3d_base.h:164
SGLIB_API bool AddSGNodeChild(SGNODE *aParent, SGNODE *aChild)
Definition: ifsg_api.cpp:510
An abstract shape on 2D plane.
Definition: shape.h:116
const wxChar *const traceVrmlPlugin
Flag to enable VRML plugin trace output.
Definition: vrml.cpp:63
std::vector< int > coordIndex
Definition: x3d_ifaceset.h:58
SGTYPES
Definition: sg_types.h:34
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200
SGNODE * m_sgNode
Definition: x3d_base.h:169
SGLIB_API S3D::SGTYPES GetSGNodeType(SGNODE *aNode)
Definition: ifsg_api.cpp:483
FACET * NewFacet()
Definition: wrlfacet.cpp:695
Definition: wrlfacet.h:42
bool HasMinPoints()
Definition: wrlfacet.cpp:173
std::list< X3DNODE * > m_Refs
Definition: x3d_base.h:165

References S3D::AddSGNodeChild(), S3D::AddSGNodeRef(), FACET::AddVertex(), SHAPE::CalcShape(), ccw, coord, coordIndex, creaseLimit, Format(), S3D::GetSGNodeParent(), S3D::GetSGNodeType(), FACET::HasMinPoints(), FACET::Init(), X3DNODE::m_BackPointers, X3DNODE::m_Children, X3DNODE::m_Refs, X3DNODE::m_sgNode, SHAPE::NewFacet(), ORD_CCW, ORD_CLOCKWISE, S3D::SGTYPE_SHAPE, and traceVrmlPlugin.

◆ unlinkChildNode()

void X3DNODE::unlinkChildNode ( const X3DNODE aNode)
virtualinherited

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.

103 {
104  std::list< X3DNODE* >::iterator sL = m_Children.begin();
105  std::list< X3DNODE* >::iterator eL = m_Children.end();
106 
107  while( sL != eL )
108  {
109  if( *sL == aNode )
110  {
111  m_Children.erase( sL );
112  return;
113  }
114 
115  ++sL;
116  }
117 
118  return;
119 }
std::list< X3DNODE * > m_Children
Definition: x3d_base.h:164

References X3DNODE::m_Children.

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

◆ unlinkRefNode()

void X3DNODE::unlinkRefNode ( const X3DNODE aNode)
virtualinherited

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.

123 {
124  std::list< X3DNODE* >::iterator sL = m_Refs.begin();
125  std::list< X3DNODE* >::iterator eL = m_Refs.end();
126 
127  while( sL != eL )
128  {
129  if( *sL == aNode )
130  {
131  m_Refs.erase( sL );
132  return;
133  }
134 
135  ++sL;
136  }
137 
138  return;
139 }
std::list< X3DNODE * > m_Refs
Definition: x3d_base.h:165

References X3DNODE::m_Refs.

Referenced by X3DSHAPE::unlinkRefNode().

Member Data Documentation

◆ ccw

bool X3DIFACESET::ccw
private

Definition at line 55 of file x3d_ifaceset.h.

Referenced by init(), readFields(), and TranslateToSG().

◆ coord

X3DNODE* X3DIFACESET::coord
private

Definition at line 53 of file x3d_ifaceset.h.

Referenced by AddChildNode(), AddRefNode(), init(), TranslateToSG(), and X3DIFACESET().

◆ coordIndex

std::vector< int > X3DIFACESET::coordIndex
private

Definition at line 58 of file x3d_ifaceset.h.

Referenced by readFields(), and TranslateToSG().

◆ creaseAngle

float X3DIFACESET::creaseAngle
private

Definition at line 56 of file x3d_ifaceset.h.

Referenced by init(), and readFields().

◆ creaseLimit

float X3DIFACESET::creaseLimit
private

Definition at line 57 of file x3d_ifaceset.h.

Referenced by init(), readFields(), and TranslateToSG().

◆ m_BackPointers

◆ m_Children

◆ m_Dict

◆ m_error

std::string X3DNODE::m_error
protectedinherited

Definition at line 166 of file x3d_base.h.

Referenced by X3DNODE::GetError().

◆ m_Name

wxString X3DNODE::m_Name
protectedinherited

◆ m_Parent

◆ m_Refs

◆ m_sgNode

SGNODE* X3DNODE::m_sgNode
protectedinherited

◆ m_Type


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