private void OnDrawGizmos() { Box3 box = CreateBox3(Box); Capsule3 capsule = CreateCapsule3(P0, P1, Radius); bool intr = Intersection.TestBox3Capsule3(ref box, ref capsule); FiguresColor(); DrawBox(ref box); DrawCapsule(ref capsule); LogInfo("Intr: " + intr); }
protected void DrawCapsule(ref Capsule3 capsule) { Vector3 axis = capsule.Segment.Direction; ProjectionPlanes projPlane = axis.GetProjectionPlane(); Vector3 side = projPlane == ProjectionPlanes.YZ ? Vector3ex.UnitZ : Vector3ex.UnitX; side = axis.Cross(ref side); Vector3 side1 = side.Cross(ref axis); Vector3 p0 = capsule.Segment.P0; Vector3 p1 = capsule.Segment.P1; Vector3 offset = side * capsule.Radius; DrawSegment(p0 + offset, p1 + offset); DrawSegment(p0 - offset, p1 - offset); offset = side1 * capsule.Radius; DrawSegment(p0 + offset, p1 + offset); DrawSegment(p0 - offset, p1 - offset); Gizmos.DrawWireSphere(p0, capsule.Radius); Gizmos.DrawWireSphere(p1, capsule.Radius); }