Commit Graph

210 Commits

Author SHA1 Message Date
Robert Osfield
4f72be65dc From Cory Riddell, "I added an _allowThrow bool and get / set accessors to
TrackballManipulator. The purpose of this is to disable throwing when
you release the mouse button while moving the mouse. The default
settings is true (ie, allow throw). The two source files are attached.
"
2009-04-09 14:31:15 +00:00
Robert Osfield
06ef559d91 From Martin Beckett, added get/setScrollWheelZoomDelta() support for controlling the mouse scroll wheel zoom delta. 2009-03-11 10:50:03 +00:00
Robert Osfield
98bd058317 Fixed warnings 2009-01-07 10:32:59 +00:00
Robert Osfield
85fffc2e76 From Roland Smeenk, "Attached you will find an improved Collada plugin to properly support camera's.
A Collada camera will be added to the scenegraph as osg::CameraView. This allows the user to create a set of predefined camera viewpoints. I also added a new MatrixManipulator to osgGA called CameraViewSwitchManipulator and added usage of this to the osgviewer example. This manipulator allows switching between the predefined camera viewpoints. The current design limition I ran into is that a MatrixManipulator only manipulates the ViewMatrix, but for this particular  manipulator I also want to update the projectionMatrix of the camera when switching to a new viewpoint. This is not implemented because I don't know what would be the best way to design it. Any ideas?
 
Furthermore Collada also supports orthographic camera's, where an osg::CameraView only supports a perspective camera. Would it be useful to create a CameraView with customizable optics for this?"
2009-01-05 16:53:29 +00:00
Robert Osfield
8a6e04b84d Introduce NodeVisitor::className and libraryName() 2008-12-17 12:13:15 +00:00
Robert Osfield
946175385f From Ulrich Hertlein, Typo fixes + "optional parameter to RecordCameraPathHandler to control the frame rate for record/playback. Default is 25.0, the environment variable takes preference if set." 2008-12-12 13:41:39 +00:00
Robert Osfield
b7fa3f6f3c Replaced IntersectVisitor usage with IntersectionVisitor 2008-10-07 14:19:28 +00:00
Robert Osfield
9a9c543ffa Ported intersection code to use new osgUtil::LineSegmentIntersector/IntersectionVisitor. 2008-07-05 16:39:28 +00:00
Robert Osfield
e70e3a6d5d Converted TerrainManipulator to use osgUtil::InterectionVisitor rather than the
old IntersectVisitor
2008-07-04 19:16:19 +00:00
Robert Osfield
e09e07d45b Added support for assigning GraphicsContext to individual GUIEventAdapter events,
and use of this within osgViewer::View to better track the sources of events.
2008-06-02 17:34:47 +00:00
Robert Osfield
c10acfcc47 From Bob Kuehne, "he attached are conversions of the 3 main places i found in osg where tokens are used to represent bitmasks with 'magic' numbers, like 32. i've changed these to a more representative bitshift representation, showing clearly in which bit you can expect this token to manifest. ie, converted things like:
from:            DEEP_COPY_STATESETS         = 8,
to:              DEEP_COPY_STATESETS         = 1<<3,

showing clearly that this isn't the _value_ 8, but the _bit_ 8. this is an old pattern i see (and like to promulgate) to make code a bit more readable and maintainable. 
"
2008-04-16 15:23:12 +00:00
Robert Osfield
76e0198007 From Philipp Machler, "We have extended the support for Wacom Tablet devices:
- Mac OS X
  - not only pressure, but tilt and z-rotation is supported now
"
2008-04-11 13:28:09 +00:00
Robert Osfield
11f9575b24 From Melchior Franz, "The GUIEventAdapter header file had KeySymbols for the super and
hyper keys defined already, but these modifiers were missing in
GUIEventAdapter::ModKeyMask, and the EventQueue ingored them as well.

The attached diff/archive adds the missing parts for Super/Hyper
modifier key support.


