JSON形式のデータが必要ですか? ODA Drawing SDKは、データベースのビューからJSON形式にデータをエクスポートできます。この形式は、Three.jsというJavaScriptライブラリを使用して適用されます。
TD_THREEJSJSON_EXPORT名前空間からDrawings SDKのThreejsJSONModuleクラスを使用します。
OdResult exportThreejsJSON(OdDbBaseDatabase *pDb, OdStreamBuf *pOutStream, const ODCOLORREF &background, bool bFacesEnabled = false);
入力パラメータ:
- background – シーンの背景色。
- bFacesEnabled – trueの場合、pDbは面付きでJSONにエクスポートされ、それ以外の場合は線と点のみでエクスポートされます。
出力パラメータ:
- pOutStream – 出力ストリーム(ファイルストリーム、メモリストリーム)。
戻り値:
- eOk (成功時) または OdResult エラーコード。
メソッドの結果が eOk の場合、pOutStream には4つのオブジェクトを含むJSON形式のテキストが含まれます:
- メタデータのJSONオブジェクト。
- 点、線、メッシュのマテリアルのJSON配列。
- データの配列を持つジオメトリのJSON配列。点と線のジオメトリには頂点と空の面配列が含まれます。メッシュのジオメトリには頂点、法線、色、面配列が含まれます(配列の数は、ビットマスクを含む面要素の最初のインデックスに依存します)。
- ルートノードにシーンオブジェクトを持つシーングラフなどのオブジェクトのJSON配列。このツリーの第2レベルには、デフォルトタイプがObject3Dのカメラとレイヤーが含まれます。カメラオブジェクトにはライトオブジェクトが含まれる場合があります。レイヤーには、デフォルトタイプがObject3Dの点、線、メッシュ、またはメタファイルオブジェクトが含まれる場合があります。これはプリミティブ型オブジェクトのルートノードです。
Three.js JSON形式に変換する際の欠点は、元のオブジェクトに複数のカメラオブジェクトがある場合に発生します。カメラの行列を使用してオブジェクトの座標を変更することは不可能です。
JSON形式では、データセットはシーングラフとジオメトリおよびマテリアルの配列とともに保存されることを忘れないでください。レイヤーでの表示やオブジェクトの種類の無効化(たとえば、面をメッシュまたはアイソラインとして表示する)は、JavaScriptで設定する必要があります。
次の例は、ODA Viewerで開かれ、Three.js JSON形式に変換された2Dおよび3Dオブジェクトを示しています。
ODA Viewerでの2Dオブジェクト:
Three.js JSONでの2Dオブジェクト:
ODA Viewerでの3Dオブジェクト:
Three.js JSONでの3Dオブジェクト: