Beispiel #1
0
 public Mesh(Graphics g, Vertex[] vertices, int[] indices, Vector3 boxMin, Vector3 boxMax)
 {
     ID       = NextID++;
     Vertices = ToDispose(VKBuffer.Vertex(g.Context, vertices));
     Indices  = ToDispose(VKBuffer.Index(g.Context, indices));
     BoxMin   = boxMin;
     BoxMax   = boxMax;
 }
Beispiel #2
0
 internal Mesh(Context ctx, Vertex[] vertices, int[] indices, Vector3 boxMin, Vector3 boxMax)
 {
     ID       = NextID++;
     Vertices = ToDispose(VKBuffer.Vertex(ctx, vertices));
     Indices  = ToDispose(VKBuffer.Index(ctx, indices));
     BoxMin   = boxMin;
     BoxMax   = boxMax;
 }
Beispiel #3
0
        public Mesh(Graphics g, Vertex[] vertices, int[] indices)
        {
            ID = NextID++;
            var minX = 0f;
            var minY = 0f;
            var minZ = 0f;
            var maxX = 0f;
            var maxY = 0f;
            var maxZ = 0f;

            foreach (var vert in vertices)
            {
                if (vert.Position.X < minX)
                {
                    minX = vert.Position.X;
                }
                else if (vert.Position.X > maxX)
                {
                    maxX = vert.Position.X;
                }
                if (vert.Position.Y < minY)
                {
                    minY = vert.Position.Y;
                }
                else if (vert.Position.Y > maxY)
                {
                    maxY = vert.Position.Y;
                }
                if (vert.Position.Z < minZ)
                {
                    minZ = vert.Position.Z;
                }
                else if (vert.Position.Z > maxZ)
                {
                    maxZ = vert.Position.Z;
                }
            }

            Vertices = ToDispose(VKBuffer.Vertex(g.Context, vertices));
            Indices  = ToDispose(VKBuffer.Index(g.Context, indices));
            BoxMin   = new Vector3(minX, minY, minZ);
            BoxMax   = new Vector3(maxX, maxY, maxZ);
        }