Commit Graph

329 Commits

Author SHA1 Message Date
Robert Osfield
48b3be40e9 Various fixes to constructors to ensure that all variables are initialized. 2002-07-20 23:54:55 +00:00
Robert Osfield
a1c54dc663 Removed the rendundent variables in the ConvexPlanerPolygon as these were
unused and unitialized.
2002-07-20 22:36:55 +00:00
Robert Osfield
4594907832 Small bug fix to osg::BoundingBox::expandBy(x,y,z).
Updated ChangeLog and NEWS for the release.
2002-07-19 15:49:43 +00:00
Robert Osfield
7682e32521 Updates to the Geometry to add more access methods, and updates to Optimizer
to add the new merge primtives option.
2002-07-19 14:19:49 +00:00
Robert Osfield
3cba9a52ef Updates NEWS file for 0.9.0 release.
Added default computeBound() implementation to osg::Drawable which uses
a PrimtiveFunctor to compute the bounding box in a generic way, that
will work for all Drawable subclasses that implement the accept(PrimitiveFunctor&).
2002-07-18 22:35:54 +00:00
Robert Osfield
34be82c1ee Moved get/setUserData from osg::Node into its superclass osg::Object to
allow other subclasses to add their own custom data.
2002-07-18 19:41:52 +00:00
Robert Osfield
ff8b4c001d Rewrote the osg::Drawable::AttributeFunctor and PrimtiveFunctor to make
them more consistent with each other. This does mean an API change, so
dependanct code in the OSG has been updated accordingly.
2002-07-18 15:36:14 +00:00
Robert Osfield
8036901ea1 Rewrote osg:Statistics so that it is PrimitiveFunctor as is now completely
decoupled from osg::Drawable.  The Drawable::getStats() virtual method
no longer exists.

Updated the Viewer to use the osg::Statistics incarnation and reformated stats
to clean it up.
2002-07-18 14:20:01 +00:00
Robert Osfield
7a8eeb3c92 Converted the osg::Material::set/getShininess option to use the standard
OpenGL range of 0.0 to 128.0 instead of the previous normalised shiniess
range. This brings it inline with the way the rest of the OSG uses a
1 to 1 mapping to OpenGL.

Converted the various loaders to use the new range, which is almost all
cases was simply removing the /128.0f which was required before!
2002-07-18 09:55:30 +00:00
Robert Osfield
09bdb10af5 Various fixes to the flt loader, and knock on changes to the osgUtil::Optimizer
to better support removal of seperate osg::Geometry instances where they
share the same state and bindings.
2002-07-18 00:53:03 +00:00
Robert Osfield
3a964a6b93 Updated docs and added osgGA 2002-07-16 20:07:32 +00:00
Robert Osfield
6c8c02792a Fixed the new TemplateArray desctructor. 2002-07-16 10:20:26 +00:00
Robert Osfield
7cf7d8fadb Added protected destrcutor to TemplateArray. 2002-07-16 10:16:34 +00:00
Robert Osfield
e280b50d31 Added osg::UByte4 class, which can be used to represent packed colors.
Changed osg::UByte4Array across to use the new osg::UByte4 class rather
than a GLuint as do previously.

Cleaned up some of the paramters in osg::Vec4.
2002-07-15 22:18:47 +00:00
Robert Osfield
db892e6bfe Added State::disableTexCoordPointersAboveAndIncluding( unit ) method so that
all unsed texture units can be turned off simply within Drawables such
as Geometry and GeoSet. This can be used to prevent bleed of arrays from
one object to the next - which can cause crashes.
2002-07-15 10:03:59 +00:00
Robert Osfield
db888b191c Conveted GeoSet to use the new state::set*Pointer/disable*Pointer methods
to keep the current state valid.
2002-07-13 20:31:30 +00:00
Robert Osfield
d87d27b749 Added MatrixTransform header and source. 2002-07-12 21:08:19 +00:00
Robert Osfield
6f392cdbfa Ported distribution across to use the new osg::MatrixTransform and osg::BlendFunc
class instead of osg::Transform and osg::Transparancy respectively.
2002-07-12 18:12:01 +00:00
Robert Osfield
8128265e09 Have added a #define USE_DEPRECATED_API to include/osg/Export, and
various
osg header and source files to optional compile in deprecated parts of
the
OSG API.

