Commit Graph

250 Commits

Author SHA1 Message Date
Robert Osfield
7927335edf Added support for VERTICAL_SPILT and HORIZONTAL_SPLIT stereo modes. 2002-03-27 10:52:40 +00:00
Robert Osfield
84d2d01163 Added support for osg::MemoryManager which is based upon Paul Nettle's
memory manager published at flipcode.com.  This can be turned on
with the OSG_USE_MEMORY_MANGER option which then uses custom global
new and delete operators as well as provide osgNew and osgDelete macro's
which add ability to log line and file from which calls are made.

Updated osg,osgUtil,osgDB,osgText and osgPlugins/osg to use osgNew/osgDelete,
and fixed memory leaks highlighted by the new memory manager.
2002-03-26 23:52:52 +00:00
Robert Osfield
b53b3038eb _cullMaskRight was not being initialized in the constructor which was
resulting in some sporadic problems when running stereo - occoasionally the
right eye view wouldn't appear!
2002-03-21 11:57:16 +00:00
Robert Osfield
8c9609b331 Added the fallback of intersecting with the a drawables bounding box, if the drawable
isn't a GeoSet and hence supported by the IntersectVisitor's GeoSet primitive
intersections code.
2002-03-20 11:22:06 +00:00
Robert Osfield
49e7be88a7 Fixed the MS version number check in Optiizer.cpp. Fixes to memory handling
in ReaderWriterDW.cpp.  Submissions from Geoff Michel.
2002-03-18 22:03:28 +00:00
Robert Osfield
c49c62ee15 Integrated various changes worked on at the Glasgow Science Center. Changes
include change the CameraManipulators so they work with double for time
instead of float.  Also added support for DataType to osg::StateAttribute
and StateSet so that they can be set to either STATIC or DYNAMIC, this
allows the optimizer to know whether that an attribute can be optimized
or not.
2002-03-14 17:34:08 +00:00
Robert Osfield
e80496d5db Changed Texture so that is use lazy updating on texture paramters (Filter/Wrap)
mode by using a _texParamtersDirty flag in combination with an
applyTexParamters(State&) method which does the paramters setting in one
tidy bundle.  This new implementations replaces the CompileFlags submitted
yesterday.

Simplified NodeCallback by remove osg::NodeCallback::Requirements as they
are no longer needed.

Fixed comments in Drawable.

Put guards around cosf definations so that they are only used under Win32/Mac.

Fixed warning in CullVisitor.
2002-03-14 16:01:21 +00:00
Don BURNS
d0ee300405 Fixed DrawCallback in Drawable and added CullCallback to Drawable
Cull Visitor now checks for a Drawable's CullCallback and calls it
if it exists.  It then prunes based on the return value (bool) of the
cull callback.
2002-03-13 22:44:22 +00:00
Robert Osfield
a6aa57a255 Added support for seperate traversal masks for standard, left and right
cull traversals.  This allows one to create seperate rendering for left
and right eyes when doing stereo.
2002-03-03 22:31:46 +00:00
Robert Osfield
b13f7fecf6 Added getInverse implementation to AnimationPath, and added #if guard
to Optimizer.cpp to all compilation on state optimizer when using VS7.
2002-03-01 09:29:56 +00:00
Robert Osfield
c726abd773 Integrated fixes to the detailed depth calculation in the CullVisitor from
Sasa, and fix to the IntersectVisitor's management of path from Sean.
2002-02-24 16:49:23 +00:00
Robert Osfield
00e91eec1d Add support for Metrowerks Codewarrior build under Windows. 2002-02-22 17:12:10 +00:00
Robert Osfield
aefaafdbf9 Fixed stereo implementation. 2002-02-18 23:01:09 +00:00
Robert Osfield
685d0b08cb Beginings of reimplementation of stereo support in scene view. Work
not complete yet.
2002-02-14 13:26:37 +00:00
Robert Osfield
f77afd4282 Fixed impostor bug introduced when new modelview matrix was moved entirely
within the cull traversal/draw traversal. The impostor code has been adapted
to the new convention.
2002-02-14 11:06:03 +00:00
Robert Osfield
e87f7cf853 Updated the makefiles to all have the #!gmake reference to force IRIX
compilation using gmake rather than pmake or smake.  This gets round
issues with exporting OSGHOME.
2002-02-13 22:56:47 +00:00
Robert Osfield
2624162b0e Fixed problems with intersection visitor coupled with the viewer. 2002-02-13 00:13:03 +00:00
Robert Osfield
bba95040d6 Added a set of test runs to the makefiles and demos. The demos now have
titles relevenat to their function.
2002-02-12 23:49:24 +00:00
Robert Osfield
3ef8e4b0dd Updates for IRIX build, and docs updates. 2002-02-12 22:51:18 +00:00
Robert Osfield
e6ac4cd190 Updates to Transform handling in CullVisitor, in prep for moving camera
modelview and projection into Transform nodes.
2002-02-11 23:24:23 +00:00
Robert Osfield
386b87d4a0 Cleand up the root Makefile.
Moved CullVisitor/RenderStage/RenderStageLighting across to managing lights
entirely within RenderStageLighting, and changed the management of modelview
matrices so that RenderLeaf now stores the absolute modelview matrix, rather
than a model matrix as done previously. The later allows RenderLeaf's to do
a glLoadMatrix rather than a glPushMatrix/glMultMatrix/glPopMatrix.
2002-02-11 19:51:24 +00:00
Robert Osfield
d9398af300 Fixed a bug in the drive manipulator which was due to it using the local
coords of the intersection point with the scene rather than the world
coord value for that point.  The code now uses
osgUtil::Hit::getWorldIntersectionPoint() method for getting the world coords.

