//--------------------------------------------------------------------- void SceneResource::processSceneNodeContent(const Util::XmlNode * snNode, SceneNodePtr & sceneNode, bool isChild) const { WHISPERWIND_ASSERT(snNode); /// node property { Util::String posStr(mXmlReader->getAttribute(snNode, "position")); XMVECTOR posVec = Util::StringToVector(posStr, 3); Util::String orientStr(mXmlReader->getAttribute(snNode, "orientation")); XMVECTOR orientVec = Util::StringToVector(orientStr, 4); if (!isChild) { sceneNode->setPosition(posVec); sceneNode->setOrientation(orientVec); } else { sceneNode->setRelativePosition(posVec); sceneNode->setRelativeOrientation(orientVec); } } const Util::XmlNode * snChildNode = mXmlReader->getFirstNode(snNode, "child_node"); while (snChildNode) { processChildSceneNode(snChildNode, sceneNode); snChildNode = mXmlReader->getNextSiblingNode(snChildNode); } const Util::XmlNode * soNode = mXmlReader->getFirstNode(snNode, "object"); while (soNode) { processSceneObject(soNode, sceneNode); soNode = mXmlReader->getNextSiblingNode(soNode); } const Util::XmlNode * lightNode = mXmlReader->getFirstNode(snNode, "light"); while (lightNode) { processLight(lightNode, sceneNode); lightNode = mXmlReader->getNextSiblingNode(lightNode); } const Util::XmlNode * trackNode = mXmlReader->getFirstNode(snNode, "node_track"); while (trackNode) { processNodeTrack(trackNode, sceneNode); trackNode = mXmlReader->getNextSiblingNode(trackNode); } }
void defiSite::print(FILE* f) const { fprintf(f, "Site '%p' %s\n", name(), orientStr()); fprintf(f, " DO X %g %g BY %g\n", x_orig(), x_num(), x_step()); fprintf(f, " DO Y %g %g BY %g\n", y_orig(), y_num(), y_step()); }