Exemplo n.º 1
0
        /// <summary>
        /// Create the product of this SceneNode.
        /// </summary>
        /// <param name="instance">The instance to get the product.</param>
        /// <param name="scene">The scene to create the product into.</param>
        internal void createProduct(SimObjectBase instance, OgreSceneManager scene)
        {
            SceneNode node = scene.SceneManager.createSceneNode(instance.Name + Name);

            node.setPosition(instance.Translation);
            node.setOrientation(instance.Rotation);
            SceneNodeElement element = new SceneNodeElement(Name, scene, node, scene.SceneManager.getRootSceneNode());

            instance.addElement(element);
            foreach (MovableObjectDefinition movable in movableObjects.Values)
            {
                element.attachObject(movable);
            }
            foreach (SceneNodeDefinition child in childNodes.Values)
            {
                child.createAsChild(instance, scene, element);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Function used to create all child scene nodes. This will construct
        /// the SceneNode a bit differently and add it as a child of element
        /// instead of the root node.
        /// </summary>
        /// <param name="instance">The instance to get the product.</param>
        /// <param name="scene">The scene to create the product into.</param>
        /// <param name="parentElement">The element of the parent node.</param>
        private void createAsChild(SimObjectBase instance, OgreSceneManager scene, SceneNodeElement parentElement)
        {
            SceneNode node = scene.SceneManager.createSceneNode(instance.Name + Name);

            node.setPosition(LocalTranslation);
            node.setOrientation(LocalRotation);
            SceneNodeElement element = new SceneNodeElement(Name, scene, node, parentElement.SceneNode);

            instance.addWeakElement(element);
            foreach (MovableObjectDefinition movable in movableObjects.Values)
            {
                element.attachObject(movable);
            }
            foreach (SceneNodeDefinition child in childNodes.Values)
            {
                child.createAsChild(instance, scene, element);
            }
            parentElement.addChild(element);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Remove a child SceneNodeElement.
 /// </summary>
 /// <param name="element">The SceneNodeElement to remove.</param>
 internal void removeChild(SceneNodeElement element)
 {
     children.Remove(element);
 }
Exemplo n.º 4
0
 /// <summary>
 /// Add a child SceneNodeElement.
 /// </summary>
 /// <param name="element">The SceneNodeElement to add as a child.</param>
 internal void addChild(SceneNodeElement element)
 {
     children.Add(element);
 }