Commit Graph

35 Commits

Author SHA1 Message Date
Robert Osfield
e3225a2c4b Added check against the NodePath being empty. 2011-02-11 09:18:36 +00:00
Robert Osfield
bd6009f9f2 Refactored NodeTrackerManipulator to use osg::ObserverNodePath rather than it's only local equivilant. 2011-02-03 17:07:01 +00:00
Robert Osfield
0d641bf483 From Brad Christiansen, "I tried building the latest (as of Sunday) SVN version of OSG using Visual Studio 2010 and it failed due to a missing include. The build completed successfully by adding #include <iterator> to nodeTrackerManipulator.cpp, which is attached." 2010-06-17 11:07:54 +00:00
Robert Osfield
a812f39f40 Conversion of osg::notify to OSG_INFO. 2010-05-28 15:53:32 +00:00
Robert Osfield
2cf3224dd3 From Jan Pecvia, improvements to manipulators and added new manipulator to osgviewer 2010-05-27 13:59:34 +00:00
Robert Osfield
72d699e2b3 Fixed warnings 2010-05-26 08:34:15 +00:00
Robert Osfield
d0f48a2712 From Jan Perciva with changes from Robert Osfield, "I am submitting improved osgGA camera manipulators.
Changes:
- new mouse wheel zoom/movement/center functionality
- ability to fix vertical axis (important for CAD)
- possibility to specify values as absolute values or relative to model size
- kind of backward compatibility by flags passed to constructor
- and much more
- restructuring classes to use kind of hierarchy and standard way of event processing (handle methods). This way, there is much more code reusability and it is more easy to develop new kinds of manipulators.

Briefly, the new architecture keeps MatrixManipulator as base abstract class. StandardManipulator is the feature-rich standard manipulator with two main descendant classes: OrbitManipulator and FirstPersonManipulator. OrbitManipulator is base class for all trackball style manipulators, based on center, rotation and distance from center. FirstPersonManipulator is base for walk or fly style manipulators, using position and rotation for camera manipulation.
"

Changes by Robert: Replaced osg::Vec3 by osg::Vec3d, introduced DEFAULT_SETTINGS enum and usage.  Added frame time member variables in prep for improving throw animation when vysync is off.
2010-05-25 12:05:13 +00:00
Robert Osfield
ff38da1290 Refactor various NodeTracker and MatrixManipulator classes to use the osg::ObserverNodePath and osg::oberserver_ptr<> classes 2010-02-15 20:15:32 +00:00
Robert Osfield
8a6e04b84d Introduce NodeVisitor::className and libraryName() 2008-12-17 12:13:15 +00:00
Robert Osfield
b7fa3f6f3c Replaced IntersectVisitor usage with IntersectionVisitor 2008-10-07 14:19:28 +00:00
Robert Osfield
2a54ff3e4a Introduced CMake build option for compiling double or float versions of osg::BoundingSphere and osg::BoundingBox.
Introduced code in BoundgingSphere, BoundingBox, ProxyNode and LOD to utilise the above settings.

Added Matrix::value_type, Plane::value_type, BoundingSphere::value_type and BoundingBox::value_type command line 
options that report where the types of floats or doubles.
2008-04-03 18:36:50 +00:00
Robert Osfield
095da72020 Fixed typo 2007-07-11 16:06:04 +00:00
Robert Osfield
4979a0ac41 Added handling of when mouse delta is too high, indicating a inconsitency in the
the events.  These changes prevent irratic high speed spinning when releasing the
mouse point in a different screen from when the mouse event started.
2007-06-15 10:12:57 +00:00
Robert Osfield
10235ad0b4 Fixed null pointer derefence bug 2007-06-15 09:29:23 +00:00
Robert Osfield
aa970f2a30 Changed the throw dection time to 0.02 2007-06-12 09:55:40 +00:00
Robert Osfield
2532b5f06e Improved the detection of throwing of the mouse. 2007-06-09 17:58:37 +00:00
Robert Osfield
27173bdf73 Changed debug message to INFO 2007-05-25 10:13:36 +00:00
Robert Osfield
564ee34f76 Added Matrix*::getRotate()/setRotate(Quat), deprecating Matrix*::get(Quat&), Matrix*::set(Quat&) 2006-07-31 17:31:21 +00:00
Robert Osfield
f1c2694c17 Updated copyright years. 2006-07-18 15:21:48 +00:00
Robert Osfield
dbbabf87c6 Converted osgGA::GUIEventAdapter into a concrete class capable of respresenting
keyboard and mouse events.

Added osgGA::EventQueue class to support a thread safe event queue and adaption
of keyboard and mouse events.

Removed osgProducer::EventAdapter as GUIEventAdapter replaces it.

Adapted osgProducer and examples to work with the new changes to osgGA.
2006-03-08 14:09:47 +00:00
Robert Osfield
abed6b7951 Ported NodeTrackCallback and NodeTrackManipulator across to use oberserver_ptr
instead of RefNodePath.

Removed now redundent RefNodePath.
2006-02-27 19:49:47 +00:00
Robert Osfield
0347895c96 Fixed typo in comments and onscreen help. 2005-12-09 20:03:04 +00:00
Robert Osfield
7b1b3b6ace Added copyright notices. 2005-10-24 10:53:01 +00:00
Robert Osfield
fae2416584 Added debugging messages to setTrackerNode 2004-11-02 17:04:06 +00:00
Robert Osfield
bb7c423849 Updates to NodeTrackerManipulator.cpp 2004-10-14 20:35:55 +00:00
Robert Osfield
e4f22c72bd Fixed the home position. 2004-10-14 12:10:10 +00:00
Robert Osfield
792a7fe0d5 Improvements to the NodeTrackManipulator and osgsimulation example 2004-10-14 10:38:29 +00:00
Robert Osfield
3f0e4ea99a Small tweaks to the calculateMovement method. 2004-10-13 13:40:05 +00:00
Robert Osfield
23d518be6e Fixed precision of center computation. 2004-10-13 11:56:09 +00:00
Robert Osfield
790da0776a Made the computeLocalToWorld etc method to use const NodePath's parameters. 2004-09-09 15:14:33 +00:00
Robert Osfield
46c830cc12 Added missing setTrackerMode(TrackerMode) 2004-09-07 06:59:19 +00:00
Robert Osfield
1da72da167 Simplified the TrackMode options 2004-08-31 14:21:46 +00:00
Robert Osfield
08017daf37 Added rescale of quaternion in Matrix::set(Quat), a copy operation in osg::Quat and
extra tracking options in NodeTrackerManipulator.
2004-08-31 09:20:31 +00:00
Robert Osfield
6578655ff3 Added trackmode support for handling rotation of tracked node 2004-08-30 18:53:44 +00:00
Robert Osfield
146f4cd573 Remamed TrackerManipulator to NodeTrackerManipulator 2004-08-30 10:03:18 +00:00