Three.js と Thingiview.js (Three.js から派生したもの) に問題があります。これらの 2 つのライブラリ/スクリプトと競合しています。(three.js と three.min.js ファイルだと思います)。ここでは、スクリプトの 50% しか使用できません:s
私がやりたいことは、thingiview でシーンを表示し、three.js でバウンディング ボックスを計算することです。
この種の紛争の解決策を知っていることを願っています。私はそれで一日中過ごしました:(
私が呼び出すコードは次のとおりです。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
<script src="thingview/javascripts/Three.js"></script>
<script src="thingview/javascripts/thingiview.js"></script>
<script>
var modele = document.getElementById('modele3d').value;
window.onload = function() {
// You may want to place these lines inside an onload handler
CFInstall.check({
mode: "inline", // the default
node: "prompt"
});
thingiurlbase = "";
thingiview = new Thingiview("viewer");
thingiview.setObjectColor('#e4e5e6');
thingiview.initScene();
thingiview.loadSTL('../../images/'+modele);
log(thingiview.objectColor);
}
</script>
<div id="viewer" style="width:400px;height:300px;margin:auto;position:relative;border:5px solid white;border-radius:5px;"></div>
<script src="scripts/three.min.js"></script>
<script src="three/js/loaders/STLLoader.js"></script>
<script src="three/js/Detector.js"></script>
<script>
var loader = new THREE.STLLoader();
loader.addEventListener( 'load', function ( event ) {
var geometry = event.content;
var material = new THREE.MeshLambertMaterial( { color: 0xd0d1d2, shininess: 5 } );
var mesh = new THREE.Mesh(geometry, material );
// Recherche et envoi des tailles //
geometry.computeBoundingBox();
var largeur = (mesh.geometry.boundingBox.max.x)- (mesh.geometry.boundingBox.min.x);
var hauteur = (mesh.geometry.boundingBox.max.y)-(mesh.geometry.boundingBox.min.y);
var profondeur = (mesh.geometry.boundingBox.max.z)-(mesh.geometry.boundingBox.min.z);
var tailles = largeur + " " + hauteur + " " + profondeur;
var prix = document.getElementById('prototype_prix').value;
if(prix==0){
document.getElementById('prototype_taille1').value = (Math.round(largeur*100))/100;
document.getElementById('prototype_taille2').value = (Math.round(hauteur*100))/100;
document.getElementById('prototype_taille3').value = (Math.round(profondeur*100))/100;
document.getElementById('prototype_taille1_base').value = largeur;
document.getElementById('prototype_taille2_base').value = hauteur;
document.getElementById('prototype_taille3_base').value = profondeur;
}
} );
loader.load( 'images/'+modele);
</script>