Have renamed osg::Transparency osg::BlendFunc to bring it in line with
the
rest of the OSG's StateAttribute classes which are named after their
OpenGL counterparts.  include/osg/Transparency still exists and is
simply
a typedef to BlendFunc and is enclosed in a #ifdef USE_DEPRECTATED_API
block.

The matrix methods in the osg::Transform class have been
moved/replicated in
a osg::MatrixTransform sublcass from osg::Transform.  The old matrix
functionality is still present in the osg::Transform class but is guard
by #ifdef USG_DEPRECATED_API blocks.  One should now think of
osg::Transform
as being a Transform Node base class.  MatrixTransform has all the
functionality of the original Transform class, so should be used
instead.
2002-07-12 14:25:10 +00:00
Robert Osfield
3edb8a3d18 Added blend color to osg::TexEnv 2002-07-12 10:30:27 +00:00
Robert Osfield
0ea6a7af4a Fixes for Win32 build 2002-07-11 21:08:02 +00:00
Robert Osfield
1d136eab9f Added #define for GL_TEXTURE0_ARB 2002-07-11 18:32:41 +00:00
Robert Osfield
8219a0a63a Added support for multitexturing to osg::State and added osgmultitexture
demo which adds as spherical environment map using texture 1 to any model.
2002-07-11 16:12:24 +00:00
Robert Osfield
c4c97a0f64 Moved the code referencing osg::BoundingBox::isValid() and
osg::BoundingSphere::isValid() across to use the valid() methods, the later
being more consitent with other classes such as osg::ref_ptr<>.
2002-07-11 14:32:21 +00:00
Robert Osfield
cd3c2c0b77 Fixes for Win32 build 2002-07-11 11:36:25 +00:00
Robert Osfield
eca5797ae4 Fixed bug in disabledTexCoordPointer where a '>' was being used where it
should have been a '>='.
2002-07-11 11:33:06 +00:00
Robert Osfield
4372c9a334 changed unsigned int/short/char* references to GLuint,GLushort,GLubyte respectively. 2002-07-11 08:28:09 +00:00
Robert Osfield
5d18f0ee11 Tidied up the types in osg::GeoSet so that the index pointers use GLushort
and GLuint to get round compile issues under MacOSX.
2002-07-10 22:33:08 +00:00
Robert Osfield
8b1e9345df Updates to osg::Drawable::AppCallback and osgprerender demo. 2002-07-10 20:30:57 +00:00
Robert Osfield
27338f57b1 Added app callback to Drawable. 2002-07-10 15:35:47 +00:00
Robert Osfield
0c943945f7 Implemented most of the changes required for supporting multitexturing in
the osg::State/osg::StateSet/osg::StateAttribute and related classes.
2002-07-09 09:35:42 +00:00
Robert Osfield
211a823642 Added comment to reflect Clay Fowlers findings on getting VS to compile
without the Vector wrapper classes.
2002-07-07 22:12:51 +00:00
Robert Osfield
8f4a77ce4c Fixes for Windows build. 2002-07-07 17:42:34 +00:00
Robert Osfield
0801b363f5 Work on supporting multitexturing in State/StateSet/StateAttribute/Geoemtry. 2002-07-07 14:40:41 +00:00
Robert Osfield
5014a4f809 Used typedef's for std::vector<>'s used inside DrawElements implementations.
Added deperecated comment to osg::GeoSet header.
2002-07-04 14:49:37 +00:00
Robert Osfield
5957c21082 Fixed the TriangleFunctor QUAD_STRIP code so that it produces consistent
results.
2002-07-04 09:49:12 +00:00
Robert Osfield
3700e7e2cd Reimplemted the osgUtil::SceneView::setCalcNearFar() functionality to bring
it inline with the CullStack/CullVisitor implementation.  Also added the
setSmallFeatureCullingPixelSize() method and wired them up inside
SceneView.cpp so they set the corresponding CullVisitor paramters.

