///-------------------------------------------------------------------------------------------------
        /// <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);
			}
		}