private static void getObjectTransformation_(XPathNodeIterator Nodes, Object3d obj) { Nodes.Current.MoveToFollowing(XPathNodeType.Element);//Move to first position //System.Windows.Forms.MessageBox.Show("XMLObject3D.getObjectTransformation.current: " + Nodes.Current.Name); float posx = (float)Convert.ToDouble(Nodes.Current.GetAttribute("x", "")) * XMLStep.translateFactor; //System.Windows.Forms.MessageBox.Show("XMLObject3D.getObjectTransformation.current.getattrib: " + Nodes.Current.GetAttribute("x", "")+" "+posx); float posz = (float)Convert.ToDouble(Nodes.Current.GetAttribute("y", "")) * XMLStep.translateFactor; float posy = (float)Convert.ToDouble(Nodes.Current.GetAttribute("z", "")) * XMLStep.translateFactor * XMLStep.zFactor; //System.Windows.Forms.MessageBox.Show("XMLObject3D.getObjectTransformation.posx: " + posx); obj.setPosition(new Microsoft.DirectX.Vector3(posx, posy, posz)); Nodes.Current.MoveToFollowing(XPathNodeType.Element);//Move to first rotation //System.Windows.Forms.MessageBox.Show("XMLObject3D.getObjectTransformation.current: " + Nodes.Current.Name); float rotx = (float)Convert.ToDouble(Nodes.Current.GetAttribute("x", "")) * (-1); float rotz = (float)Convert.ToDouble(Nodes.Current.GetAttribute("y", "")) * (-1); float roty = (float)Convert.ToDouble(Nodes.Current.GetAttribute("z", "")); System.Windows.Forms.MessageBox.Show("Befor: Y: " + roty + " Z: " + rotz); float angle = (float)Convert.ToDouble(Nodes.Current.GetAttribute("angle", "")); obj.setRotation(new Microsoft.DirectX.Vector3(Helper.DegreesToRadians(rotx * angle), Helper.DegreesToRadians(roty * angle), Helper.DegreesToRadians(rotz * angle))); Nodes.Current.MoveToFollowing(XPathNodeType.Element);//Move to first scale //System.Windows.Forms.MessageBox.Show("XMLObject3D.getObjectTransformation.current: " + Nodes.Current.Name); float sclx = (float)Convert.ToDouble(Nodes.Current.GetAttribute("x", "")) / XMLStep.scaleFactor; float scly = (float)Convert.ToDouble(Nodes.Current.GetAttribute("y", "")) / XMLStep.scaleFactor; float sclz = (float)Convert.ToDouble(Nodes.Current.GetAttribute("z", "")) / XMLStep.scaleFactor; obj.setScale(new Microsoft.DirectX.Vector3(sclx, scly, sclz)); //Move back to the parent so the invoker of this methode can continue from where it started. Nodes.Current.MoveToParent(); }