public ShapePrimitive(GraphicsDevice graphicsDevice, Material material, SharedShape.VertexBufferSet vertexBufferSet, IndexBuffer indexBuffer, int minVertexIndex, int numVerticies, int primitiveCount, int[] hierarchy, int hierarchyIndex) { Material = material; VertexBuffer = vertexBufferSet.Buffer; IndexBuffer = indexBuffer; MinVertexIndex = minVertexIndex; NumVerticies = numVerticies; PrimitiveCount = primitiveCount; Hierarchy = hierarchy; HierarchyIndex = hierarchyIndex; VertexBufferBindings = new[] { new VertexBufferBinding(VertexBuffer), new VertexBufferBinding(GetDummyVertexBuffer(graphicsDevice)) }; }
public ShapePrimitive(GraphicsDevice graphicsDevice, Material material, SharedShape.VertexBufferSet vertexBufferSet, IndexBuffer indexBuffer, int minVertexIndex, int numVerticies, int primitiveCount, int[] hierarchy, int hierarchyIndex) { Material = material; VertexBuffer = vertexBufferSet.Buffer; IndexBuffer = indexBuffer; MinVertexIndex = minVertexIndex; NumVerticies = numVerticies; PrimitiveCount = primitiveCount; Hierarchy = hierarchy; HierarchyIndex = hierarchyIndex; DummyVertexBuffer = new VertexBuffer(graphicsDevice, DummyVertexDeclaration, 1, BufferUsage.WriteOnly); DummyVertexBuffer.SetData(DummyVertexData); VertexBufferBindings = new[] { new VertexBufferBinding(VertexBuffer), new VertexBufferBinding(DummyVertexBuffer) }; }
public ShapeDebugNormalsPrimitive(Material material, SharedShape.VertexBufferSet vertexBufferSet, List <ushort> indexData, GraphicsDevice graphicsDevice, int[] hierarchy, int hierarchyIndex) { Material = material; VertexBuffer = vertexBufferSet.DebugNormalsBuffer; VertexDeclaration = vertexBufferSet.DebugNormalsDeclaration; VertexBufferStride = vertexBufferSet.DebugNormalsDeclaration.GetVertexStrideSize(0); var debugNormalsIndexBuffer = new List <ushort>(indexData.Count * SharedShape.VertexBufferSet.DebugNormalsVertexPerVertex); for (var i = 0; i < indexData.Count; i++) { for (var j = 0; j < SharedShape.VertexBufferSet.DebugNormalsVertexPerVertex; j++) { debugNormalsIndexBuffer.Add((ushort)(indexData[i] * SharedShape.VertexBufferSet.DebugNormalsVertexPerVertex + j)); } } IndexBuffer = new IndexBuffer(graphicsDevice, typeof(short), debugNormalsIndexBuffer.Count, BufferUsage.WriteOnly); IndexBuffer.SetData(debugNormalsIndexBuffer.ToArray()); MinVertexIndex = indexData.Min() * SharedShape.VertexBufferSet.DebugNormalsVertexPerVertex; NumVerticies = (indexData.Max() - indexData.Min() + 1) * SharedShape.VertexBufferSet.DebugNormalsVertexPerVertex; PrimitiveCount = indexData.Count / 3 * SharedShape.VertexBufferSet.DebugNormalsVertexPerVertex; Hierarchy = hierarchy; HierarchyIndex = hierarchyIndex; }
public ShapePrimitive(Material material, SharedShape.VertexBufferSet vertexBufferSet, List <ushort> indexData, GraphicsDevice graphicsDevice, int[] hierarchy, int hierarchyIndex) : this(graphicsDevice, material, vertexBufferSet, null, indexData.Min(), indexData.Max() - indexData.Min() + 1, indexData.Count / 3, hierarchy, hierarchyIndex) { IndexBuffer = new IndexBuffer(graphicsDevice, typeof(short), indexData.Count, BufferUsage.WriteOnly); IndexBuffer.SetData(indexData.ToArray()); }