Ignore:
Timestamp:
Feb 13, 2011, 3:19:38 PM (14 years ago)
Author:
Torben Dannhauer
Message:

Clean up the spacemouse Node tracker a little bit.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • osgVisual/trunk/src/manip_Spacemouse/manip_nodeTrackerSpaceMouse.cpp

    r229 r230  
    316316}
    317317
     318void NodeTrackerSpaceMouse::computeNodeWorldToLocal(osg::Matrixd& worldToLocal) const
     319{
     320    osg::NodePath nodePath;
     321    if (_trackNodePath.getNodePath(nodePath))
     322    {
     323        worldToLocal = osg::computeWorldToLocal(nodePath);
     324    }
     325}
     326
     327void NodeTrackerSpaceMouse::computeNodeLocalToWorld(osg::Matrixd& localToWorld) const
     328{
     329    osg::NodePath nodePath;
     330    if (_trackNodePath.getNodePath(nodePath))
     331    {
     332        localToWorld = osg::computeLocalToWorld(nodePath);
     333    }
     334
     335}
     336
    318337void NodeTrackerSpaceMouse::computeNodeCenterAndRotation(osg::Vec3d& nodeCenter, osg::Quat& nodeRotation) const
    319338{
     
    321340                return;
    322341
    323     osg::Matrixd localToWorld, worldToLocal;
     342    osg::Matrixd localToWorld;
     343        computeNodeLocalToWorld(localToWorld);
     344
    324345    osg::NodePath nodePath;
    325        
    326346        if (_trackNodePath.getNodePath(nodePath) && !nodePath.empty())
    327         {
    328                 worldToLocal = osg::computeWorldToLocal(nodePath);
    329                 localToWorld = osg::computeLocalToWorld(nodePath);
    330347        nodeCenter = osg::Vec3d(nodePath.back()->getBound().center())*localToWorld;
    331         }
    332348    else
    333349        nodeCenter = osg::Vec3d(0.0f,0.0f,0.0f)*localToWorld;
Note: See TracChangeset for help on using the changeset viewer.