Changeset 600 in main for branches


Ignore:
Timestamp:
12/13/11 17:21:46 (9 years ago)
Author:
agalech
Message:

New politic camera 3D

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3D/openPLM/document3D/templates/Display3D.htm

    r599 r600  
    228228 
    229229  
     230  
     231  
    230232 
    231233                <script type="text/javascript"> 
     
    236238                    var main_content; 
    237239                     
    238                      
     240                      var targetXRotation             = 0; 
     241  var targetXRotationOnMouseDown  = 0; 
     242  var mouseX                      = 0; 
     243  var mouseXOnMouseDown           = 0; 
     244 
     245  var targetYRotation             = 0; 
     246  var targetYRotationOnMouseDown  = 0; 
     247  var mouseY                      = 0; 
     248  var mouseYOnMouseDown           = 0; 
     249 
     250  var mouseDown                  = false; 
     251  var mouseOver                  = false; 
    239252                        var targetRotation = 0; 
    240253                        var targetRotationOnMouseDown = 0; 
     
    324337                                //container.addEventListener( 'mousedown', onDocumentMouseDown, false ); 
    325338   
    326                 container.addEventListener( 'mousedown', onDocumentMouseDown, false ); 
     339                //container.addEventListener( 'mousedown', onDocumentMouseDown, false ); 
    327340                container.addEventListener('DOMMouseScroll', wheel, false); 
    328  
     341                 
     342                window.addEventListener('mousemove',      onRendererMouseMove,     false);     
     343                renderer.domElement.addEventListener('mouseover',      onRendererMouseOver,     false); 
     344                renderer.domElement.addEventListener('mouseout',       onRendererMouseOut,      false); 
     345                    renderer.domElement.addEventListener('mousedown',      onRendererMouseDown,     false); 
     346    // renderer.domElement.addEventListener('mouseup',        onRendererMouseUp,       false); 
     347                window.addEventListener('mouseup',        onRendererMouseUp,       false); 
    329348                    //renderer.domElement.addEventListener('touchstart',     onRendererTouchStart,    false); 
    330349                    //renderer.domElement.addEventListener('touchend',       onRendererTouchEnd,      false); 
     
    426445                                var time = new Date().getTime() * 0.0005; 
    427446 
    428                                 //object.rotation.x -= 0.005; 
    429                                 //object.rotation.y -= 0.01; 
    430                                 object3D.rotation.y += ( targetRotation - object3D.rotation.y ) * 0.02; 
    431                                 object3D.rotation.x += ( targetRotationY - object3D.rotation.x ) * 0.02; 
    432  
     447 
     448                                 object3D.rotation.z = (targetXRotation - object3D.rotation.z) * 0.2; 
     449                                 object3D.rotation.x = (targetYRotation - object3D.rotation.x) * 0.2; 
     450                                //object3D.rotation.y += ( targetRotation - object3D.rotation.y ) * 0.02; 
     451                                //object3D.rotation.x += ( targetRotationY - object3D.rotation.x ) * 0.02; 
     452                        //camera.updateMatrix(); 
     453                        //object3D.updateMatrix(); 
    433454                                                                 
    434455                                renderer.render(scene, camera); 
     
    524545 
    525546 
     547 
     548  onRendererMouseOver = function(event) { 
     549    mouseOver = true; 
     550    // targetRotation = object.rotation.z; 
     551 
     552  } 
     553 
     554  onRendererMouseDown = function(event) { 
     555    // log("down"); 
     556 
     557    event.preventDefault(); 
     558        mouseDown = true; 
     559     
     560 
     561     
     562        mouseXOnMouseDown = event.clientX - windowHalfX; 
     563        mouseYOnMouseDown = event.clientY - windowHalfY; 
     564 
     565        targetXRotationOnMouseDown = targetXRotation; 
     566        targetYRotationOnMouseDown = targetYRotation; 
     567  } 
     568 
     569  onRendererMouseMove = function(event) { 
     570    // log("move"); 
     571 
     572    if (mouseDown) { 
     573          mouseX = event.clientX - windowHalfX; 
     574      // targetXRotation = targetXRotationOnMouseDown + (mouseX - mouseXOnMouseDown) * 0.02; 
     575          xrot = targetXRotationOnMouseDown + (mouseX - mouseXOnMouseDown) * 0.02; 
     576 
     577          mouseY = event.clientY - windowHalfY; 
     578      // targetYRotation = targetYRotationOnMouseDown + (mouseY - mouseYOnMouseDown) * 0.02; 
     579          yrot = targetYRotationOnMouseDown + (mouseY - mouseYOnMouseDown) * 0.02; 
     580           
     581          targetXRotation = xrot; 
     582          targetYRotation = yrot; 
     583          } 
     584  } 
     585 
     586  onRendererMouseUp = function(event) { 
     587    // log("up"); 
     588    if (mouseDown) { 
     589      mouseDown = false; 
     590      if (!mouseOver) { 
     591 
     592      } 
     593 
     594    } 
     595  } 
     596 
     597  onRendererMouseOut = function(event) { 
     598 
     599    mouseOver = false; 
     600  } 
     601 
     602  onRendererTouchStart = function(event) { 
     603    targetXRotation = object.rotation.z; 
     604    targetYRotation = object.rotation.x; 
     605 
     606 
     607 
     608        if (event.touches.length == 1) { 
     609                event.preventDefault(); 
     610 
     611                mouseXOnMouseDown = event.touches[0].pageX - windowHalfX; 
     612                targetXRotationOnMouseDown = targetXRotation; 
     613 
     614                mouseYOnMouseDown = event.touches[0].pageY - windowHalfY; 
     615                targetYRotationOnMouseDown = targetYRotation; 
     616        } 
     617  } 
     618 
     619  onRendererTouchEnd = function(event) { 
     620 
     621    // targetXRotation = object.rotation.z; 
     622    // targetYRotation = object.rotation.x; 
     623  } 
     624 
     625  onRendererTouchMove = function(event) { 
     626        if (event.touches.length == 1) { 
     627                event.preventDefault(); 
     628 
     629                mouseX = event.touches[0].pageX - windowHalfX; 
     630                targetXRotation = targetXRotationOnMouseDown + (mouseX - mouseXOnMouseDown) * 0.05; 
     631 
     632                mouseY = event.touches[0].pageY - windowHalfY; 
     633                targetYRotation = targetYRotationOnMouseDown + (mouseY - mouseYOnMouseDown) * 0.05; 
     634        } 
     635  } 
     636 
     637 
    526638                 
    527639 
Note: See TracChangeset for help on using the changeset viewer.