前提・実現したいこと
Three.jsを使って3Dモデルの描画をし、その図形データをXMLファイルに出力しようとしています。
(Three.jsが動くローカル環境のブラウザでファイルをダウンロードする仕掛け自体はできています)
その過程で、描画している直方体の3Dオブジェクトからwidth、height、depthを得たいのですが、
可能でしょうか?
発生している問題・エラーメッセージ
オブジェクトの情報自体を取得可能なのは、以下の式でオブジェクトの座標(中心の座標)を取得できたことから確認できています。
ObjctName.position.x
同様に
ObjctName.width
みたいに取得できないかと試してみましたが出力ファイルには"undefined"と記述されました。
エラーメッセージ
該当のソースコード
Javascript
1寸法を取得したい直方体オブジェクトは以下のような関数で作成しています。 2Hogehoge = function(w,h,d){ 3 this.id = HOGEHOGE_ID++; 4 var geometry = new THREE.BoxGeometry( w, h,d ); 5 var material = new THREE.MeshBasicMaterial( {color: 0x004400} ); 6 THREE.Mesh.call(this, geometry, material ); 7 this.translateOnAxis(new THREE.Vector3(0,1,0),h/2); 8 this.translateOnAxis(new THREE.Vector3(0,0,1),d/2); 9} 10
試したこと
参考書(「three.jsによるHTML53Dグラフィックス[改訂版]上」)によると、Meshクラス
はコンストラクタの引数として指定されたGeometryクラスをプロパティgeometryとして有し、
オブジェクト作成時に使用したBoxGeometryクラスにはコンストラクタで指定したパラメータを
保持するparametersというプロパティがあるそうです。
そこで
ObjctName.geometry.parameters.width
で取得を試みましたが、
Ugougo.html:960 Uncaught TypeError: Cannot read property 'parameters' of undefined
というエラーが表示されました。おそらくオブジェクトのプロパティgeometry取得の時点で
失敗しているのだと思いますが……
補足情報(FW/ツールのバージョンなど)
環境として使用しているブラウザはGoogle Chrome 75.0です。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/16 02:16
2019/07/16 02:21