Skip to content
Snippets Groups Projects
Commit d42418a3 authored by Xavier Gibert's avatar Xavier Gibert
Browse files

S/C multiple views with UP camera vector

parent 7f5ecf28
No related branches found
No related tags found
No related merge requests found
......@@ -208,8 +208,33 @@ function showAndroidToast(toast) {
sunGlow.visible=false;
camera.position = sun.position.clone().normalize().multiplyScalar(getCamDistance());
break;
case "S/C"://Spacecraft
camera.position = init_sc_dir.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
case "S/C-xyz"://Spacecraft
camera.position = init_sc_dir_xyz.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_xyz.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
case "S/C-rear"://Spacecraft
camera.position = init_sc_dir_rear.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_rear.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
case "S/C-front"://Spacecraft
camera.position = init_sc_dir_front.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_front.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
case "S/C-top"://Spacecraft
camera.position = init_sc_dir_top.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_top.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
case "S/C-bottom"://Spacecraft
camera.position = init_sc_dir_bottom.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_bottom.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
case "S/C-left"://Spacecraft
camera.position = init_sc_dir_left.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_left.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
case "S/C-right"://Spacecraft
camera.position = init_sc_dir_right.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_right.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
default://xyz
camera.position = new THREE.Vector3(getCamEquilater(),getCamEquilater(),getCamEquilater());
......
......@@ -89,7 +89,22 @@ This three.js demo is part of a collection at
var torus_tube = 0.5;
var sc_scale = 1.5;
var init_sc_dir = new THREE.Vector3(0,0,-1);
var init_sc_dir_xyz = new THREE.Vector3(-0.577,0.577,-0.577);
var init_sc_up_xyz = new THREE.Vector3(0.577,0.577,0.577);
var init_sc_dir_rear = new THREE.Vector3(0,0,-1);
var init_sc_up_rear = new THREE.Vector3(0,1,0);
var init_sc_dir_front = new THREE.Vector3(0,0,1);
var init_sc_up_front = new THREE.Vector3(0,1,0);
var init_sc_dir_top = new THREE.Vector3(0,1,0);
var init_sc_up_top = new THREE.Vector3(0,0,1);
var init_sc_dir_bottom = new THREE.Vector3(0,-1,0);
var init_sc_up_bottom = new THREE.Vector3(0,0,1);
var init_sc_dir_left = new THREE.Vector3(1,0,0);
var init_sc_up_left = new THREE.Vector3(0,1,0);
var init_sc_dir_right = new THREE.Vector3(-1,0,0);
var init_sc_up_right = new THREE.Vector3(0,1,0);
var sc_axis_lenght = sphere_radius*0.4;
var sc_body_color = 0xDDDDDD;
var sc_window_color = 0x00d4ff;
......
......@@ -2,16 +2,60 @@ function update()
{
//Views
if(selected_view=="Earth"){
switch(selected_view){
case "Earth"://Earth
camera.position = earth.position.clone().normalize().multiplyScalar(getCamDistance());
break;
case "Sun"://Sun
camera.position = sun.position.clone().normalize().multiplyScalar(getCamDistance());
break;
case "S/C-xyz"://Spacecraft
camera.position = init_sc_dir_xyz.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_xyz.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
case "S/C-rear"://Spacecraft
camera.position = init_sc_dir_rear.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_rear.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
case "S/C-front"://Spacecraft
camera.position = init_sc_dir_front.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_front.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
case "S/C-top"://Spacecraft
camera.position = init_sc_dir_top.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_top.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
case "S/C-bottom"://Spacecraft
camera.position = init_sc_dir_bottom.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_bottom.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
case "S/C-left"://Spacecraft
camera.position = init_sc_dir_left.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_left.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
case "S/C-right"://Spacecraft
camera.position = init_sc_dir_right.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up_right.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
break;
default:
controls.update();
break;
}
camera.lookAt(scene.position);
/*if(selected_view=="Earth"){
camera.position = earth.position.clone().normalize().multiplyScalar(getCamDistance());
}else if(selected_view=="Sun"){
camera.position = sun.position.clone().normalize().multiplyScalar(getCamDistance());
}else if(selected_view=="S/C"){
camera.position = init_sc_dir.clone().applyQuaternion(spacecraft.quaternion.clone().normalize()).multiplyScalar(getCamDistance());
camera.up = init_sc_up.clone().applyQuaternion(spacecraft.quaternion.clone().normalize());
}else{
controls.update();
}
camera.lookAt(scene.position);
camera.lookAt(scene.position);*/
//Ligts
light.position.set(camera.position.x,camera.position.y,camera.position.z);
......
......@@ -10,6 +10,12 @@
<item>-Z</item>
<item>Earth</item>
<item>Sun</item>
<item>S/C</item>
<item>S/C-xyz</item>
<item>S/C-rear</item>
<item>S/C-front</item>
<item>S/C-top</item>
<item>S/C-bottom</item>
<item>S/C-left</item>
<item>S/C-right</item>
</string-array>
</resources>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment