2

three.js の STLLoader 関数を使用してロードした心臓モデルの断面を取得しようとしています。現在、このスタック オーバーフローの投稿と同じように、 csg.jsライブラリにThreeCSGラッパーを使用しようとしています。

csg減算のコードは次のとおりです

function modelLoadedCallBack( geometry ) {

    material = new THREE.MeshPhongMaterial( { color: model.color } );
    mesh = new THREE.Mesh( geometry, material );
    mesh.rotation.set( model.rotationX, model.rotationY, model.rotationZ );
    mesh.scale.set( model.scale, model.scale, model.scale );
    var originalBSP = new ThreeBSP( mesh );

    var xSectionBSP = new ThreeBSP( xSection );
    var subtractedBSP = originalBSP.subtract( xSectionBSP );

    var result = subtractedBSP.toMesh( material );
    result.geometry.computeVertexNormals();

    scene.add( result );

};

stl モデルをロードし、ローダーのコールバック関数でメッシュを差し引きます。私が得ているエラーは、ThreeCSG ラッパー ファイルの 34 行目にあり、

ThreeCSG.js:34 Uncaught TypeError:未定義のプロパティ「長さ」を読み取ることができません

これは、(a) ThreeCSG を適切に使用していない、(b) コードの別の場所で減算を行う必要がある、または (c) STL 形式のモデルがサポートされていないためだと推測しています。

いずれにせよ、私は完全に困惑しており、three.js の使用経験が豊富な人のアドバイスをいただければ幸いです。

4

1 に答える 1