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);
        }