window.ARThreeOnLoad = function() {
ARController.getUserMediaThreeScene({maxARVideoSize: 320, cameraParam: './camera_para-iPhone.dat', facing: { exact: 'environment'},
onSuccess: function(arScene, arController, arCamera) {
document.body.className = arController.orientation;
var renderer = new THREE.WebGLRenderer({antialias: true});
if (arController.orientation === 'portrait') {
var w = (window.innerWidth / arController.videoHeight) * arController.videoWidth;
var h = window.innerWidth;
renderer.setSize(w, h);
renderer.domElement.style.paddingBottom = (w-h) + 'px';
} else {
if (/Android|mobile|iPad|iPhone/i.test(navigator.userAgent)) {
renderer.setSize(window.innerWidth, (window.innerWidth / arController.videoWidth) * arController.videoHeight);
} else {
renderer.setSize(arController.videoWidth, arController.videoHeight);
document.body.className += ' desktop';
}
}
document.body.insertBefore(renderer.domElement, document.body.firstChild);
var light = new THREE.PointLight(0xffffff);
light.position.set(40, 40, 40);
arScene.scene.add(light);
var light = new THREE.PointLight(0xff8800);
light.position.set(-40, -20, -30);
arScene.scene.add(light);
var markerObject3D = new THREE.Object3D()
arScene.scene.add(markerObject3D);
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setPath('/');
mtlLoader.load('final-diandiandian.mtl', function(materials) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.setPath('/');
objLoader.load('final-diandiandian.obj', function(object) {
object.scale.set(2, 2, 2).multiplyScalar(1 / 20);
object.rotation.x = Math.PI / 2;
markerObject3D.add(object);
}, onProgress, onError);
});
function onProgress(xhr) {
console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
}
function onError() {
console.log( 'An error happened' );
}
var flag = 1;
renderer.domElement.addEventListener('click', function(ev) {
markerObject3D.rotation.z= flag * Math.PI/2;
if(flag > 4) {
var imgNode=document.createElement("IMG");
imgNode.src = './red.png';
imgNode.className = 'redbag';
document.body.appendChild(imgNode);
} else {
flag++;
}
}, false);
arController.loadMarker('meituan.patt', function(markerId) {
var markerRoot = arController.createThreeMarker(markerId);
markerRoot.add(markerObject3D);
arScene.scene.add(markerRoot);
});
var tick = function() {
arScene.process();
arScene.renderOn(renderer);
requestAnimationFrame(tick);
};
tick();
}});
delete window.ARThreeOnLoad;
};
if (window.ARController && ARController.getUserMediaThreeScene) {
ARThreeOnLoad();
}