///------------------------------------------------------------------------------------------------- /// <summary> Creates the node list. </summary> ///------------------------------------------------------------------------------------------------- private void CreateNodeList() { // Get all of the object instances to include var objectInstances = mScenarioDataProvider.GetObjectInstances(); for (int i = 0; i < objectInstances.Count; i++) { var objectInstance = objectInstances[i]; // Create a node for the object instance ColladaNCName nodeName = ""; if (objectInstance.ObjectName == null) { if (!TagIndex.IsValid(objectInstance.ObjectType.ObjectTagDatum)) { throw new ColladaException("Failed to load the object type tag {0}", objectInstance.ObjectType.ObjectTagPath); } ColladaNCName objectName = Path.GetFileNameWithoutExtension(mTagIndex[objectInstance.ObjectType.ObjectTagDatum].Name); nodeName = i.ToString() + "-" + objectName; } else { nodeName = objectInstance.ObjectName.Name; } var node = CreateNode(nodeName, "", "", Enums.ColladaNodeType.NODE); // Set the nodes position var translate = new Core.ColladaTranslate(); translate.SetTranslate(objectInstance.Position, 100); node.Add(translate); // Set the nodes rotation node.AddRange( ColladaUtilities.CreateRotationSet(objectInstance.Rotation.R, objectInstance.Rotation.P, objectInstance.Rotation.Y , new LowLevel.Math.real_vector3d(1, 0, 0) , new LowLevel.Math.real_vector3d(0, -1, 0) , new LowLevel.Math.real_vector3d(0, 0, 1) , ColladaUtilities.ColladaRotationOrder.XYZ) ); var nodeIdList = GetNodeReferences(objectInstance.ObjectType, objectInstance.Permutation.ToString("D2")); if (nodeIdList.Count > 0) { node.InstanceNode = new List <ColladaInstanceNode>(); foreach (var nodeId in nodeIdList) { node.InstanceNode.Add(new ColladaInstanceNode() { URL = "#" + nodeId }); } } listNode.Add(node); } }
///------------------------------------------------------------------------------------------------- /// <summary> Creates the node list. </summary> ///------------------------------------------------------------------------------------------------- private void CreateNodeList() { // Get all of the object instances to include var objectInstances = mScenarioDataProvider.GetObjectInstances(); for (int i = 0; i < objectInstances.Count; i++) { var objectInstance = objectInstances[i]; // Create a node for the object instance ColladaNCName nodeName = ""; if (objectInstance.ObjectName == null) { if (!TagIndex.IsValid(objectInstance.ObjectType.ObjectTagDatum)) { throw new ColladaException("Failed to load the object type tag {0}", objectInstance.ObjectType.ObjectTagPath); } ColladaNCName objectName = Path.GetFileNameWithoutExtension(mTagIndex[objectInstance.ObjectType.ObjectTagDatum].Name); nodeName = i.ToString() + "-" + objectName; } else { nodeName = objectInstance.ObjectName.Name; } var node = CreateNode(nodeName, "", "", Enums.ColladaNodeType.NODE); // Set the nodes position var translate = new Core.ColladaTranslate(); translate.SetTranslate(objectInstance.Position, 100); node.Add(translate); // Set the nodes rotation node.AddRange( ColladaUtilities.CreateRotationSet(objectInstance.Rotation.R, objectInstance.Rotation.P, objectInstance.Rotation.Y , new LowLevel.Math.real_vector3d(1, 0, 0) , new LowLevel.Math.real_vector3d(0, -1, 0) , new LowLevel.Math.real_vector3d(0, 0, 1) , ColladaUtilities.ColladaRotationOrder.XYZ) ); var nodeIdList = GetNodeReferences(objectInstance.ObjectType, objectInstance.Permutation.ToString("D2")); if (nodeIdList.Count > 0) { node.InstanceNode = new List<ColladaInstanceNode>(); foreach (var nodeId in nodeIdList) { node.InstanceNode.Add(new ColladaInstanceNode() { URL = "#" + nodeId }); } } listNode.Add(node); } }