예제 #1
0
        void IMyClipmapCell.UpdateMesh(MyRenderMessageUpdateClipmapCell msg)
        {
            MyMeshes.UpdateVoxelCell(Mesh, msg.Batches);

            m_scale       = msg.PositionScale;
            m_translation = msg.PositionOffset;

            var matrix = (Matrix)(Matrix.CreateScale(m_scale) * Matrix.CreateTranslation(m_translation) * m_worldMatrix);

            m_actor.SetMatrix(ref matrix);
            m_actor.GetRenderable().SetVoxelLod(m_lod);

            m_actor.SetAabb(msg.MeshAabb.Transform((Matrix)m_worldMatrix));

            (m_actor.GetComponent(MyActorComponentEnum.Foliage) as MyFoliageComponent).InvalidateStreams();
            m_actor.MarkRenderDirty();
        }
예제 #2
0
파일: MyActor.cs 프로젝트: viktorius/Viktor
 public static MyInstanceLodComponent GetInstanceLod(this MyActor actor)
 {
     return(actor.GetComponent <MyInstanceLodComponent>());
 }
예제 #3
0
파일: MyActor.cs 프로젝트: viktorius/Viktor
 public static MyGroupLeafComponent GetGroupLeaf(this MyActor actor)
 {
     return(actor.GetComponent <MyGroupLeafComponent>());
 }
예제 #4
0
파일: MyActor.cs 프로젝트: viktorius/Viktor
 public static MySkinningComponent GetSkinning(this MyActor actor)
 {
     return(actor.GetComponent <MySkinningComponent>());
 }
예제 #5
0
파일: MyActor.cs 프로젝트: viktorius/Viktor
 public static MyFoliageComponent GetFoliage(this MyActor actor)
 {
     return(actor.GetComponent <MyFoliageComponent>());
 }
예제 #6
0
파일: MyActor.cs 프로젝트: viktorius/Viktor
 public static MyRenderableComponent GetRenderable(this MyActor actor)
 {
     return(actor.GetComponent <MyRenderableComponent>());
 }