Added support for getWorldIntersectionPoint to Viewer.cpp.

Put and #ifdef around the setting of the default display list visitor so
it nolonger sets in under IRIX. This is a world around to the IR graphics
imbending lighting info into display lists, if the display lists are
created before state is set up it produces lighting artifacts such as
flickering.  Remove the the default display list init visitor removes
these problems, display lists are then built on the fly and drawables
a drawn for the first time.
2002-02-10 17:16:43 +00:00
Robert Osfield
634ef7e3a6 Fixed the osgUtil::Optimizer::FlattenStaticTransformVisitor so that it
does not flatten drawables which have double references to them, but only
one reference with a static transform on it.  This case can't be flattened
but this wasn't picked up.  The code now detects the case correctly.
2002-02-09 22:29:40 +00:00
Robert Osfield
2075eb0100 Added support for parents to Drawables.
Bumped up version numbers in prep for 0.8.44.
2002-02-08 22:55:21 +00:00
Robert Osfield
d12a726d5b Various investigations into culling errors w.r.t matrix inversion resulted in
the conclusion that the osg::Matrix::inverse was broken, have lifted a new
implementation from sgl and it seems to work fine.  Will need further testing
but looks good.
2002-02-07 01:15:15 +00:00
Robert Osfield
95fb921953 Compile fixes. 2002-02-06 08:57:06 +00:00
Robert Osfield
a703130aa0 Have taken a few more steps towards support for view dependant transformations
by adding a ComputeTransformCallback to osg::Transform, and have now removed
the recently added AutoTransform since it is nolonger required.  Have also
updated CullVisitor to account for the new ways for tracking transformation
matrices in the scene.
2002-02-05 21:54:46 +00:00
Robert Osfield
6630cfb455 Fixes for GCC 3.0.3 build. 2002-02-03 19:18:14 +00:00
Robert Osfield
af968b00bd Added first cut at new AutoTransform node which will be used for generating
Transform's during the cull traversal such as for earth/sky etc.
2002-02-03 11:38:20 +00:00
Robert Osfield
41d4360675 Fixed a copy and paste error which was causing compile problems under Windows,
due to a incorrect comparison of objects of different types.
2002-02-02 19:49:47 +00:00
Robert Osfield
4d43f83295 Removed the M_PI defines from include/osg/Math and have use a const double osg::PI etc
in its place.
2002-01-30 15:27:45 +00:00
Robert Osfield
7b370fcb57 Made the LineSegment destructor protected to force users to create segments
on the stack thus ensure that they arn't created locally and have their
memory deleted incorrectly.

Also updated the IntersectVisitor so that it no used osg::ref_ptr<> internally
for storing all data. Have also move the IntersectState helper class to inside the
IntersectVisitor which simplifies the external interface to the class.
2002-01-30 12:09:18 +00:00
Robert Osfield
f612924a45 Added support for shallow and deep copy of nodes, drawables and state, via a
copy constructor which takes an optional Cloner object, and the old
osg::Object::clone() has changed so that it now requires a Cloner as paramter.
This is passed on to the copy constructor to help control the shallow vs
deep copying.  The old functionality of clone() which was clone of type has
been renamed to cloneType().

Updated all of the OSG to work with these new conventions, implemention all
the required copy constructors etc.  A couple of areas will do shallow
copies by design, a couple of other still need to be updated to do either
shallow or deep.

Neither of the shallow or deep copy operations have been tested yet, only
the old functionality of the OSG has been checked so far, such running the
viewer on various demo datasets.

Also fixed a problem in osg::Optimize::RemoveRendundentNodesVisitor which
was not checking that Group didn't have have any attached StateSet's, Callbacks
or UserData.  These checks have now been added, which fixes a bug which was
revealled by the new osgscribe demo, this related to removal of group acting
as state decorator.

method
2002-01-28 21:17:01 +00:00
Robert Osfield
06bd9fda5b Have made osg::Transform more extensible via additions of new getLocalToWorldMatrix()
and getWorldToLocalMatrix(), computeLocalToWorld() and computeWorldToLocal()
methods.

Have updated the CullVisitor, IntersectVisitor and Optimizer to use the
new osg::Transform::getLocalToWorldMatrix() which has the same functionality
as the old getMatrix() but is now supports subclasses of osg::Transform
transparently.

Have added osg::PositionAttitudeTransform as subclass of osg::Transform
which manages the transform as position and attitude via a Vec3 and Quat
respectively.
2002-01-23 22:15:39 +00:00
Robert Osfield
55e0a21dad Fixed problem with Optimzer::removeRedundentNodesVisitor which was removing the
correct redundent groups but for groups which had a single child it was
was not using replaceChild to rettach the child to its parents. It was using
parent->removeChild(group)...parent->addChild(child); which was allow the child
to be attached in a different place than the original group, this broke LOD code.
Have used removeChild instead which solves the LOD problem.
2002-01-23 15:28:31 +00:00
Robert Osfield
f16776da22 Fixed FlattenStaticTransformVisitor bug which related to incorrect handling
of objects which were transformed by multiple matrices at one time - this
cannot be handled in the flattening process (since we only have one piece
of geometry to transform).  This visitor now handles this case by disabling
flattening of any objects and transforms associated in this way.
2002-01-22 19:30:51 +00:00
Robert Osfield
d115e143b5 Temporily commented out the call to the FlatternStaticTransformVisitor to
prevent a bug in handling instance nodes.  Will be commented back in once the
bug has been solved.
2002-01-22 12:03:47 +00:00
Robert Osfield
cf66502fe5 Converted osgUtil::GUIEventAdapter::MouseButtonMask from LEFT_BUTTON etc to
LEFT_MOUSE_BUTTON etc, to prevent classes with #define of LEFT_BUTTON.. when
including certain MS Windows headers. Arhsh Snarfff..
2002-01-19 22:11:05 +00:00
Robert Osfield
974b099135 Fixed the handling of non transparent billboards, since it was not taking into
account any accumulated transforms inherited from above.
2002-01-19 20:34:07 +00:00
Robert Osfield
acf256c466 UPdates to CullVisitor so that it keeps in sync with the new method paramter
change in osg::Billboard.

Removed in instance of an object being passed () brackets, have removed the
brackets to avoid an amiguity with the compiler intepreting it as a function.
2002-01-18 22:36:56 +00:00
Robert Osfield
d1b2fcd0df Fixed ENALBE_ALL_CULLING spelling mistake, have changed it to ENABLE_ALL_CULLING. 2002-01-17 22:41:34 +00:00
Robert Osfield
1fb8f9cb86 First batch of changes required for MacOS X build. Orignal submission from
Phil Atkin, merged by Robert Osfield.
2002-01-16 10:36:20 +00:00
Robert Osfield
6da953e31d Moved the setting of camera fusion distance mode into the handle method so that
it is updated on everyframe to ensure that switching between Drive/Flight
and Trackball happens seemlessly.
2002-01-05 16:18:46 +00:00
Robert Osfield
42fd25c613 Renamed the TOP variable in the Makefiles to OSGHOME. 2002-01-04 20:44:41 +00:00
Robert Osfield
75fe0a6a7f Makefile changes to support Cywin port - submission from Norman Vine, updates
to fix case problems under unix by Robert.
2002-01-03 23:19:18 +00:00
Robert Osfield
e3ad8a87ee Updates for Cygwin port, from Norman Vine. 2002-01-03 21:34:57 +00:00
Robert Osfield
0d4448787b Commented out the smoothing of FLAT_TRIANGLE_STRIP and FLAT_TRIANGLE_FAN
since it was causes problems with any color list which were attached.
2002-01-02 10:59:59 +00:00
Robert Osfield
98c8447ae9 Fixed the osg::Light so that it requires the user to explicitly define which
OpenGL light is being operated on, and also now relies upong the standard
osg::State handling of OpenGL modes to switch on the appropriate lights.

The previous static counter mechansim for the light number was causing a
redundent light to be created when the osg plugin created the first osg::Light
to use a prototype for other osg::Light's to be cloned from in the
.osg plugin execution.

The static count mechanism also prevent the lights modes being controlled
independantly from the setting of the light paramters themselves.  This
meant that a light once created was global, and couldn't be turned off
locally via the OSG's support for OpenGL mode enabling/disabling.  This
has been overcome with the new implementation, the user has complete
flexiblity of when and where to use the different lights at their
disposal.
2001-12-24 21:34:40 +00:00
Robert Osfield
3652bd9015 Various clean ups for the release. 2001-12-24 14:12:38 +00:00
Robert Osfield
19c99dc94c Further work on improving stereo support in the OSG.
Renamed the osg::VisualsSettings to osg::DisplaySettings, and
osgUtil::VisualsRequirementsVisitor to osgUtil::DisplayRequirementsVisitor.

Added support for OSG_SCREEN_HEIGHT into osg::DisplaySettings, and added
a DisplaySettings* to the constructors of osg::SceneView and osg::Camera.
2001-12-21 22:48:19 +00:00
Robert Osfield
734be18471 Updates to the support for stereo in osg::Camera, osgUtil::SceneView and
the CameraManipulators.
2001-12-21 13:07:35 +00:00
Robert Osfield
8aa72d85cf Updates to the camera code related to stereo, adding fusion distance. 2001-12-20 16:35:38 +00:00
Robert Osfield
73e598f3ff Updates to Stereo code. 2001-12-19 15:20:29 +00:00
Robert Osfield
261ab77373 Compilation fixes under for Windows 2001-12-19 01:10:04 +00:00
Robert Osfield
296865e250 Adding support for controlling visual settings via environmental variables
and command line paramters.  Including support for stereo and stencil buffer.
2001-12-19 00:38:23 +00:00
Robert Osfield
bc49a83c51 Updated the Optimzer::FatternStaticTransform visit so by default it ignores
all dynamic transforms, previously it flattened dynamic transforms as well.
2001-12-17 15:05:06 +00:00
Robert Osfield
61643f2ae9 Added std:: infront of endl to ensure compilation under Windows. 2001-12-17 09:29:56 +00:00
Robert Osfield
f5873a82c5 Integrated detailed near clipping plane calculation into osgUtil::CullVisitor,
submitted by Sasa Bistroviae.
2001-12-16 22:20:26 +00:00
Robert Osfield
3952a3484b Updated version numbers to 0.8.43 in prep for the impending release. 2001-12-15 22:44:32 +00:00
Robert Osfield
cb8025d913 Renamed osg::Matric::makeIdent() to osg::Matrix::makeIdentity() to make
it consistent with the rest of the osg::Matrix naming.  Updated OSG
distribution to account for new name.

