Share via


BaseMesh.Clone

Clone メソッド

使用例

  • メッシュのコピー

オブジェクトを複製する。

オーバーロード リスト

public Mesh Clone (MeshFlags, GraphicsStream, Device)
public Mesh Clone (MeshFlags, VertexElement[], Device)
public Mesh Clone (MeshFlags, VertexFormats, Device)

使用例

メッシュのコピー

この例では、もともと存在していなかった法線、テクスチャ座標、色、重みなどに対するスペースを追加するためにメッシュをコピーする方法を示す。

以下のサンプル コードでは、ファイルからメッシュをコピーした後、Mesh.Clone メソッドを呼び出している。Clone へのこの呼び出しにより、32 ビット メッシュ データ、Pool.Managed 頂点ストレージ、サポートされる柔軟な頂点フォーマット VertexFormats、頂点法線を指定するフラグが追加される。

元の pMesh メッシュ オブジェクトは上書きされて、これらの値が追加される。更新された一時的なメッシュ オブジェクトに対する設定の前に、pMesh は破棄される。

using Microsoft.DirectX.Direct3D;

protected Device device; // The rendering device
device = null;
Mesh pMesh = null;
Mesh pTempMesh = null;
GraphicsStream adj = null;
ExtendedMaterial[] mtrl = null;
MeshFlags i32BitFlag;

// Load the mesh from the specified file.
pMesh = Mesh.FromFile("tiger.x", MeshFlags.Managed, device,
                      out adj,out mtrl);
i32BitFlag = pMesh.Options.Use32Bit ? MeshFlags.Use32Bit : 0;

if ( (pMesh.VertexFormat & VertexFormats.Normal) == 0)
{
    pTempMesh = pMesh.Clone(i32BitFlag | MeshFlags.Managed,
                pMesh.VertexFormat | pTempMesh.ComputeNormals();
    pMesh.Dispose();
    pMesh = pTempMesh;
}

© 2002 Microsoft Corporation. All rights reserved. Terms of use.