public static UnifiedObject InstantiateObject(Node parent, UnifiedObject templateObject, Vector3 position, Transform baseTransformation, Transform auxTransformation, bool accurateObjectDisposal, double startingDistance, double endingDistance, double blockLength, double trackPosition) { StaticObject instantiatedObject = (StaticObject)templateObject.Clone(); MeshInstance instantiatedMesh = instantiatedObject.ObjectMeshInstance; Transform finalTrans = baseTransformation * auxTransformation; instantiatedMesh.GlobalTransform = new Transform(finalTrans.basis, Vector3.Zero); parent.AddChild(instantiatedMesh); instantiatedMesh.GlobalTranslate(position); return(instantiatedObject); // UnifiedObject retObject = null; // if (templateObject is StaticObject) // { // retObject = new StaticObject(); // retObject.gameObject = instantiatedMesh; // } // else if (templateObject is AnimatedObjectCollection) // { // } // return retObject; }