Added support for the STATIC/DYNAMIC osg::Transform::Type to the .osg
ASCII reader/writer plugin and the flt reader plugin.

Removed the non cost version of osg::Transform::getMatrix() as this could
by pass the dirty mechinism.
2001-12-15 16:56:39 +00:00
Robert Osfield
def6234d8c updates for windows build. 2001-12-15 10:00:43 +00:00
Robert Osfield
8c3a9c6f65 Fixed problem with incorrect combining of some LOD's derived from flt databases.
Problem related to the order of the removal of redudent groups and LOD combining,
the LOD combining only working properly if done first.
2001-12-14 14:25:38 +00:00
Robert Osfield
a4e4d4fa7c Removed all references to using namespace std to help solve compilation problems
under Windows and IRIX.

Also integrated small change to lib3ds from Drew for IRIX compilation.
2001-12-14 10:02:27 +00:00
Robert Osfield
f848c54ba3 Made the following name changes to Matrix and Quat to clean them up and make
the functionality clear given the name.  This will break user code unfortunately
so please be away of the following mapping.

  osg::Matrix::makeTrans(..)?\026 -> osg::Matrix::makeTranslate(..)
  osg::Matrix::makeRot(..)?\026   -> osg::Matrix::makeRotate(..)
  osg::Matrix::trans(..)?\026     -> osg::Matrix::translate(..)

  osg::Quat::makeRot(..)?\026     -> osg::Quat::makeRotate(..)

Also updated the rest of the OSG distribution to use the new names, and
have removed the old deprecated Matrix methods too.
2001-12-12 20:29:10 +00:00
Robert Osfield
b3cfed2cb2 Fixed compilation problems under Windows due to changes in using std::ostream etc. 2001-12-11 16:00:32 +00:00
Robert Osfield
c92b730817 Improved support for anaglyphic stereo.
Integrated texture CLAMP_TO_EDGE, submitted by Ulrich Hertlein.
2001-12-04 12:31:10 +00:00
Robert Osfield
34a4c18a26 Beginings of support for quad bufferd, red/green, and slit screen stereo. 2001-12-02 22:20:46 +00:00
Robert Osfield
6cf543cf8c Added osgUtil::TransformCallback to help with rigid body animation. 2001-11-14 14:10:12 +00:00
Robert Osfield
a434abafd7 Fixes for IRIX build.
Updates to the osg::Transform, adding preMult and postMult methods and
deprecating the old preRotate,preTranslate,preScale.

Updated the rest of the OSG so that it nolonger uses the deprecated
osg::Transform nodes.

Renamed osgUtil::SceneView::setGlobalState() to
osgUtil::SceneView::setGlobalStateSet() so that the name reflects its
functionality better.  Updated osgGLUT::Viewer etc to cope with new
name change.
2001-11-14 14:09:07 +00:00
Robert Osfield
879a753ee2 Fixed osgUtil::Optimizer::FlatternStaticTransformsVisitor so that the
apply(osg::LOD) scaled the ranges in addition to transform the center
point and children.
2001-11-10 15:46:05 +00:00
Robert Osfield
d4926589dc Fixed bug related to osgUtil::Optimizer::FlatternStaticTransform::Visitor's
apply(Billboard& ) method which was apply the accumulated transform to
the billbaord geometry when it should have been applying the matrix without
the transform component.
2001-11-10 13:36:05 +00:00
Robert Osfield
52bc6c2f13 Fixed the IntersectVisitor which was broken by a recent patch to catch parallel
line and traingle combinations.
2001-11-08 13:50:32 +00:00
Robert Osfield
e725547a8a Added a dirtyBound() to osgUtil::Optimizer.
Corrected mispelling of alignment is osg::Text and the osgtext demo.
Added guards for divide bu zero's to osg::IntersectVisitor.
2001-11-07 12:42:08 +00:00
Robert Osfield
5e6153b428 Added methods to support isNaN,isInfinte and valid to osg::Vec* and osg::Math,
and added a guard to IntersectVisitor which uses these new methods to prevent
invalid segments being added.
2001-11-06 10:34:51 +00:00
Robert Osfield
b45aa55555 Integrated updates to stats sent in my Geoff Michel. 2001-11-04 19:29:20 +00:00
Robert Osfield
25c8b05914 Integrated Geoff Michel's updates to Stats code, whilest move all text rendering
back in the viewer from the Statistics header.

