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; }
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; }
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); }