Example #1
0
        public void DrawLines(System.Action <Vector3, Vector3> drawLine)
        {
            var matrix      = this.matrix;
            var radius      = this.radius;
            var localLength = (b - a).magnitude;

            if (localLength == 0f)
            {
                localLength = 0.0001f;
            }
            var localDirection = (b - a) / localLength;

            var circle = new Geometry.Circle(
                center: a + localDirection * localLength * lengthFraction,
                direction: localDirection,
                radius: radius,
                overrideMatrix: matrix
                );
            var startPos = matrix.MultiplyPoint3x4(a);
            var endPos   = matrix.MultiplyPoint3x4(b);

            foreach (var point in circle.Points(polySegments))
            {
                drawLine(startPos, point);
                drawLine(point, endPos);
            }
            foreach (var edge in circle.Segments(polySegments))
            {
                drawLine(edge.a, edge.b);
            }
        }