Exemplo n.º 1
0
    public void Paint(Vector3 startPosition, Vector3 endPosition)
    {
        if (tree.IsReady == true && painter.IsReady == true)
        {
            var start = lockedGameObject.transform.InverseTransformPoint(startPosition);
            var end   = lockedGameObject.transform.InverseTransformPoint(endPosition);

            if (passThrough == true)
            {
                var results = tree.FindBetweenAll(start, end);

                for (var i = results.Count - 1; i >= 0; i--)
                {
                    Paint(results[i].GetUV(currentCoord));
                }
            }
            else
            {
                var result = tree.FindBetweenNearest(start, end);

                if (result != null)
                {
                    Paint(result.GetUV(currentCoord));
                }
            }
        }
    }
Exemplo n.º 2
0
    // This paints all triangles between the input positions
    // NOTE: This method requires you to call SetMesh first
    public void PaintBetweenAll(Vector3 startPosition, Vector3 endPosition, P3D_CoordType coord = P3D_CoordType.UV1)
    {
        if (CanMeshPaint == true)
        {
            startPosition = transform.InverseTransformPoint(startPosition);
            endPosition   = transform.InverseTransformPoint(endPosition);

            Paint(tree.FindBetweenAll(startPosition, endPosition), coord);
        }
    }
Exemplo n.º 3
0
    // This will paint all surfaces between the start and end positions in world space
    public void PaintBetweenAll(P3D_Brush brush, Vector3 startPosition, Vector3 endPosition, int groupMask = -1)
    {
        if (CheckTree() == true)
        {
            var start   = transform.InverseTransformPoint(startPosition);
            var end     = transform.InverseTransformPoint(endPosition);
            var results = tree.FindBetweenAll(start, end);

            Paint(brush, results, groupMask);
        }
    }