private void UpdateActorInfo(bool refreshFoliage = false) { MyVoxelRenderableComponent renderableComponent = m_actor.GetRenderable() as MyVoxelRenderableComponent; var matrix = MatrixD.CreateScale(m_scale) * MatrixD.CreateTranslation(m_translation) * m_worldMatrix; renderableComponent.m_voxelScale = m_scale; renderableComponent.m_voxelOffset = m_translation; m_actor.SetMatrix(ref matrix); m_actor.SetAabb(m_localAabb.Transform(m_worldMatrix)); renderableComponent.SetVoxelLod(m_lod, ScaleGroup); m_actor.MarkRenderDirty(); UpdateFoliage(refreshFoliage); }
internal MyClipmapCellProxy(MyCellCoord cellCoord, ref MatrixD worldMatrix, Vector3D massiveCenter, float massiveRadius, RenderFlags additionalFlags = 0) { m_worldMatrix = worldMatrix; m_actor = MyActorFactory.CreateVoxelCell(); m_actor.SetMatrix(ref worldMatrix); m_lod = cellCoord.Lod; MyVoxelRenderableComponent renderableComponent = m_actor.GetRenderable() as MyVoxelRenderableComponent; m_mesh = MyMeshes.CreateVoxelCell(cellCoord.CoordInLod, cellCoord.Lod); renderableComponent.SetVoxelLod(m_lod, ScaleGroup); renderableComponent.SetModel(m_mesh); renderableComponent.m_massiveCenter = massiveCenter; renderableComponent.m_massiveRadius = massiveRadius; renderableComponent.m_additionalFlags = MyProxiesFactory.GetRenderableProxyFlags(additionalFlags); }