public void DebugRender(IGameContext gameContext, IRenderContext renderContext) { if (renderContext.IsCurrentRenderPass <IDebugRenderPass>()) { var debugRenderPass = renderContext.GetCurrentRenderPass <IDebugRenderPass>(); if (debugRenderPass.EnabledLayers.OfType <PerPixelCollisionDebugLayer>().Any()) { foreach (var aWR in _components) { IPerPixelCollisionComponent a; if (!aWR.TryGetTarget(out a)) { continue; } if (!(a.Texture?.IsReady ?? false)) { continue; } var aParent = _hierarchy.Lookup(a)?.Parent?.UntypedValue as IHasTransform; var aRectangle = CalculateBoundingBox(aParent, a); _debugRenderer.RenderDebugTriangle( renderContext, new Vector3(aRectangle.X, aRectangle.Y, 0), new Vector3(aRectangle.X + aRectangle.Width, aRectangle.Y, 0), new Vector3(aRectangle.X, aRectangle.Y + aRectangle.Height, 0), Color.Orange, Color.Orange, Color.Orange); _debugRenderer.RenderDebugTriangle( renderContext, new Vector3(aRectangle.X + aRectangle.Width, aRectangle.Y + aRectangle.Height, 0), new Vector3(aRectangle.X + aRectangle.Width, aRectangle.Y, 0), new Vector3(aRectangle.X, aRectangle.Y + aRectangle.Height, 0), Color.Orange, Color.Orange, Color.Orange); } } } }
public void DrawTriangle(JVector pos1, JVector pos2, JVector pos3) { _debugRenderer.RenderDebugTriangle( _renderContext, pos1.ToXNAVector(), pos2.ToXNAVector(), pos3.ToXNAVector(), _isRigidBodyActive ? Color.Red : Color.DarkRed, _isRigidBodyActive ? Color.Green : Color.DarkGreen, _isRigidBodyActive ? Color.Blue : Color.DarkBlue); }
public void DrawTriangle(JVector pos1, JVector pos2, JVector pos3) { _debugRenderer.RenderDebugTriangle( _renderContext, pos1.ToXNAVector(), pos2.ToXNAVector(), pos3.ToXNAVector(), Color.Yellow, Color.Yellow, Color.Yellow); }