protected override void load()
{
SubMesh sm = CreateSubMesh();
sm.vertexData = new VertexData();
sm.useSharedVertices = false;
// Set up the vertex buffer
sm.vertexData.vertexStart = 0;
sm.vertexData.vertexCount = patchSurface.RequiredVertexCount;
sm.vertexData.vertexDeclaration = vertexDeclaration;
HardwareVertexBuffer buffer =
HardwareBufferManager.Instance.CreateVertexBuffer( vertexDeclaration.Clone( 0 ), sm.vertexData.vertexCount, VertexBufferUsage, UseVertexShadowBuffer );
// bind the vertex buffer
sm.vertexData.vertexBufferBinding.SetBinding( 0, buffer );
// create the index buffer
sm.indexData.indexStart = 0;
sm.indexData.indexCount = patchSurface.RequiredIndexCount;
sm.indexData.indexBuffer =
HardwareBufferManager.Instance.CreateIndexBuffer(
IndexType.Size16,
sm.indexData.indexCount,
IndexBufferUsage,
UseIndexShadowBuffer );
// build the path
patchSurface.Build( buffer, 0, sm.indexData.indexBuffer, 0 );
// set the bounds
this.BoundingBox = patchSurface.Bounds;
this.BoundingSphereRadius = patchSurface.BoundingSphereRadius;
}
}