38 m_Type = WRL2NODES::WRL2_MATERIAL;
45 m_Type = WRL2NODES::WRL2_MATERIAL;
55 wxLogTrace(
traceVrmlPlugin, wxT(
" * [INFO] Destroying Material node." ) );
92 wxCHECK_MSG(
false,
false, wxT(
"AddRefNode is not applicable." ) );
99 wxCHECK_MSG(
false,
false, wxT(
"AddChildNode is not applicable." ) );
105 wxCHECK_MSG( aTopNode,
false, wxT(
"Invalid top node." ) );
107 char tok = proc.
Peek();
112 " * [INFO] bad file format; unexpected eof %s." ),
122 " * [INFO] bad file format; expecting '{' but got '%s' %s." ),
133 if( proc.
Peek() ==
'}' )
143 __FILE__, __FUNCTION__, __LINE__ , proc.
GetError() );
156 if( !glob.compare(
"specularColor" ) )
161 " * [INFO] invalid specularColor set %s\n"
162 " * [INFO] file: '%s'\n"
170 else if( !glob.compare(
"diffuseColor" ) )
175 " * [INFO] invalid diffuseColor set %s\n"
176 " * [INFO] file: '%s'\n"
184 else if( !glob.compare(
"emissiveColor" ) )
189 " * [INFO] invalid emissiveColor set %s\n"
190 " * [INFO] file: '%s'\n"
198 else if( !glob.compare(
"shininess" ) )
203 " * [INFO] invalid shininess set %s\n"
204 " * [INFO] file: '%s'\n"
212 else if( !glob.compare(
"transparency" ) )
217 " * [INFO] invalid transparency set %s\n"
218 " * [INFO] file: '%s'\n"
226 else if( !glob.compare(
"ambientIntensity" ) )
231 " * [INFO] invalid ambientIntensity set %s\n"
232 " * [INFO] file: '%s'\n"
243 " * [INFO] invalid Material %s.\n"
244 " * [INFO] file: '%s'\n" ),
261 wxString::Format( wxT(
"IndexedFaceSet does not have a Shape parent (parent "
262 "ID: %d)." ), ptype ) );
265 wxT(
" * [INFO] Translating IndexedFaceSet with %zu children, %zu references, and"
266 "%zu back pointers." ),
271 if(
nullptr != aParent )
bool SetDiffuse(float aRVal, float aGVal, float aBVal)
bool SetEmissive(float aRVal, float aGVal, float aBVal)
bool SetSpecular(float aRVal, float aGVal, float aBVal)
bool SetShininess(float aShininess) noexcept
bool SetAmbient(float aRVal, float aGVal, float aBVal)
bool SetTransparency(float aTransparency) noexcept
SGNODE * GetRawPtr(void) noexcept
Function GetRawPtr() returns the raw internal SGNODE pointer.
The base class of all Scene Graph nodes.
The top node of a VRML2 model.
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.
bool AddRefNode(WRL2NODE *aNode) override
bool Read(WRLPROC &proc, WRL2BASE *aTopNode) override
bool AddChildNode(WRL2NODE *aNode) override
std::list< WRL2NODE * > m_BackPointers
std::list< WRL2NODE * > m_Children
WRL2NODES GetNodeType(void) const
std::list< WRL2NODE * > m_Refs
virtual bool AddChildNode(WRL2NODE *aNode)
bool ReadSFFloat(float &aSFFloat)
std::string GetFileName(void)
std::string GetError(void)
bool ReadName(std::string &aName)
std::string GetFilePosition() const
bool ReadSFVec3f(WRLVEC3F &aSFVec3f)
const wxChar *const traceVrmlPlugin
Flag to enable VRML plugin trace output.
collects header files for all SG* wrappers and the API
SGLIB_API S3D::SGTYPES GetSGNodeType(SGNODE *aNode)
SGLIB_API SGNODE * GetSGNodeParent(SGNODE *aNode)
SGLIB_API bool AddSGNodeChild(SGNODE *aParent, SGNODE *aChild)
SGLIB_API bool AddSGNodeRef(SGNODE *aParent, SGNODE *aChild)