次の方法で共有


BaseMesh.Clone(MeshFlags,GraphicsStream,Device)

Clone メソッド

使用例

  • メッシュのコピー

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

定義

Visual Basic Public Function Clone( _
    ByVal options As MeshFlags, _
    ByVal declaration As GraphicsStream, _
    ByVal device As Device _
) As Mesh
C# public Mesh Clone(
    MeshFlags options,
    GraphicsStream declaration,
    Device device
);
Managed C++ public: Mesh* Clone(
    MeshFlags options,
    GraphicsStreamdeclaration,
    Devicedevice
);
JScript public function Clone(
    options : MeshFlags,
    declaration : GraphicsStream,
    device : Device
) : Mesh;

パラメータ

options Microsoft.DirectX.Direct3D.MeshFlags.
declaration Microsoft.DirectX.Direct3D.GraphicsStream.
device Microsoft.DirectX.Direct3D.Device.

戻り値

Microsoft.DirectX.Direct3D.Mesh.

使用例

メッシュのコピー

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

以下のサンプル コードでは、ファイルからメッシュをコピーした後、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;
}

対象

BaseMesh, Mesh

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