Magic3D::XMLElement* Magic3D::Object::save(XMLElement* root) { if (root) { saveString(root, M3D_OBJECT_XML_NAME, getName()); saveString(root, M3D_OBJECT_XML_SCRIPT, getScript()); saveString(root, M3D_OBJECT_XML_PARENT, getParent() ? getParent()->getName().c_str() : M3D_XML_NULL); saveString(root, M3D_OBJECT_XML_PARENT_BONE, getParentBone() ? getParentBone()->getName().c_str() : M3D_XML_NULL); saveBool(root, M3D_OBJECT_XML_PARENT_POSITION, isParentPosition()); saveBool(root, M3D_OBJECT_XML_PARENT_ROTATION, isParentRotation()); saveBool(root, M3D_OBJECT_XML_PARENT_SCALE, isParentScale()); saveInt(root, M3D_OBJECT_XML_RENDER, getRender()); saveInt(root, M3D_OBJECT_XML_TYPE, getType()); saveInt(root, M3D_OBJECT_XML_FLAG, getFlag()); saveInt(root, M3D_OBJECT_XML_BILLBOARD, getBillboard()); saveBool(root, M3D_OBJECT_XML_ENABLED, isEnabled()); saveBool(root, M3D_OBJECT_XML_VISIBLE, isVisible()); saveBool(root, M3D_OBJECT_XML_ZORDER, isZOrder()); saveBool(root, M3D_OBJECT_XML_PICK, isPickable()); saveVector3(root, M3D_OBJECT_XML_POSITION, getPosition()); saveVector4(root, M3D_OBJECT_XML_ROTATION, Vector4(getRotation())); saveVector3(root, M3D_OBJECT_XML_SCALE, getScale()); saveBool(root, M3D_OBJECT_XML_SCRIPTED, isScripted()); std::vector<Mesh*>::const_iterator it_m = meshes.begin(); while (it_m != meshes.end()) { Mesh* mesh = *it_m++; XMLElement* meshtXML = root->GetDocument()->NewElement( M3D_MESH_XML ); meshtXML->SetAttribute("materials", (int)mesh->getMaterials()->size()); root->LinkEndChild( meshtXML ); mesh->save(meshtXML); } PhysicsObject::save(root); } return root; }
std::vector<lo_message> ShapeNode::getState () const { // inherit state from base class std::vector<lo_message> ret = GroupNode::getState(); lo_message msg; osg::Vec3 v; osg::Vec4 v4; //std::cout << "in getState. shape=" << shape << ", textureName=" << textureName << std::endl; msg = lo_message_new(); lo_message_add(msg, "si", "setBillboard", getBillboard()); ret.push_back(msg); msg = lo_message_new(); v4 = this->getColor(); lo_message_add(msg, "sffff", "setColor", v4.x(), v4.y(), v4.z(), v4.w()); ret.push_back(msg); msg = lo_message_new(); lo_message_add(msg, "ss", "setTextureFromFile", texturePath.c_str()); ret.push_back(msg); msg = lo_message_new(); lo_message_add(msg, "ss", "setStateSet", getStateSet()); ret.push_back(msg); msg = lo_message_new(); lo_message_add(msg, "si", "setRenderBin", getRenderBin()); ret.push_back(msg); msg = lo_message_new(); lo_message_add(msg, "si", "setLighting", getLighting()); ret.push_back(msg); // put this one last: msg = lo_message_new(); lo_message_add(msg, "si", "setShape", getShape()); ret.push_back(msg); return ret; }