Esempio n. 1
0
        public void AddRenderObject(MyRenderObject renderObject, MatrixD?childToParent = null)
        {
            MyRenderEntity renderEntity = renderObject as MyRenderEntity;
            MatrixD        childMatrix;

            if (childToParent != null)
            {
                childMatrix = childToParent.Value;
            }
            else
            {
                childMatrix = renderEntity.WorldMatrix * m_invWorldMatrix;
            }

            renderEntity.WorldMatrix      = childMatrix;
            renderObject.ParentCullObject = this;

            var box = renderObject.WorldAABB;

            renderObject.ProxyData = CulledObjects.AddProxy(ref box, renderObject, 0);

            EntitiesContained++;

            SetDirty();
        }
Esempio n. 2
0
        public void MoveRenderObject(MyRenderObject renderObject)
        {
            MyRenderEntity renderEntity = renderObject as MyRenderEntity;

            BoundingBoxD aabb = renderEntity.WorldAABB;

            CulledObjects.MoveProxy(renderObject.ProxyData, ref aabb, Vector3D.Zero);

            SetDirty();
        }
Esempio n. 3
0
        public void RemoveRenderObject(MyRenderObject renderObject)
        {
            MyRenderEntity renderEntity = renderObject as MyRenderEntity;

            CulledObjects.RemoveProxy(renderObject.ProxyData);
            renderObject.ParentCullObject = null;
            renderEntity.WorldMatrix      = renderEntity.WorldMatrix * WorldMatrix;
            renderObject.ProxyData        = MyElement.PROXY_UNASSIGNED;

            EntitiesContained--;

            SetDirty();
        }
Esempio n. 4
0
        public override void UpdateWorldAABB()
        {
            CulledObjects.GetAll(m_list, true);

            m_localAABB = BoundingBoxD.CreateInvalid();


            foreach (var element in m_list)
            {
                m_localAABB = m_localAABB.Include(element.WorldAABB);
            }

            m_aabb = m_localAABB.Transform(ref m_worldMatrix);

            base.UpdateWorldAABB();
        }