I'm aware that this might not be supported on all systems/keyboards
out of the box, but decided to submit it anyway because:

- developers are aware of differences between input devices
 (Some mice have scroll wheels, others don't. Some have five or
 more buttons, some have only one. Some keyboards don't have
 numpads, some have AltGr, some don't etc.)

- even if someone relies on Hyper/Super in distributed software,
 this is easy to fix and doesn't create lock-in conditions

- while the names Hyper/Super may only be common on X11, they are
 just symbol names and not OS-specific

- even though some systems might not offer these additional modifiers
 by default, it's likely that all of them have at least 8 modifier
 levels internally, so it should only be a matter of OS configuration
 to make them work

- having super/hyper available is useful to offer a user ways
 to define local key definitions that are safe from collisions with
 predefined "official" key assignments"
2008-04-11 11:10:12 +00:00
Robert Osfield
dbd4bdcd89 Missing checkin 2008-03-14 15:00:37 +00:00
Robert Osfield
6e89dc0d94 From Jean-Sebastien Guay, "I changed osgGA::StateSetManipulator to mirror the
osgViewer::StatsHandler and other handlers which allow you to change the
key(s) you would press to get them to do something. Pretty simple change
but useful in our context and possibly in others too."
2008-03-05 11:33:55 +00:00
Robert Osfield
5f7a2968ac From Bryan Thrall, "UFOManipulator ignores any attached CoordinateFrameCallback; the
attached files fix this (based on 2.2 release).
"
2007-12-21 14:21:21 +00:00
Robert Osfield
f4afa427a7 From Roland Smeenk, "Attached you will find a large set of small typo fixes (mainly in the comments)." 2007-12-10 17:30:18 +00:00
Robert Osfield
b62716d679 Added asView() method to GUIActionAdapter to help out with .NET wrappers. Updated wrappers 2007-10-04 11:20:18 +00:00
Robert Osfield
d5cc0e966f Introduce GUIEventHandler::handleWithCheckAgainstIgnoreHandledEventsMask() methods
to help make it easier to get event handles to ingore events that have already been handled.
2007-09-14 10:44:46 +00:00
Robert Osfield
290adbe7ab From Ole-Morten Duesund, added IgnoreUsedEventsMask. 2007-09-14 10:26:14 +00:00
Robert Osfield
b20d542317 From David Callu, improved consistency of Version strings and add version support
for osgIntrospection and osgManipulator.
2007-09-05 17:12:24 +00:00
Robert Osfield
6831940851 Added setCurrentEventState method 2007-07-13 11:31:56 +00:00
Robert Osfield
b2535d55c6 Introduced new GUIEventAdatper singleton for sharing the current state between
multiple GraphicsWindows, this singleton is accessable via GUIEventEvent::getAccumulatedEventState().

Added use of this new singleton in GraphicsWindow* implementations.

Added WindowSizeHandler to osgkeyboard to help with debugging of event state
between windows.
2007-07-13 11:17:41 +00:00
Robert Osfield
095da72020 Fixed typo 2007-07-11 16:06:04 +00:00
Robert Osfield
691a49d0fa From Paul Melis, fixes to spelling mistakes/typos. 2007-07-11 15:51:17 +00:00
Robert Osfield
e3747b1004 From Rafa Giatan and Robert Osfield, added support for User defined events, by adding
UserData to Events.
2007-05-19 13:39:55 +00:00
Robert Osfield
6d7b5e7ebd From Eric Wing, pedantic warning fixes 2007-04-06 15:36:13 +00:00
Robert Osfield
a01cade782 Added setHandled/getHandled to osgGA::GUIEventAdapter 2007-01-24 12:21:29 +00:00
Robert Osfield
055abec7a3 Added osg::StateSet* parameter to constructor to make it more convinient to set
up the StateSetManipulator and moved the initialization of locally cached states
into the handle method to ensure a representative version of the StateSet is captured
2007-01-23 16:26:15 +00:00
Robert Osfield
c4279bd5f1 Ported following examples to osgViewer:
osgparticleeffects
osgphotoalbum
osgpick
osgpoints
osgpointsprite
osgprecipitation
osgprerender
osgprerendercubemap
osgreflect
osgscalarbar
osgscribe
osgsequence
osgplanets
2007-01-10 13:52:22 +00:00
Robert Osfield
16d1c00a3d Changed the return types of makeCurrent to bool, and added a bool GraphicsContext::releaseContext method
along with implementations in osgViewer.
2007-01-08 19:29:59 +00:00
Robert Osfield
7155f7d1b0 Various work on osgViewer library, including warp point and graphics window resize support 2007-01-01 18:20:10 +00:00
Robert Osfield
84d22f9999 Added new adapter methods to EventQueue to allow the time value of the
event to be specified.
2006-12-26 17:37:58 +00:00
Robert Osfield
2255771b74 Further work osgViewer::Viewer and related classes. 2006-12-20 21:13:29 +00:00
Robert Osfield
c24289315a Fixed comment 2006-11-15 20:24:09 +00:00
Robert Osfield
e0f395fd07 Moved SimpleViewer and GraphicsWindow into their own osgViewer library, updated simpleviewer examples to reflect this change 2006-11-02 12:27:15 +00:00
Robert Osfield
f95a913daa Removed osgGA::GUIEventHandlerVisitor and osgGA::SetSceneVistor classes/headers as
this classes weren't being actively used the distribution, effectively being noops.
2006-10-06 09:54:45 +00:00
Robert Osfield
632df7f3ff Added osgGA::GraphicsWindow base class that derives from osg::GraphicsContext but
adds default overrides its pure virtue methods, and an EventQueue.
2006-10-05 10:06:19 +00:00
Robert Osfield
e0599f652e Added releaseGLObjects to NodeCallbacks, Drawable::DrawCallbacks and wired up
osgProducer to use it when doing cleanup_frame.
2006-10-02 15:38:31 +00:00
Robert Osfield
ba7d27c9b2 From Chris Hanson, "These changes break out the implementation of the fill/wireframe/point, texture,
lighting and backface culling settings from the event handling code in StatesetManipulator
into public methods. The event handler now calls the public methods. This allows user code
to invoke this same functionality from non-keyboard event inputs without clashing with the
keyboard-invoked functionality."

From Robert Osfield, tweaks to the above to kepp the coding style the same as the rest of the OSG, also
made getPolygonMode() const, and updated the wrappers.
2006-10-01 19:19:31 +00:00
Robert Osfield
2ed98b56c9 Added subclassing from osg::Referenced to allow the SimpleViewer to be safely managed on the heap. 2006-09-30 14:10:15 +00:00
Robert Osfield
5c0eb0b013 Added bare bones osgGA::SimpleViewer class to help simplify OSG setup when embedding the OSG
into existing GUI applications, and for one one a single camera, single window is required.
2006-09-25 16:25:53 +00:00
Robert Osfield
6f23173c05 Added comments on the meaning of button value 2006-08-21 20:29:32 +00:00
Robert Osfield
553d017fd9 From Daniel Trstenjak, build fixes for Hpux 11.11, Irix 6.5, Solaris 8 and Aix 2006-08-02 10:43:26 +00:00
Robert Osfield
c0c5e73ff9 From Michael Polak, double click fixes/additions 2006-07-27 12:32:40 +00:00
Robert Osfield
f1c2694c17 Updated copyright years. 2006-07-18 15:21:48 +00:00
Robert Osfield
519157aeab From Vincent Vivanloc, Removed commas from end of enum lists, and removed semi-colon
from end of namespace.
2006-07-12 09:50:45 +00:00
Robert Osfield
e7d9e91525 From Stephan Huber,
"attached you'll find some modifications to Producer, osgGA and
osgProducer to enable Mac OS X support for

+ scrollwheels,
+ mightymouse-srollballs
+ new tracking-pads with scroll feature
+ tablet-support (pressure, proximity and pointertype) (Wacom only tested)

I think there was a bug in the windows-implementation of scroll-wheel
support (wrong order of ScrollingMotion-enum, casting problem) which is
fixed now.

The scrollwheel-code is a bit klunky across platforms, some devices on
OS X can report an absolute delta in pixel-coordinates not only the
direction, so for now there is scrollingMotion (which describes the
direction) and scrolldeltax and scrolldeltay. I decided to leave the
scrollingmotion-stuff to not break old code relying on this."
2006-07-04 14:18:44 +00:00
Robert Osfield
46ad44a9e7 Fixed typo. 2006-06-16 09:28:35 +00:00
Robert Osfield
85edf40fcb Added createEvent() convinience method. 2006-03-15 15:49:21 +00:00
Robert Osfield
d43dbaeadd Build fixes 2006-03-14 13:18:21 +00:00
Robert Osfield
1a16d6d6b0 Added an EventQueue directly into osgProducer::Viewer. 2006-03-13 13:19:37 +00:00
Robert Osfield
fa5ff9d169 Added EventQueue. 2006-03-08 15:40:02 +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
c448e4d791 Began work on making EventVisitor capable of adapting events directly. 2006-03-05 20:46:59 +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
b0869a6f60 Added s/getCenter and s/getRotation methods, and updated wrapper. 2005-11-18 15:00:34 +00:00
Robert Osfield
38a9dc51f8 From Toshiyuki Takeahei, addition of s/getDistance() methods 2005-11-18 14:49:05 +00:00
Robert Osfield
9c93332c03 From Rodger James, changed the Win32 static library compilation support to use
OSG_LIBRARY_STATIC to avoid problems with building libs when not required.
2005-11-18 09:52:24 +00:00
Robert Osfield
35fcaf7bde Convert tabs to spaces. 2005-11-17 17:44:48 +00:00
Robert Osfield
b15b677cc3 From Mikkel Gjøl, addition of paramter set/get methods to osgGA::*Manipulators,
change of ' ' to GUIEventAdapter::KEY_Space, fix to url in Matrix_implementation.cpp.
Syntax fixes by Robert Osfield to above submission fix inconsistencies with normal
OSG coding style.
2005-11-17 11:03:20 +00:00
Robert Osfield
48b69d5b13 From Toshiyuki Takehei, typo fix of getTrackerMode(). 2005-11-14 11:08:16 +00:00
Robert Osfield
9d8fd69fa9 Change the KeySwitchMatrixManipulator so that it two sets of getMatrixManipulator
methods, two that takes an index,two that takes a key value.  Updated the ViewEventHandler
so the it now uses the getMatrixManipulatorWithIndex() method to avoid previous ambiguity.
2005-11-14 11:00:36 +00:00
Robert Osfield
e5685bc1ac Added s/getMaxNumOfTextureUnits control to osgGA::StateSetManipulator, and set the default to 4. 2005-11-11 14:22:57 +00:00
Robert Osfield
258425d649 Bumped the version numbers up to 1.0 in preparation for 1.0-rc1. 2005-11-09 10:49:56 +00:00
Robert Osfield
f26c3da074 From Chris Hanson, "The following files are drop-in replacements for the include/*/Export files to permit
building statically linked osg libraries under Win32."
2005-09-28 14:05:05 +00:00
Robert Osfield
d154c2a4cd From Eric Sokolowsky, warning fixes for g++ 4.0 under Fedora Core 4. 2005-08-25 17:53:01 +00:00
Robert Osfield
72a59527f5 From Marco Jez, added setEventHandled() and getEventHandled() to osgGA::EventVisitor. 2005-07-27 09:37:26 +00:00
Robert Osfield
cf06b40891 Added pragma to remove warnings under VS.8.0 2005-05-24 18:57:13 +00:00
Robert Osfield
b8b6ed8e34 Fixed doxygen comments. 2005-05-20 21:01:57 +00:00
Robert Osfield
dce2fbf7ec From Marco Jez, change of Doxygen docs name of class from UFOManipulator to
osgGA::UFOManipulator, done to avoid automated wrapper issues.
2005-05-14 14:31:37 +00:00
Robert Osfield
03232ec667 Moved osg::Impostor to osgSim::Impostor, as Impostor isn't a core feature. 2005-05-01 19:48:49 +00:00
Robert Osfield
bc83e63bb4 Futher work on adding event and update callbacks to StateSet, Uniform and StateAttributes 2005-04-25 11:05:02 +00:00
Robert Osfield
bba76cfa31 From Tree, removed dependency on Producer 2005-04-22 14:40:06 +00:00
Robert Osfield
678b22ce83 Updated Copyright notices to 1998-2005. 2005-04-14 21:41:28 +00:00
Robert Osfield
476a83bb9c Added MatrixManipulator::s/getIntersectTraversalMask(uint) to allow control
of which subgraphs should be used in intersection calculations.  Updated
Terrain,Drive and UFO manipulator to use this new flag.
2005-03-22 21:06:06 +00:00
Don BURNS
5d10547ac5 Added getCameraByName method to viewer and home(double currentTime) to
MatrixManipulator, UFO, Trackball and ANimation manipulator.
2005-03-20 23:57:17 +00:00
Don BURNS
c332d1f751 Chagned osg::Matrix to osg::Matrixd 2005-03-13 05:02:02 +00:00
Don BURNS
fce7f24347 Added a few things to osgProducer::Viewer to support UFO manipulator and
cleaned up UFOManipulator.
2005-03-12 05:31:26 +00:00
Don BURNS
e59284501b Changed class name to UFO instead of UFOManipulator to conform to the other
manipulators
2005-03-11 17:46:12 +00:00
Don BURNS
a7ac8f5992 Added UFO manipulator 2005-03-11 06:09:16 +00:00
Robert Osfield
ce68304f90 Improved support GUIEventHandler's being node event callbacks. 2005-02-25 23:02:23 +00:00
Robert Osfield
0f61af08bd Added support for new event visitor type into osgGA and osgProducer::Viewer,
and event callback into Drawable.
2005-02-25 14:02:48 +00:00
Robert Osfield
10c3f934f1 Added support for control the pitch of the drive manipulator via the
up and down cursor keys.
2005-02-22 19:19:50 +00:00
Robert Osfield
79a59e596c Tweak to comment. 2005-02-15 09:37:20 +00:00
Robert Osfield
89236b46fd From Mason Menninger, addition of setTrackballSize() parameter. 2005-01-22 16:55:48 +00:00
Robert Osfield
530e08aaa1 Made getHomePosition const. 2004-10-25 17:41:54 +00:00
Robert Osfield
2a904a4dad Added docs 2004-10-15 09:10:36 +00:00
Robert Osfield
bb7c423849 Updates to NodeTrackerManipulator.cpp 2004-10-14 20:35:55 +00:00
Robert Osfield
792a7fe0d5 Improvements to the NodeTrackManipulator and osgsimulation example 2004-10-14 10:38:29 +00:00
Robert Osfield
5747773096 From Tree, changes to better support Java binding generation 2004-09-28 09:14:04 +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
543f4493f6 Removed reference to old CmdLineArgs class 2004-09-01 11:05:57 +00:00
Robert Osfield
da5fa4cbcd Added bool paramter to MatrixManipulator::setHomePosition(,,,bool) to allow
the autocomputehomeposition to be controlled.
2004-09-01 10:18:46 +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
Robert Osfield
075c2f94d0 Fixed getHomePosition 2004-08-26 06:41:09 +00:00