Intergrated pfImage copying change in the Performer plugin, submission sent in by Ulrich Hertlein
2002-07-02 19:53:18 +00:00
Don BURNS
d2aa4270ce Added support for CullVisitor to contain a osg::State. This used when
cull Callbacks require the contextID for  doing operations on texture
objects, for example.  Modified CullVisitor SceneView and Drawable
2002-07-02 06:22:28 +00:00
Robert Osfield
975e2fe709 Removed commas from the end of enum lists. 2002-06-28 08:47:23 +00:00
Robert Osfield
7eaba69bb6 Added SG_EXPORT which was missing. 2002-06-27 15:18:10 +00:00
Robert Osfield
fb3e705709 Converted the template DrawElements primitive class into three seperate
non templated classes - UByteDrawElements, UShortDrawElements, UIntDrawElements.
2002-06-27 13:15:34 +00:00
Robert Osfield
532a32416f Moved the AttributeArray and Primitive classes into their own header and
source files.
2002-06-27 10:50:19 +00:00
Robert Osfield
90f4aa0515 Added comment to explain #ifdefs for member templates. 2002-06-26 21:11:59 +00:00
Robert Osfield
7bc2a513e7 Added #idef to Export to add check for support for member templates. 2002-06-26 21:10:45 +00:00
Robert Osfield
8094c777b7 Added templated constructor to TemplateArray & DrawElements template to
handle VisualStudio7.0 build.

