AddChild() public method

public AddChild ( Node _Child ) : void
_Child Node
return void
Esempio n. 1
0
        /// <summary>
        /// Creates a scene node from a stream
        /// </summary>
        /// <param name="_Owner"></param>
        /// <param name="_Parent"></param>
        /// <param name="_Reader"></param>
        internal Node( Scene _Owner, Node _Parent, System.IO.BinaryReader _Reader )
        {
            m_Owner = _Owner;

            //			m_NodeType = _Reader.ReadInt32();	// Don't read back the node type as it has already been consumed by the parent
            m_ID = _Reader.ReadInt32();
            m_Owner.RegisterNodeID( this );
            m_Name = _Reader.ReadString();

            m_Parent = _Parent;
            if ( _Parent != null )
                m_Parent.AddChild( this );

            // Read the matrix
            m_Local2Parent.m[0,0] = _Reader.ReadSingle();
            m_Local2Parent.m[0,1] = _Reader.ReadSingle();
            m_Local2Parent.m[0,2] = _Reader.ReadSingle();
            m_Local2Parent.m[0,3] = _Reader.ReadSingle();
            m_Local2Parent.m[1,0] = _Reader.ReadSingle();
            m_Local2Parent.m[1,1] = _Reader.ReadSingle();
            m_Local2Parent.m[1,2] = _Reader.ReadSingle();
            m_Local2Parent.m[1,3] = _Reader.ReadSingle();
            m_Local2Parent.m[2,0] = _Reader.ReadSingle();
            m_Local2Parent.m[2,1] = _Reader.ReadSingle();
            m_Local2Parent.m[2,2] = _Reader.ReadSingle();
            m_Local2Parent.m[2,3] = _Reader.ReadSingle();
            m_Local2Parent.m[3,0] = _Reader.ReadSingle();
            m_Local2Parent.m[3,1] = _Reader.ReadSingle();
            m_Local2Parent.m[3,2] = _Reader.ReadSingle();
            m_Local2Parent.m[3,3] = _Reader.ReadSingle();

            // Read specific data
            LoadSpecific( _Reader );

            // Read children
            int	ChildrenCount = _Reader.ReadInt32();
            for ( int ChildIndex=0; ChildIndex < ChildrenCount; ChildIndex++ )
            {
                NODE_TYPE	ChildType = (NODE_TYPE) _Reader.ReadByte();
                switch ( ChildType )
                {
                case NODE_TYPE.NODE:
                    new Node( _Owner, this, _Reader );
                    break;

                case NODE_TYPE.MESH:
                    new Mesh( _Owner, this, _Reader );
                    break;

                case NODE_TYPE.LIGHT:
                    new Light( _Owner, this, _Reader );
                    break;

                case NODE_TYPE.CAMERA:
                    new Camera( _Owner, this, _Reader );
                    break;
                }
            }
        }
Esempio n. 2
0
        protected Matrix4x4 m_PreviousLocal2World = Matrix4x4.Identity; // The object transform matrix from the previous frame

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Creates a new scene node
        /// </summary>
        /// <param name="_Owner"></param>
        /// <param name="_ID"></param>
        /// <param name="_Name"></param>
        /// <param name="_Parent"></param>
        /// <param name="_Local2Parent"></param>
        internal Node( Scene _Owner, int _ID, string _Name, Node _Parent, Matrix4x4 _Local2Parent )
        {
            m_Owner = _Owner;
            m_ID = _ID;
            m_Name = _Name;
            m_Parent = _Parent;
            m_Local2Parent = _Local2Parent;

            // Append the node to its parent
            if ( _Parent != null )
                _Parent.AddChild( this );
        }
Esempio n. 3
0
        /// <summary>
        /// Creates a new scene node
        /// </summary>
        /// <param name="_Owner"></param>
        /// <param name="_ID"></param>
        /// <param name="_Name"></param>
        /// <param name="_Parent"></param>
        /// <param name="_Local2Parent"></param>
        internal Node(Scene _Owner, int _ID, string _Name, Node _Parent, Matrix4x4 _Local2Parent)
        {
            m_Owner        = _Owner;
            m_ID           = _ID;
            m_Name         = _Name;
            m_Parent       = _Parent;
            m_Local2Parent = _Local2Parent;

            // Append the node to its parent
            if (_Parent != null)
            {
                _Parent.AddChild(this);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Creates a scene node from a stream
        /// </summary>
        /// <param name="_Owner"></param>
        /// <param name="_Parent"></param>
        /// <param name="_Reader"></param>
        internal Node(Scene _Owner, Node _Parent, System.IO.BinaryReader _Reader)
        {
            m_Owner = _Owner;

//			m_NodeType = _Reader.ReadInt32();	// Don't read back the node type as it has already been consumed by the parent
            m_ID = _Reader.ReadInt32();
            m_Owner.RegisterNodeID(this);
            m_Name = _Reader.ReadString();

            m_Parent = _Parent;
            if (_Parent != null)
            {
                m_Parent.AddChild(this);
            }

            // Read the matrix
            m_Local2Parent.m[0, 0] = _Reader.ReadSingle();
            m_Local2Parent.m[0, 1] = _Reader.ReadSingle();
            m_Local2Parent.m[0, 2] = _Reader.ReadSingle();
            m_Local2Parent.m[0, 3] = _Reader.ReadSingle();
            m_Local2Parent.m[1, 0] = _Reader.ReadSingle();
            m_Local2Parent.m[1, 1] = _Reader.ReadSingle();
            m_Local2Parent.m[1, 2] = _Reader.ReadSingle();
            m_Local2Parent.m[1, 3] = _Reader.ReadSingle();
            m_Local2Parent.m[2, 0] = _Reader.ReadSingle();
            m_Local2Parent.m[2, 1] = _Reader.ReadSingle();
            m_Local2Parent.m[2, 2] = _Reader.ReadSingle();
            m_Local2Parent.m[2, 3] = _Reader.ReadSingle();
            m_Local2Parent.m[3, 0] = _Reader.ReadSingle();
            m_Local2Parent.m[3, 1] = _Reader.ReadSingle();
            m_Local2Parent.m[3, 2] = _Reader.ReadSingle();
            m_Local2Parent.m[3, 3] = _Reader.ReadSingle();

            // Read specific data
            LoadSpecific(_Reader);

            // Read children
            int ChildrenCount = _Reader.ReadInt32();

            for (int ChildIndex = 0; ChildIndex < ChildrenCount; ChildIndex++)
            {
                NODE_TYPE ChildType = (NODE_TYPE)_Reader.ReadByte();
                switch (ChildType)
                {
                case NODE_TYPE.NODE:
                    new Node(_Owner, this, _Reader);
                    break;

                case NODE_TYPE.MESH:
                    new Mesh(_Owner, this, _Reader);
                    break;

                case NODE_TYPE.LIGHT:
                    new Light(_Owner, this, _Reader);
                    break;

                case NODE_TYPE.CAMERA:
                    new Camera(_Owner, this, _Reader);
                    break;
                }
            }
        }