Mesh.Mesh(Int32,Int32,MeshFlags,GraphicsStream,Device) Constructor (Microsoft.DirectX.Direct3D)
How Do I...?
- Create a Mesh Object
Creates a new Mesh instance.
Definition
Visual Basic Public Sub New( _
ByVal numFaces As Integer, _
ByVal numVertices As Integer, _
ByVal options As MeshFlags, _
ByVal declaration As GraphicsStream, _
ByVal device As Device _
)C# public Mesh(
int numFaces,
int numVertices,
MeshFlags options,
GraphicsStream declaration,
Device device
);C++ public:
Mesh(
int numFaces,
int numVertices,
MeshFlags options,
GraphicsStream^ declaration,
Device^ device
);JScript public function Mesh(
numFaces : int,
numVertices : int,
options : MeshFlags,
declaration : GraphicsStream,
device : Device
);
Parameters
numFaces System.Int32
Number of faces for the mesh. The valid range is greater than 0 and one less than the maximum Int32 (typically 65534), because the last index is reserved.numVertices System.Int32
Number of vertices for the mesh. This parameter must be greater than 0.options Microsoft.DirectX.Direct3D.MeshFlags
One or more flags from the MeshFlags enumeration that specify creation options for the mesh (excepting the Simplify* and Optimize* flags).declaration Microsoft.DirectX.GraphicsStream
A GraphicsStream containing an array of VertexFormats enumeration values that specify the format of the mesh vertices.device Microsoft.DirectX.Direct3D.Device
A Device object that represents the device associated with the mesh.
Remarks
Exceptions
The method call is invalid. For example, a method's parameter might contain an invalid value.
Microsoft Direct3D could not allocate sufficient memory to complete the call.
How Do I...?
Create a Mesh Object
This example shows how to create a Mesh object.
In the following C# code example, device is assumed to be the rendering Device.
[C#] int numberVerts = 8; short[] indices = { 0,1,2, // Front Face 1,3,2, // Front Face 4,5,6, // Back Face 6,5,7, // Back Face 0,5,4, // Top Face 0,2,5, // Top Face 1,6,7, // Bottom Face 1,7,3, // Bottom Face 0,6,1, // Left Face 4,6,0, // Left Face 2,3,7, // Right Face 5,2,7 // Right Face }; Mesh mesh = new Mesh(numberVerts * 3, numberVerts, MeshFlags.Managed, CustomVertex.PositionColored.Format, device); using(VertexBuffer vb = mesh.VertexBuffer) { GraphicsStream data = vb.Lock(0, 0, LockFlags.None); data.Write(new CustomVertex.PositionColored(-1.0f, 1.0f, 1.0f, 0x00ff00ff)); data.Write(new CustomVertex.PositionColored(-1.0f, -1.0f, 1.0f, 0x00ff00ff)); data.Write(new CustomVertex.PositionColored(1.0f, 1.0f, 1.0f, 0x00ff00ff)); data.Write(new CustomVertex.PositionColored(1.0f, -1.0f, 1.0f, 0x00ff00ff)); data.Write(new CustomVertex.PositionColored(-1.0f, 1.0f, -1.0f, 0x00ff00ff)); data.Write(new CustomVertex.PositionColored(1.0f, 1.0f, -1.0f, 0x00ff00ff)); data.Write(new CustomVertex.PositionColored(-1.0f, -1.0f, -1.0f, 0x00ff00ff)); data.Write(new CustomVertex.PositionColored(1.0f, -1.0f, -1.0f, 0x00ff00ff)); vb.Unlock(); } using (IndexBuffer ib = mesh.IndexBuffer) { ib.SetData(indices, 0, LockFlags.None); }