예제 #1
0
    public static Mesh GenerateTriangulatedMesh(int size, DistributionData data)
    {
        Polygon polygon = new Polygon();

        switch (data.distributionType)
        {
        case DistributionType.Random:
            polygon = PointSampling.GenerateRandomDistribution(size, data.pointDensity);
            break;

        case DistributionType.Poisson:
            polygon = PointSampling.GeneratePoissonDistribution(data.radius, size, data.rejectionSamples);
            break;

        default:
            throw new ArgumentOutOfRangeException();
        }

        ConstraintOptions constraintOptions = new ConstraintOptions();

        constraintOptions.ConformingDelaunay = true;


        TriangleNet.Mesh mesh = polygon.Triangulate(constraintOptions) as TriangleNet.Mesh;

        return(mesh);
    }
예제 #2
0
    public static Mesh GetMeshFromMesh(UnityEngine.Mesh m)
    {
        Polygon polygon = new Polygon();

        foreach (Vector3 meshVertex in m.vertices)
        {
            polygon.Add(new Vertex(meshVertex.x, meshVertex.z));
        }

        ConstraintOptions constraintOptions = new ConstraintOptions();

        constraintOptions.ConformingDelaunay = true;


        TriangleNet.Mesh mesh = polygon.Triangulate(constraintOptions) as TriangleNet.Mesh;
        return(mesh);
    }