オブジェクトのオーバーライドに対して行われる呼び出しのシーケンスを理解しやすくするために、プラグイン開発者は MPxDrawOverride クラスと MPxGeometryOverride クラスのトレースを有効にできます。
最初のメソッドが true を返すようにオーバーライドできます。この場合、呼び出しシーケンスがトレースされ、各種の呼び出しの場所が文字列として記録されます。既定では、これらの文字列は標準出力に出力されます。プラグインが handleTraceMessage() メソッドをオーバーライドする場合は、メッセージを別の場所に送ることができます。たとえば、apiMeshShape (Developer Kit サンプル)ジオメトリ オーバーライドはメッセージをコマンド ウィンドウに送ります。
apiMeshShape オブジェクトが作成されたときに記録されたサンプル トレースを以下に示します。コンテキストのために、可能な場合にはオブジェクトのパスが指定されることに注意してください。
// apiMeshGeometryOverride: Geometry override DG update: apiMesh1 // // apiMeshGeometryOverride: Start geometry override render item update: |transform1|apiMesh1 // // apiMeshGeometryOverride: - Call API to update render items // // apiMeshGeometryOverride: End geometry override render item update: |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: StandardShadedItem. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: StandardShadedItem. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: FlatShadedItem. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: FlatShadedItem. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshWire. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshShadedTemplateWire. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshSelectedWireFrame. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshVertices. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshActiveVertices. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshVertexIds. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshVertexPositions. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshFaceCenterInWireframeMode. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshFaceCenterInShadedMode. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshAffectedEdges. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshAffectedFaces. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshEdgeSelection. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiMeshFaceSelection. |transform1|apiMesh1 // // apiMeshGeometryOverride: Geometry override dirty indexing check: apiShadedProxy. |transform1|apiMesh1 // // apiMeshGeometryOverride: Start geometry override update stream and indexing data: apiMesh1 // // apiMeshGeometryOverride: - Update render item: StandardShadedItem // // apiMeshGeometryOverride: End geometry override update stream and indexing data: apiMesh1 // // apiMeshGeometryOverride: Geometry override clean up: apiMesh1 //
footPrintNode_GeometryOverride プラグインも MPxGeometryOverride のトレースを有効にします。ジオメトリ オーバーライドの場合、レンダー項目の描画は描画オーバーライド(MPxDrawOverride)通りにはトレースの一部として記録されません。rawfootPrintNode プラグインのトレース例を以下に示します。
// rawFootPrintNode: Start draw override render item update for object: |transform1|rawfootPrint1 // // rawFootPrintNode: - call draw override prepareForDraw() // // rawFootPrintNode: End draw override render item update for object: |transform1|rawfootPrint1 // // rawFootPrintNode: Start draw override queuing of UI drawables for object: |transform1|rawfootPrint1 // // rawFootPrintNode: - call draw override addUIDrawables() // // rawFootPrintNode: End draw override queuing of UI drawables for object: |transform1|rawfootPrint1 // // rawFootPrintNode: Start draw override draw function: |transform1|rawfootPrint1 // // rawFootPrintNode: End draw override draw function: |transform1|rawfootPrint1 //