質問:
私は AutoDesk View and Data API を使用してきましたが、選択した要素に関するジオメトリ情報を返すことができるかどうか知りたいと思っていました。理想的には、たとえば 2 つの線を比較できるように、選択した要素の位置、サイズ、角度、形状の種類などが必要です。2 つの形状を比較できる限り、この情報がどのように表現されるかは気にしません。
目的:
次のような行があった場合 (疑似表現):
(x1=0,y1=0),(x2=10,y2=0), 長さ 10 の 2d 直線;
次のような別の行:
(x1=20,y1=20),(x2=30,y2=20), 長さ 10 の別の 2d 直線.
次に、この情報からこれらの 2 つの線が似ていると言え、その角度を推測できます。明らかに、選択されたエンティティのタイプも示す必要があります。それが私の質問の望ましい結果です。
私が試したこと:
これまでに、Viewer3d.js 内でいくつかの便利な関数を見つけましたが、選択した単一の形状の幾何学的位置に関するデータを返すものはないようです。
Viewing.Extension.SomeExtension = function (viewer, options)
{
...
var shapeRenderData = viewer.impl.getRenderProxy(viewer, dbId);
var shapeFragmentData = viewer.impl.getFragmentProxy(viewer, dbId);
}
onSelect イベントを含める方法は既に理解していますが、質問を明確にするために省略しています。
これらはどちらも と のプロパティを持つ JSON オブジェクトを返しますがfragId, scale, quaternion
、position
fragId を除いて、これらのプロパティには null 値があります。
追加:
AutoDesk チームのこの GitHub チュートリアルから作成した拡張機能を基にしています。
5 番目のステップには、私が議論している onSelect イベントのコードが含まれていることに注意してください。これを解決するために質問を再作成する必要があります。