Added a osg::State::captureCurrentState(StateSet&) method and a copy constructor
to osg::StateSet.
2001-10-22 22:02:47 +00:00
Robert Osfield
aac507e119 Moved all #include "osg/.." references to #include <osg/..> to aid port to
MacOS.
2001-10-21 21:27:40 +00:00
Robert Osfield
7082abb8ad Added support for an osgUtil::SceneView::init() traversal which is called once
per scene view.  The user can attach a NodeVisitor to do init for them, or
leave it to the default which is to use the osgUtil::DisplayListVisitor
which compiles all display lists and texture objects.  The init traversal
is called automatically by the first call to either app() or cull(), so
should not be called by user code during initialization. This ensures
that a valid graphics context has been established before OpenGL is initialized.

osgUtil::DisplayListVisitor has also been updated to use a bit mask for options, and the addition of
compilation of texture objects (via StateAttribute::compile) has also been
added.
2001-10-20 20:26:36 +00:00
Robert Osfield
20e5751a4a Updated the osgUtil::Optimize so that the call to Optimize::StateVisitor is
#ifdef out under Win32 and STL port isn't being used. This prevents crashes
due to MS's flacky STL implementation.
2001-10-19 15:30:54 +00:00
Robert Osfield
ccc3d3fd8a Added osgUtil::Optimizer which contains four visitor each designed for doing
different types of optimization on the scene graph - state optimization,
flattening static transforms, combining LOD's and removing redundent groups.
The new Optimizer replaces the once seperate OptimizerStateVisitor.
2001-10-19 14:22:02 +00:00
Robert Osfield
54d490e24b Added support for specifying whether view frustum and small feature culling
should be applied to a node or its child with the new osg::Node::setCullingActive()
flag.  A mechanism has been implemented so that if child has its culling disabled
then their parents, all the way up to the root are also have their culling
implicitly disabled.

The osg::CullVisitor has updated to take account of
both the explicit control via setCullingActive and the implicit culling
disabling through children being disabled.

This feature is useful for nodes which don't have a bounding volume to cull
against, earth sky implementations and light sources.

The default osg::Node::_cullingActive is true, i.e. culling is enabled by
default.
2001-10-19 12:56:37 +00:00
Robert Osfield
8aefce4524 Fixed then normal smoothing function in the .3ds loader and the
osgUtil::SmoothingVisitor so that unused normals at left at 0,0,0 insead
of being normalized, which results in (nan,nan,nan).
2001-10-16 15:03:10 +00:00
Robert Osfield
72dc08cd9a Fixed the Flight and Drive manipulators to work with the updated Matrix::rotate
code.
2001-10-14 09:57:33 +00:00
Don BURNS
0e8c2ef89b Quick 'n dirty fix to TrackballManipulator to get the rotations doing the
right things after the Quat fixes.
2001-10-14 05:14:37 +00:00
Robert Osfield
3da57d6d22 Added a osg::DegreesToRadians() and osg::RadiansToDegrees() method to osg/Math,
updated the ReaderWriterBMP.cpp (mods sent in my Geoff Michel) and
moved the osgUtil::Statistics to osg::Statistics in preperation to adding it
to the the Drawable base class.
2001-10-06 20:29:42 +00:00
Robert Osfield
d5ed4e2305 Added an implemention of basic state sorting to the RenderBin, but have commented
out the sort operation as Peformance benifit is currently negligable, will need
to improve on the sort functor to see real benifits.
2001-10-04 14:35:42 +00:00
Robert Osfield
2c6e85442b Integrated changes for MacOSX, submitted by Phil Atkin, with small mods by
Robert Osfield to maintain compatability under Linux.
2001-10-03 21:44:07 +00:00
Robert Osfield
7a7a26c2ea Added include/osg/EarthSky and src/osg/EarthSky to cvs.
Also move osg across to using radians for angular paramters by default.
By defining USE_DEGREES_INTERNALLY you can get the OSG to revert to
the old style degrees. This later feature is deprecated and only meant
for helping comptability in the interim.
2001-10-02 15:59:49 +00:00
Robert Osfield
430c8606e9 Added osg::EarthSky node to the core osg library, and added support for it into
osgUtil::SceneView, osg::CullVisitor, osgPlugin/osg and updated the hangglide
demo to use the new earth sky node.
2001-10-02 11:36:14 +00:00
Robert Osfield
fc1fa57275 Added support for osg::StateSet comparison operators and using this new feature
added support in osgUtil::OptimizeStateVisitor for removing duplicate
StateSet's from the scene graph, previously only duplicated StateAttributes
we're removed.
2001-10-01 23:02:14 +00:00
Robert Osfield
2a9848ea95 *** empty log message *** 2001-09-27 16:34:41 +00:00
Robert Osfield
ba47264c5e *** empty log message *** 2001-09-27 09:44:55 +00:00
Don BURNS
7ae58df42a Synch with 20010921 2001-09-22 02:42:08 +00:00
Don BURNS
b5eb0a1137 Removed Makedepend files 2001-09-20 00:59:26 +00:00
Don BURNS
736e0f73c3 o Added osgUtil::StateOptimizeVisitor which traversing the scene
graph and builds up a map of all StateAttributes and StateSets
    and then removes the duplicates. This promotes state sharing
    throughout the scene graph which inturn can significantly improve
    performance thanks to reduced state changing. Particularily
    effective on datasets where a great deal of duplicated state