Ported 3DS across to use osg::Geometry instead of osg::GeoSet.
2002-06-26 17:48:13 +00:00
Robert Osfield
40fefcf335 Ported various demos and support classes over to use the new osg::Geometry class
thus removing dependancy on osg::Geoset from most of the OSG, only loaders
left to port now.
2002-06-26 10:28:17 +00:00
Robert Osfield
cbeeeefdab Added osg::Drawable::PrimitiveFunctor and TriangleFunctor subclass for
querrying the primitive data inside Drawables.  Moved various support
classes over from being osg::GeoSet based to osg::Geometry based.
2002-06-25 20:27:51 +00:00
Robert Osfield
cbb95d0445 Checked in .osg support for the new osg::Geometry class. 2002-06-24 21:37:34 +00:00
Robert Osfield
f2e215bf44 Added conversion to osg::GeoSet::converToGeometry() utility to help the
migration to and testing of the new osg::Geometry class.
2002-06-23 21:43:46 +00:00
Robert Osfield
49ab8f4706 Added new osggeometry demo to test the work on the new osg::Geometry Drawable. 2002-06-21 16:45:45 +00:00
Robert Osfield
ac93c6cdfc Fixed constructor for TemplateArray(const TemplateArray& t,const CopyOp& copyop). 2002-06-21 07:48:05 +00:00
Robert Osfield
476f931eaa Addd new experimental osg::Geometry Drawable which will eventually replace
GeoSet.  Currently doesn't draw anything, and is very much in the
early design stages.
2002-06-20 19:54:08 +00:00
Robert Osfield
d763a47d2e Mods to MemoryManager to make the optimized build produce dummy
implementations for all the public functions found in the header,
this should prevent problems when not compiling in the MemoryManager
under IRIX 64 build.
2002-06-20 18:17:36 +00:00
Robert Osfield
77e1fb7f80 Added support for reading and writing OccluderNode's to the .osg file format. 2002-06-19 16:06:03 +00:00
Robert Osfield
21beb236d2 Added support for occlusion of holes in occluders, and cleaned up the
interface to ShadowVolumeOccluders.
2002-06-19 10:19:10 +00:00
Robert Osfield
b3c26d5634 Changed the osg::LightSource so its Light attribute is now generalised to
be a StateAttribute.  This allows alternative implementations of Lights
other than the standard osg::Light.
2002-06-19 08:34:19 +00:00
Robert Osfield
5e85cd59ab Added support for occluders occluding other occluders, which helps reduce
the number of occluder that will be used in cull traversal to only the
ones that will be effective. Note. Holes in occluders arn't handled in
this occluder occlusion test, will implement this later.
2002-06-18 22:35:48 +00:00
Robert Osfield
aa58ecae2f Clean ups for the Windows build. 2002-06-18 10:18:12 +00:00
Robert Osfield
27412c27c9 Fixes to the occluder culling code to properly disable occluders to prevent
self occlusion.
2002-06-17 09:10:26 +00:00
Robert Osfield
156a9fbaea Fixes for Visual .NET and Mingw builds, and fix MacOSX notify() crash. 2002-06-15 20:57:50 +00:00
Robert Osfield
52c36dde70 Added computation of occluders volume scaled relative to the frustum volume,
all volumes computed in eye coords.
2002-06-15 12:14:42 +00:00
Robert Osfield
73ec80843f Refined the CollectOccluderVisitor so that it checks the subgraph below
a node contains occluders before traversing.
2002-06-14 13:49:59 +00:00
Robert Osfield
61df1ed6b7 Further work on occlusion culling. 2002-06-13 23:46:02 +00:00
Robert Osfield
6888d73554 Added #include <osg/ref_ptr> so that it will compile properly regardless
of include order.
2002-06-13 19:34:27 +00:00
Robert Osfield
4e5a3696e3 Merge Randall's changes. 2002-06-13 18:27:14 +00:00
Robert Osfield
0ebe473eb5 Further work on Occlusion Culling. Most of work is complete, just debugging
required now.
2002-06-13 16:21:00 +00:00
Robert Osfield
8dcb26967c Removed inappropriate inline keyword which was breaking the IRIX build. 2002-06-12 16:23:59 +00:00
Robert Osfield
e467027946 Fix for renaming of ShadowOccluderVolume to ShadowVolumeOccluder. 2002-06-12 13:54:14 +00:00
Robert Osfield
c7e99ff77a Further work on occludision code. 2002-06-12 09:22:30 +00:00
Robert Osfield
fa13d948b5 A little more work on Occlusion culling. 2002-06-11 19:52:55 +00:00
Robert Osfield
247cb3ff7e Checked in Macro Jez's additions to osgText to support .osg IO make it
a fully functioning NodeKit.

Also reimplement notify() to try an prevent a crash which has been caused by
to objects in notify.cpp being initiliazed twice, the second time the auto_ptr
holding the dev/null ofstream was being initilized to 0.
2002-06-11 18:41:57 +00:00
Robert Osfield
e1ba8a6292 Added osg::CollectOccludersVisitor which is a helper class for finding active
occluder in the view frustum, to be used as pre cull traversal.
2002-06-10 13:50:25 +00:00
Robert Osfield
348419219d Created new helper class osg::CullStack to handle the accumulation of projection,
modelview and culling sets, to be used during travesal of the scene graph, such
as the cull traversal.
2002-06-10 11:21:21 +00:00
Robert Osfield
0a8d0a255f More more occlusion culling. 2002-06-08 19:58:05 +00:00
Robert Osfield
99580f2212 Addd libraryName() method to osg::Object in preperation for the osgDB support
for node kits plugins.
2002-06-06 13:25:36 +00:00
Robert Osfield
21a8149aa5 Removed out of date comment on calling dirtyTransform() which no longer exist
in osg::Camera.
2002-06-05 16:11:57 +00:00
Robert Osfield
5feba17410 Added new osg::OccluderNode which subclasses from osg::Group, and will
provide hooks for adding ConvexPlanerOccluders to the scene.
2002-06-05 09:39:04 +00:00
Robert Osfield
f67be7c07f Further work on moving culling functionality from CullVisitor into CullingSet,
in preperation for occlusion culling.
2002-06-04 15:21:24 +00:00
Robert Osfield
ff7a7931fe Warning fix for Windows 2002-06-03 17:54:04 +00:00
Robert Osfield
db78726acf Updates to shadow occlusion culling code. 2002-06-03 17:49:28 +00:00
Robert Osfield
3f84849210 Additions for the support for ConvexPlaneOccluder. Work still underway. 2002-06-03 15:39:41 +00:00
Robert Osfield
f16a539492 Fixes for warnings under VisualStudio 2002-05-29 19:34:01 +00:00
Robert Osfield
ae5e4f848f Added new osgcallback demo, and updated small API changes to improve the
flexiblity of callbacks.

