Exemple #1
0
 private void addVertix(VoxelProduct.Product main, Vector3 p, Color c, Vector3 normal)
 {
     VoxelDrawData.Vertice v = new VoxelDrawData.Vertice();
     v.position = p;
     v.normal   = normal;
     v.color    = c;
     main.draw.vertices.Add(v);
 }
        private void addVertix(Vector3 p, Color c, Vector3 normal)
        {
            VoxelDrawData.Vertice v = new VoxelDrawData.Vertice();
            v.position = p;
            v.normal   = normal;
            v.color    = c;
            v.uv1      = Vector2.zero;
            v.uv2      = Vector2.zero;
            product_.draw.vertices.Add(v);
//			Debug.Log (product_.draw.vertices[0]);
        }
 public Vertex(VoxelDrawData.Vertice v, int input_id)
 {
     id                    = input_id;
     position              = v.position;
     color                 = v.color;
     normal                = v.normal;
     neighbor_vertices     = new List <Vertex>();
     adjacent_faces        = new List <Triangle>();
     cost                  = int.MaxValue;
     collapse              = null;
     is_continuous_polygon = true;
     can_move              = true;
 }
Exemple #4
0
        public static Dictionary <Vector3, Dictionary <Color, Dictionary <Vector3, Point> > > Draw2Mesh(VoxelDrawData draw)
        {
            Dictionary <Vector3, Dictionary <Color, Dictionary <Vector3, Point> > > mesh = new Dictionary <Vector3, Dictionary <Color, Dictionary <Vector3, Point> > >();  // = new Dictionary<Vector3, Point>();

            List <VoxelDrawData.Vertice> vex = draw.vertices;

            for (int i = 0; i < vex.Count; ++i)
            {
                VoxelDrawData.Vertice v = vex[i];
                if (!mesh.ContainsKey(v.normal))
                {
                    mesh [v.normal] = new Dictionary <Color, Dictionary <Vector3, Point> > ();
                }


                if (!mesh [v.normal].ContainsKey(v.color))
                {
                    mesh [v.normal] [v.color] = new Dictionary <Vector3, Point> ();
                }
                Point point = new Point();
                point.vertice = v;
                mesh [v.normal] [v.color][v.position] = point;
            }


            List <int> trx = draw.triangles;

            for (int i = 0; i < trx.Count; i += 3)
            {
                VoxelDrawData.Vertice       a = vex [trx [i]];
                VoxelDrawData.Vertice       b = vex [trx [i + 1]];
                VoxelDrawData.Vertice       c = vex [trx [i + 2]];
                Dictionary <Vector3, Point> m = mesh [a.normal] [a.color];

                Point A = m [a.position];
                Point B = m [b.position];
                Point C = m [c.position];

                A.link.Add(B);
                A.link.Add(C);

                B.link.Add(A);
                B.link.Add(C);

                C.link.Add(A);
                C.link.Add(B);
            }
            return(mesh);
        }
 public Pack(int i, VoxelDrawData.Vertice v)
 {
     index   = i;
     vertice = v;
 }