54 wxT(
" * [INFO] Destroying IndexedLineSet node with %zu children, %zu"
55 "references, and %zu back pointers." ),
102 wxCHECK_MSG( aNode,
false, wxT(
"Invalid node." ) );
110 " * [INFO] bad file format; unexpected child node '%s'." ),
118 if(
nullptr !=
color )
122 " * [INFO] bad file format; multiple color nodes." ),
123 __FILE__, __FUNCTION__, __LINE__ );
134 if(
nullptr !=
coord )
138 " * [INFO] bad file format; multiple coord nodes." ),
139 __FILE__, __FUNCTION__, __LINE__ );
154 wxCHECK_MSG( aNode,
false, wxT(
"Invalid node." ) );
162 " * [INFO] bad file format; unexpected child node '%s'." ),
170 if(
nullptr !=
color )
174 " * [INFO] bad file format; multiple color nodes." ),
175 __FILE__, __FUNCTION__, __LINE__ );
186 if(
nullptr !=
coord )
190 " * [INFO] bad file format; multiple coord nodes." ),
191 __FILE__, __FUNCTION__, __LINE__ );
207 char tok = proc.
Peek();
212 " * [INFO] bad file format; unexpected eof %s." ),
222 " * [INFO] bad file format; expecting '{' but got '%s' %s." ),
233 if( proc.
Peek() ==
'}' )
243 __FILE__, __FUNCTION__, __LINE__ , proc.
GetError() );
258 if( !glob.compare(
"colorPerVertex" ) )
263 " * [INFO] invalid colorPerVertex %s\n"
264 " * [INFO] file: '%s'\n"
272 else if( !glob.compare(
"colorIndex" ) )
277 " * [INFO] invalid colorIndex %s\n"
278 " * [INFO] file: '%s'\n"
286 else if( !glob.compare(
"coordIndex" ) )
291 " * [INFO] invalid coordIndex %s\n"
292 " * [INFO] file: '%s'\n"
300 else if( !glob.compare(
"color" ) )
302 if( !aTopNode->
ReadNode( proc,
this,
nullptr ) )
306 " * [INFO] could not read color node information." ),
307 __FILE__, __FUNCTION__, __LINE__ );
312 else if( !glob.compare(
"coord" ) )
314 if( !aTopNode->
ReadNode( proc,
this,
nullptr ) )
318 " * [INFO] could not read coord node information." ),
319 __FILE__, __FUNCTION__, __LINE__ );
328 " * [INFO] invalid IndexedFaceSet %s\n"
329 " * [INFO] file: '%s'\n" ),
350 if(
nullptr == aNode )
357 else if( aNode ==
coord )
367 if(
nullptr == aNode )
374 else if( aNode ==
coord )
384 if(
nullptr ==
color )
The base class of all Scene Graph nodes.
The top node of a VRML2 model.
bool ReadNode(WRLPROC &proc, WRL2NODE *aParent, WRL2NODE **aNode)
bool Read(WRLPROC &proc, WRL2BASE *aTopNode) override
SGNODE * TranslateToSG(SGNODE *aParent) override
Produce a representation of the data using the intermediate scenegraph structures of the kicad_3dsg l...
bool isDangling(void) override
Determine whether an object should be moved to a different parent during the VRML to SG* translation.
std::vector< int > coordIndex
void unlinkRefNode(const WRL2NODE *aNode) override
Remove pointers to a referenced node.
std::vector< int > colorIndex
bool AddChildNode(WRL2NODE *aNode) override
void unlinkChildNode(const WRL2NODE *aNode) override
Remove references to an owned child.
bool AddRefNode(WRL2NODE *aNode) override
bool checkNodeType(WRL2NODES aType)
std::list< WRL2NODE * > m_BackPointers
WRL2NODE * GetParent(void) const
virtual void unlinkChildNode(const WRL2NODE *aNode)
Remove references to an owned child.
std::list< WRL2NODE * > m_Children
virtual bool AddRefNode(WRL2NODE *aNode)
virtual void unlinkRefNode(const WRL2NODE *aNode)
Remove pointers to a referenced node.
const char * GetNodeTypeName(WRL2NODES aNodeType) const
WRL2NODES GetNodeType(void) const
std::list< WRL2NODE * > m_Refs
virtual bool AddChildNode(WRL2NODE *aNode)
std::string GetFileName(void)
bool ReadMFInt(std::vector< int > &aMFInt32)
std::string GetError(void)
bool ReadSFBool(bool &aSFBool)
bool ReadName(std::string &aName)
std::string GetFilePosition() const
const wxChar *const traceVrmlPlugin
Flag to enable VRML plugin trace output.
collects header files for all SG* wrappers and the API