Exemple #1
0
        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)) };
        }
Exemple #2
0
        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) };
        }
Exemple #3
0
        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;
        }
Exemple #4
0
 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());
 }