Changeset 8561

Show
Ignore:
Timestamp:
07/11/08 19:07:05
Author:
robert
Message:

Increased the buffer and fixed the buffer calculation when moving backwards into objects

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • OpenSceneGraph/trunk/src/osgGA/DriveManipulator.cpp

    r8538 r8561  
    4848    _velocity = 0.0; 
    4949    _height = getHeightOfDriver(); 
    50     _buffer = _height*1.3
     50    _buffer = _height*2.5
    5151    _pitch = 0.0; 
    5252    //_speedMode = USE_MOUSE_Y_FOR_SPEED; 
     
    7676         
    7777        _height = getHeightOfDriver(); 
    78         _buffer = _height*1.3
     78        _buffer = _height*2.5
    7979    } 
    8080    if (getAutoComputeHomePosition()) computeHomePosition();     
     
    539539        if (distanceToMove>=0.0) signedBuffer=_buffer; 
    540540        else signedBuffer=-_buffer; 
    541  
     541         
    542542        // check to see if any obstruction in front. 
    543543        osg::Vec3d ip, np; 
    544544        if (intersect(_eye,_eye+lv*(signedBuffer+distanceToMove), ip, np)) 
    545545        { 
    546             distanceToMove = (ip-_eye).length()-_buffer; 
     546            if (distanceToMove>=0.0) 
     547            { 
     548                distanceToMove = (ip-_eye).length()-_buffer; 
     549            } 
     550            else 
     551            { 
     552                distanceToMove = _buffer-(ip-_eye).length(); 
     553            } 
     554 
    547555            _velocity = 0.0; 
    548556        }