@Override public Element persist(Document doc, Element widgetNode, Widget widget) { CylinderWidget cylinder = (CylinderWidget) widget; RigidBody cylinderBody = cylinder.getRigidBody(); widgetNode.appendChild( persistParam( doc, "location", v3fToString(cylinderBody.getCenterOfMassPosition(new Vector3f())))); widgetNode.appendChild( persistParam( doc, "orientation", v3fToString( RenderableBase.toAngles( cylinderBody.getWorldTransform(new Transform()).getRotation(new Quat4f()))))); widgetNode.appendChild( persistParam( doc, "linearVeloctiy", v3fToString(cylinderBody.getLinearVelocity(new Vector3f())))); widgetNode.appendChild( persistParam( doc, "angularVelocity", v3fToString(cylinderBody.getAngularVelocity(new Vector3f())))); widgetNode.appendChild(persistParam(doc, "radius", "" + cylinder.getRadius())); widgetNode.appendChild(persistParam(doc, "height", "" + cylinder.getHeight())); widgetNode.appendChild(persistParam(doc, "mass", "" + (1f / cylinderBody.getInvMass()))); widgetNode.appendChild(persistParam(doc, "restitution", "" + cylinderBody.getRestitution())); widgetNode.appendChild(persistParam(doc, "friction", "" + cylinderBody.getFriction())); return widgetNode; }