Added beginings of convex planer occlusions culling.
2002-05-28 23:43:22 +00:00
Robert Osfield
a5a267d305 Added pragma to disable warning under VisualStudio.NET. 2002-05-28 16:11:49 +00:00
Robert Osfield
e73d4ca5b3 Changes for Cygwin build, sent in by Norman Vine. 2002-05-28 11:40:37 +00:00
Robert Osfield
02fc6ad5f8 Various updates to operations related to cull traversal. 2002-05-28 10:24:43 +00:00
Robert Osfield
78b7c375d8 Removed , from end of enum. 2002-05-27 06:37:51 +00:00
Robert Osfield
09121a1583 Fixed a bug in the Optimizer::RemoveDuplicateNodesVisitor which was prevent
removal of node which could have been removed.

Added so extra convinience methods to ClippingVolume and utilized them in the
CullVisitor to push and pop only culling planes that are active.
2002-05-23 15:35:12 +00:00
Don BURNS
5ce4a54c0d Fixed spelling error Calander -> Calendar 2002-05-22 19:58:43 +00:00
Robert Osfield
11b8bd1fd9 Changed the public osg::State::applyMode() and applyAttribute methods so that
they dirty the associated state, this helps keep the OpenGL state valid once
out of local drawing routines.
2002-05-22 10:04:28 +00:00
Robert Osfield
bf872fa7ac Renamed osg::State::getCurrentMode/Attribute(..) to
getLastAppliedMode/Attribute() to make it more consistent with the internal
workings of osg::State.
2002-05-21 09:16:31 +00:00
Robert Osfield
b8d8a8be27 Added osg::State::getCurrentMode and osg::State::getCurrentAttribute().
Aded osg::clampAbove(..) and osg::clampBelow() template functions to
include/osg/Math.
2002-05-21 08:59:26 +00:00
Robert Osfield
00f91631c2 Various API updates to suppor light points developments better, but should also
benifit other extensions to rendering.
2002-05-18 08:39:42 +00:00
Robert Osfield
10c3b4e7bf Fixes to new flipVertical/flipHorizontal. 2002-05-14 10:20:55 +00:00
Robert Osfield
7301d1505a Added osg::Image::flipHorziontal and flipVertical, submitted by Brede Johansen. 2002-05-14 09:34:11 +00:00
Robert Osfield
567989839a Added new template versions of a commonly used maths functions. 2002-05-13 21:19:42 +00:00
Robert Osfield
c47e082fa8 Added default values in the constructors of Vec2,Vec3,Vec4 and Quat
default constructors.
2002-05-07 11:08:12 +00:00
Robert Osfield
e296df4632 Added osg::Node::getValidStateSet(). 2002-05-03 22:47:57 +00:00
Robert Osfield
08a4fd5bfc Added support for the managing the StateSet above a LightSource node,
and made it an osg::Group so that it can be used a decorator above a
scene.

Added osgclip demo to the test suite.
2002-05-03 16:47:16 +00:00
Robert Osfield
0977f0de57 Made osg::Viewport::getViewport(..) const. 2002-05-02 22:02:14 +00:00