exists.
  o Added pure virtual compare(const osg::StateAttribute&)
    method to osg::StateAttribute, and implemented it in all the
    subclasses from StateAttribute. Added <,== & != operator
    on StateAttribute and Matrix to support new StateOptimizeVisitor.
  o Added META_Object, META_Node and META_StateAttribute macros to
    Object, Node and StateAttribute respectively which define the
    standard pure virtual methods such as clone, className
    & isSameKindAs.  Changed all the appropriate header files to
    use these macro's rather define them in each header, these cleans
    up the headers considerably.
  o Corrected the implementation of osg::Light::getType so it correctly
    uses a unique type for each of the OpenGL lights (GL_LIGHT0..
    GL_LIGHT7 relates to osg::StateAttriburte::LIGHT_0..LIGHT_7.
  o Changed the definition of osg::StateStateAttribute::Type to
    is now a unsigned int rather than an enum, and have changed the
    name of the previous Type enum list to be Types.  This makes it
    more consistent with the difination of values found in
StateAttribute
    and also easier to extend with having to cast to an enum.
  o From Pail Fredrikson, updated Maitrx.new implemention which uses
    the same matrix orientation as the original Matrix implemention.
2001-09-19 23:46:48 +00:00
Don BURNS
81f553aaee o Updated Metrowerks files for MacOS. They aren't 100% there yet,
but getting there.

  o First cut of osgcluster demo.  Very simple beginings.  Alas
    I only one PC here so I can't test it in its current guise.

  o New support for NodeCallbacks, via AppCallback attached to
    osg::Node's, and a default osgUtil::AppVisitor which calls them on
    each frame.

  o Support for traversal masks in osg::NodeVisitor, osg::Node
    which allows nodes to be switched on or off via a bit mask.

  o Suppport for traversal number (frame number) and reference time
    into osg::NodeVisitor to handle syncronization of app and cull
    traversals.  This also assist clustering as traversal number
    master to slaves.
2001-09-19 23:41:39 +00:00
Don BURNS
77494207fb Removed files.... synching witn 0.8.42 2001-09-19 21:51:06 +00:00
Don BURNS
7e81f6cfa6 More clean up for synch with 0.8.42 2001-09-19 21:19:47 +00:00
Don BURNS
e8f256a59d Added a bunch of files synched with 0.8.42 2001-09-19 21:08:56 +00:00
Don BURNS
70208ebc06 Initial revision 2001-01-10 16:32:10 +00:00