Commit Graph

354 Commits

Author SHA1 Message Date
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
7c7f195d6e Fix for the handling of lighting in the DW loader. 2002-02-07 01:12:06 +00:00
Robert Osfield
ff571d2690 Added a check to the destructor of Referenced so that it detects referenced
objects that are deleted whilest still having a positive _refCount, such
as when a object has been deleted on the stack, yet other references still
exist for it.  Have put the desctructor implementation in Object.cpp to
avoid adding yet another file with only a couple of lines of code in.
2002-02-07 01:11:20 +00:00
Robert Osfield
b00d103f4e Added callbacks to allow users to modify the underlying functionality of
LOD, Billboard and Drawabel objects.
2002-02-07 01:07:11 +00:00
Robert Osfield
a4ea331f3a Added extensions code submitted by Yefrei. 2002-02-07 01:05:52 +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
7293af59ed Have removed the old lazy initialization of Matrix since it was causing bugs
and adding checks to many mothods which in the end slow it down more than
not intilizing the code!  The code is now simpler, more robust and faster:-)
2002-02-05 21:51:06 +00:00
Robert Osfield
92f68e2669 Added comment to flt2osg's handling of osg::Material setup w.r.t
osg::Material::_colorMode.
2002-02-05 10:49:58 +00:00
Don BURNS
18998a0654 added shademodel to TARGET_INCLUDE_FILES 2002-02-03 22:32:48 +00:00
Robert Osfield
57fb5a0182 Added beginings of new AutoTransform class. 2002-02-03 20:57:31 +00:00
Robert Osfield
6630cfb455 Fixes for GCC 3.0.3 build. 2002-02-03 19:18:14 +00:00
Robert Osfield
c1283c23e8 Removed the trailing ; after namespace {...} declariations in headers
which was being picked as a warning under Codewarrior.
2002-02-03 12:33:41 +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
cc39c462de Updates for Borland compilation. 2002-02-03 11:35:24 +00:00
Robert Osfield
0c63a4b65d Added defined( __BCPLUSPLUS__) to windows export code segments. 2002-02-02 20:07:59 +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
97df94db7e Typo fixed in the header guard. 2002-02-02 10:52:30 +00:00
Robert Osfield
5b978813c3 Fixed clone(CopyOp&) and cloneType() methods which were out of sync with the
new style clone operations.
2002-01-30 19:59:36 +00:00
Robert Osfield
08194e04d6 Fixes for Windows build 2002-01-30 18:59:36 +00:00
Robert Osfield
1aaa46dbe7 Fixes for Windows build. 2002-01-30 16:24:24 +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
9471714ba4 Changes for Borland C++ compiler changes. 2002-01-30 15:02:56 +00:00
Robert Osfield
9489da427d Added osgbillboard project files to the VisualStudio workspace. 2002-01-30 15:02:07 +00:00
Robert Osfield
2695342858 Added osgbillboard demo. The code is main a copy of osgtexture right now,
my plan to do change it to make it a better demo of the different types
of billboard that one can do.
2002-01-30 15:01:02 +00:00
Robert Osfield
34b93a9f9d Removed a Makedepend that didn't belong! 2002-01-30 14:37:47 +00:00
Robert Osfield
c2ac55a44b Fixed the rotation direction of the POINT_ROT_* modes, this was broken by
earlier fixes to the osg::Matrix.
2002-01-30 13:15:59 +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
c72efc1059 Fixes for windows build. 2002-01-29 20:25:45 +00:00
Robert Osfield
f061999b22 Removed the now rendundent DeepCopy and ShallowCopy files. 2002-01-29 14:20:29 +00:00
Robert Osfield
02ef10fcfa Moved all references to osg::Cloner to osg::CopyOp. 2002-01-29 14:04:06 +00:00
Robert Osfield
9a6a96a7e7 Fixed the header guard, which was using the name define as FileUtils.
Problem spotted by Terry Welsh.
2002-01-29 12:55:23 +00:00
Robert Osfield
2487861fbc Have add new osg::CopyOp which replaces last nights osg::Cloner, the new
class now combines Cloner and DeepCopy into one class. Cloner and DeepCopy
will be removed in next commit.

Also have added osgcopy app to Demos which shows how the CopyOp have be
subclassed to create users own specific handling of copying.

Have fixed copy constructor problems in GeoSet which fix the deep copy
problem experienced yesterday.
2002-01-29 12:52:04 +00:00
Robert Osfield
f0174e34a3 A couple of fixes to DeepCopy Cloner. 2002-01-28 21:49:31 +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
7f65110322 Added stateset->setMode(GL_LIGHTING,osg::StateAttribute::OVERRIDE_ON); to scribbed
subgraph so that lighting is always on, this is needed since glMaterial is only
active when lighting is enabled.
2002-01-27 20:28:43 +00:00
Robert Osfield
9f34ae338c Added VisualStudio workspace files for new osgscribe demo. 2002-01-26 20:03:07 +00:00
Robert Osfield
f9f9c577a8 Added new osgscribe demo which demostrates how to create a wireframe
overlay of a model.
2002-01-26 19:48:37 +00:00
Robert Osfield
78fc28be7c Fixed the LOD center and range code that so that the values are now multiple
by the _unitScale to compenstate for different scales in the flt model.  This
_unitScale had already been applied to the geometry data.

Integrated new defaults for the texturing wrap mode, for when now .attr file
is supplied with a flt file.
2002-01-26 14:13:27 +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
9c8c73c77f Updates to osg::Transform to allow it subclassed more easily. 2002-01-23 15:42:36 +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
9a59cf0fe2 Changed the ordering of applying OpenGL modes and attributes back to the original
modes first then attributes since the it was cause a display bug on some
datesets.  It seems that the modes needs enabling before glMaterial's
take affect, at least on the NVidia drivers under Windows and Linux.
The OpenGL reference guide doesn't mention any dependancy so I'm not
sure what the official line is.  Some other OpenGl attribute and modes
need to be applied in that order according to the blue book, however,
drivers, at least the NVidia drivers seem require the opposite.  This may raise
the spectra of before and after mode applies, but this will require extra
support in osg::State and osg::StateAttribute, and would have to be handled
on a per attribute basis, and possibly different of each platform.  Yuck.
2002-01-23 12:04:53 +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
bebcba5151 Updated AUTHORS file to reflect recent submission. 2002-01-22 11:03:46 +00:00
Robert Osfield
9d3a81b715 Added support for node instances to Open Flight loader. Submitted by Yefei He. 2002-01-22 11:03:26 +00:00
Robert Osfield
38b7380294 Fixes to Windows compile. 2002-01-20 19:30:16 +00:00
Robert Osfield
604110b245 Updates to help compilation under gcc 3.03. 2002-01-20 16:24:54 +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