예제 #1
0
    private void InitMesh()
    {
        float radius = MDefinitions.POINT_PRECISION;

        mesh = MPrefab.GetCubeMesh();
        Vector3[] vertices = new Vector3[mesh.vertices.Length];
        for (int i = 0; i < mesh.vertices.Length; i++)
        {
            vertices[i] = mesh.vertices[i] * radius * 2 + position;
        }
        mesh.vertices = vertices;
    }
예제 #2
0
 private void InitMesh()
 {
     mesh = MPrefab.GetSphereMesh();
     if (!MHelperFunctions.FloatEqual(radius, 0.5f))
     {
         Vector3[] vertices = new Vector3[mesh.vertices.Length];
         for (int i = 0; i < mesh.vertices.Length; i++)
         {
             vertices[i] = mesh.vertices[i] * radius * 2;
         }
         mesh.vertices = vertices;
     }
 }
예제 #3
0
    private void InitMesh()
    {
        int count = points.Count - 1;

        CombineInstance[] combines   = new CombineInstance[count];
        Matrix4x4         transform  = Matrix4x4.Scale(Vector3.one);
        Vector3           lastNormal = (points[1] - points[0]).normalized;

        for (int i = 0; i < count; i++)
        {
            Vector3 curNormal = (points[i + 1] - points[i]).normalized;
            combines[i].mesh      = MPrefab.GetLineMesh(points[i], lastNormal, points[i + 1], curNormal, MDefinitions.LINE_RADIUS);
            combines[i].transform = transform;
            lastNormal            = curNormal;
        }
        mesh = new Mesh();
        mesh.CombineMeshes(combines);
    }
예제 #4
0
 public MMesh()
 {
     boundingBox       = new AABB();
     pointList         = new List <MPoint>();
     edgeList          = new List <MEdge>();
     faceList          = new List <MFace>();
     pointIdentifiers  = new Dictionary <MPoint, GameObject>();
     identifierLetters = new List <string> {
         "A", "B", "C", "D", "E", "F", "G",
         "H", "I", "J", "K", "L", "M", "N",
         "O", "P", "Q", "R", "S", "T",
         "U", "V", "W", "X", "Y", "Z"
     };
     freeGameObjects = new List <GameObject>();
     for (int i = 0; i < identifierLetters.Count; i++)
     {
         freeGameObjects.Add(MPrefab.GetTextMesh());
     }
 }
예제 #5
0
 private void InitMesh()
 {
     mesh = MPrefab.GetCylinderFaceMesh(top.center.position, bottom.center.position, top.normal, top.radius);
     mesh.RecalculateBounds();
     boundingBox = new AABB(mesh.bounds);
 }
예제 #6
0
 private void InitMesh()
 {
     mesh = MPrefab.GetLineMesh(start.position, end.position, MDefinitions.LINE_RADIUS);
 }
예제 #7
0
 private void InitMesh()
 {
     mesh = MPrefab.GetCircleFaceMesh(circle.center.position, circle.normal, circle.radius);
     mesh.RecalculateBounds();
     boundingBox = new AABB(mesh.bounds);
 }
예제 #8
0
 private void InitMesh()
 {
     mesh = MPrefab.GetCircleEdgeMesh(center.position, normal, radius, MDefinitions.LINE_RADIUS);
 }