Exemplo n.º 1
0
 public GenMeshSquareFace(GenMeshVertex leftTop, GenMeshVertex leftBottom, GenMeshVertex rightBottom, GenMeshVertex rightTop) : this()
 {
     this.Vertices[0] = leftTop;
     this.Vertices[1] = leftBottom;
     this.Vertices[2] = rightBottom;
     this.Vertices[3] = rightTop;
 }
Exemplo n.º 2
0
        private static Vector3 GetMidpoint(GenMeshVertex a, GenMeshVertex b)
        {
            var p = (a.Coordinates + b.Coordinates) / 2;

            var length = Mathf.Sqrt(p.x * p.x + p.y * p.y + p.z * p.z);

            return(new Vector3(p.x / length, p.y / length, p.z / length));
        }
        public static GenMesh CreateCube(float size = 1)
        {
            var mesh = new GenMesh();

            // create 8 vertices the notation is XYZ so for vertex that's on top face on the left top it will be LTT
            var LTT = new GenMeshVertex(new Vector3(-size, +size, -size));
            var RTT = new GenMeshVertex(new Vector3(+size, +size, -size));
            var RTB = new GenMeshVertex(new Vector3(+size, +size, +size));
            var LTB = new GenMeshVertex(new Vector3(-size, +size, +size));

            var LBT = new GenMeshVertex(new Vector3(-size, -size, -size));
            var RBT = new GenMeshVertex(new Vector3(+size, -size, -size));
            var RBB = new GenMeshVertex(new Vector3(+size, -size, +size));
            var LBB = new GenMeshVertex(new Vector3(-size, -size, +size));

            // create 6 faces

            // top face
            mesh.Faces.Add(new GenMeshSquareFace(RTT, RTB, LTB, LTT));

            // left face
            mesh.Faces.Add(new GenMeshSquareFace(LTB, LBB, LBT, LTT));

            // right face
            mesh.Faces.Add(new GenMeshSquareFace(RTT, RBT, RBB, RTB));

            // front face
            mesh.Faces.Add(new GenMeshSquareFace(RTB, RBB, LBB, LTB));

            // back face
            mesh.Faces.Add(new GenMeshSquareFace(LTT, LBT, RBT, RTT));

            // bottom face
            mesh.Faces.Add(new GenMeshSquareFace(LBT, LBB, RBB, RBT));

            return(mesh);
        }
Exemplo n.º 4
0
 public GenMeshTriangleFace(GenMeshVertex a, GenMeshVertex b, GenMeshVertex c) : base(new GenMeshVertex[] { a, b, c })
 {
 }