1

この例のように、D3 を使用して X3Dom をマークアップしています: http://bl.ocks.org/jbeuckm/5620882

ボックスの代わりに単純な正方形を使用するように例を変換しました: http://bl.ocks.org/jbeuckm/5645205

それ以降のバージョンでは、データのロードと、さまざまなコールバックからの plotAxis および plotData の呼び出しを開始しました。最初の例のようにボックスを描画すると、期待どおりに機能します。

shape.append("x3d:box");

しかし、2つの三角形の顔セットを置き換えると...

shape.append("x3d:indexedFaceSet")
        .attr("coordIndex", "0 1 2 -1  2 3 0 -1")
        .attr('solid', 'false')
        .append("x3d:coordinate")
        .attr("point", "-1 -1 0,  1 -1 0,  1 1 0,  -1 1 0")

それは機能せず、次のエラーが表示されます。

Uncaught TypeError: Cannot call method 'getPoints' of null
x3dom.registerNodeType.defineClass.nodeChanged  x3dom.js:3175
x3dom.NodeNameSpace.setupTree  x3dom.js:1929
domEventListener.onNodeInserted  x3dom.js:1296
append  d3.v2.js:3701
d3_selectionPrototype.select  d3.v2.js:3606
d3_selectionPrototype.append  d3.v2.js:3707
plotData  tran_3d.html:132
(anonymous function)  tran_3d.html:240
st.Callbacks.f  jquery-1.9.0.min.js:1
st.Callbacks.p.fireWith  jquery-1.9.0.min.js:1
st.extend.Deferred.st.each.i.(anonymous function)  jquery-1.9.0.min.js:1
(anonymous function)  tran_3d.html:280
d3.json  d3.v2.js:2950
ready  d3.v2.js:2940

<Coordinate> 子が <IndexedFaceSet> に追加される前に、「ノード挿入」コードが形状を分析するようです。しかし、同じ append ステートメントがあるコンテキストでは機能し、別のコンテキストでは機能しない理由がわかりません。繰り返しますが、x3d:box を追加するだけで、データ読み込みのセットアップで問題なく動作しますが、x3d:indexedFaceSet でエラーがスローされます。

4

1 に答える 1