public override bool DebugDraw() { if (!MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS || m_block.MountPoints == null) { return(true); } //var cube = BoundingBox.CreateInvalid(); //for (int i = 0; i < m_block.OriginalBlocks.Count; i++) //{ // var b = m_block.OriginalBlocks[i]; // Matrix m2; // m_block.Orientations[i].GetMatrix(out m2); // var size = new Vector3(MyDefinitionManager.Static.GetCubeBlockDefinition(b).Size); // var bb2 = new BoundingBox(-size / 2, size / 2); // cube = cube.Include(bb2.Transform(m2)); //} //var obb = new MyOrientedBoundingBoxD(m_block.WorldMatrix.Translation, cube.HalfExtents * m_block.CubeGrid.GridSize, Quaternion.CreateFromRotationMatrix(m_block.WorldMatrix)); //VRageRender.MyRenderProxy.DebugDrawOBB(obb, Color.Red, 0.05f, false, false); MatrixD m = m_block.CubeGrid.PositionComp.WorldMatrix; m.Translation = m_block.CubeGrid.GridIntegerToWorld(m_block.Position); MyCubeBuilder.DrawMountPoints(m_block.CubeGrid.GridSize, m_block.BlockDefinition, m, m_block.MountPoints.ToArray()); return(true); }
private void DebugDrawMountPoints(MySlimBlock block) { if (block.FatBlock is MyCompoundCubeBlock) { MyCompoundCubeBlock compoundBlock = block.FatBlock as MyCompoundCubeBlock; foreach (MySlimBlock componentBlock in compoundBlock.GetBlocks()) { DebugDrawMountPoints(componentBlock); } } else { Matrix blockMatrix; block.GetLocalMatrix(out blockMatrix); MatrixD blockWorldMatrix = blockMatrix * m_cubeGrid.WorldMatrix; if (MyFakes.ENABLE_FRACTURE_COMPONENT && block.FatBlock != null && block.FatBlock.Components.Has <MyFractureComponentBase>()) { var fractureComponent = block.GetFractureComponent(); if (fractureComponent != null) { MyCubeBuilder.DrawMountPoints(m_cubeGrid.GridSize, block.BlockDefinition, blockWorldMatrix, fractureComponent.MountPoints.GetInternalArray()); } } else { MyCubeBuilder.DrawMountPoints(m_cubeGrid.GridSize, block.BlockDefinition, ref blockWorldMatrix); } } }
private void DebugDrawMountPoints(MySlimBlock block) { if (block.FatBlock is MyCompoundCubeBlock) { foreach (MySlimBlock block2 in (block.FatBlock as MyCompoundCubeBlock).GetBlocks()) { this.DebugDrawMountPoints(block2); } } else { Matrix matrix; block.GetLocalMatrix(out matrix); MatrixD drawMatrix = matrix * this.m_cubeGrid.WorldMatrix; if ((!MyFakes.ENABLE_FRACTURE_COMPONENT || (block.FatBlock == null)) || !block.FatBlock.Components.Has <MyFractureComponentBase>()) { MyCubeBuilder.DrawMountPoints(this.m_cubeGrid.GridSize, block.BlockDefinition, ref drawMatrix); } else { MyFractureComponentCubeBlock fractureComponent = block.GetFractureComponent(); if (fractureComponent != null) { MyCubeBuilder.DrawMountPoints(this.m_cubeGrid.GridSize, block.BlockDefinition, drawMatrix, fractureComponent.MountPoints.GetInternalArray <MyCubeBlockDefinition.MountPoint>()); } } } }
public override void DebugDraw() { if (!MyDebugDrawSettings.DEBUG_DRAW_MOUNT_POINTS || !m_block.Components.Has <MyFractureComponentBase>()) { return; } MyFractureComponentCubeBlock component = m_block.GetFractureComponent(); if (component != null) { MatrixD m = m_block.CubeGrid.PositionComp.WorldMatrix; m.Translation = m_block.CubeGrid.GridIntegerToWorld(m_block.Position); MyCubeBuilder.DrawMountPoints(m_block.CubeGrid.GridSize, m_block.BlockDefinition, m, component.MountPoints.ToArray()); } }
private void DebugDrawMountPoints(MySlimBlock block) { if (block.FatBlock is MyCompoundCubeBlock) { MyCompoundCubeBlock compoundBlock = block.FatBlock as MyCompoundCubeBlock; foreach (MySlimBlock componentBlock in compoundBlock.GetBlocks()) { DebugDrawMountPoints(componentBlock); } } else { MatrixD blockWorldMatrix = m_cubeGrid.WorldMatrix; Matrix blockMatrix; block.Orientation.GetMatrix(out blockMatrix); blockWorldMatrix *= blockMatrix; blockWorldMatrix.Translation = m_cubeGrid.GridIntegerToWorld(block.Position); MyCubeBuilder.DrawMountPoints(m_cubeGrid.GridSize, block.BlockDefinition, ref blockWorldMatrix); } }