Commit Graph

856 Commits

Author SHA1 Message Date
Robert Osfield
726d680184 Removed the test aginst a iterator as a bool. 2002-06-27 09:56:30 +00:00
Robert Osfield
7c95922300 Ported LWO loader across to use osg::Geometry. Work not quite complete,
as we need to retesselate any concave polygons that can exists in these
datasets.
2002-06-26 21:08:17 +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
bdafc27d9c Ported pfb, txp and obj loaders across to use osg::Geometry. 2002-06-26 14:34:04 +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
1ceb0b60a8 Fixes for Cygwin build from Norman Vine. 2002-06-25 20:47:42 +00:00
Robert Osfield
3765631cd7 Fix to Quat::slerp so that it interpolates along the shortest path. 2002-06-25 20:36: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
336c47e5fe Fixed osgText::Text::DrawModeType::ALIGNEMENT spelling mistake, now
is ALIGNMENT.
2002-06-24 21:44:27 +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
d174f60f8c Added required std:: to front of endl to fix Win32 build. 2002-06-24 12:53:27 +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
bbc129e5c6 Compile Fixes for Win32. 2002-06-22 15:46:43 +00:00
Robert Osfield
7dd82beaa9 Temporarily removed the references to multi-texturing calls. 2002-06-21 19:24:43 +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
53b6d0c92e Bug fix to the size calculation of bmp images, changed both the reading and
writing of images.
2002-06-21 15:14:29 +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
4f4f68e961 Added support for reading the new OSG_MAX_TEXTURE_SIZE environmental variable
inside the osg::Image::ensureValidSizeForTexturing() method. The
smallest of GL_MAX_TEXTURE_SIZE and OSG_MAX_TEXTURE_SIZE is used for the
final max texture size.

This new env. var. allows users to deliberate cap the size of their textures
so they can test whether their models are limited by texture memory.  If
reducing the max texture size increases performance then you are limited
by texture memory!
2002-06-19 18:45:05 +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
b12e36cede Added computation of the bounding volume of osg::OccluderNodes.
Added support for osg::BoundingSphere::expandBy*(osg::BoundingBox) and have
added osg::BoundingSphere/Box::valid() which deprecates isValid(), this
is to be more consistent with other classes in the OSG.
2002-06-19 15:18:47 +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
d3b4a36447 Added the length argument to a std::string argument, under Linux it
compiled with the default value npos, under Windows it broke the build,
add the npost excpilicity should get round this difference in implementation.
2002-06-18 09:09:37 +00:00
Robert Osfield
6767dd49d0 Rewrote the FileUtils support for data and library file paths, moving the
storage of the path lists into osgDB::Registry, and changed the data
structor from a char* to a std::deque.  Changed a names of couple of the
convinience functions in osgDB/FileUtils to better reflect the two
public FilePathList's - DataFilePathList and the LibraryFilePathList.

Added support into the osgDB::Registry::readNode/Image/Object methods
for pushing and popping the path of the current file being loaded.
2002-06-17 21:50:37 +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
25b420ac0e Added computation of the occluders volume, scale it to a ratio of the
frustum.
2002-06-14 16:28:47 +00:00
Robert Osfield
7adb75c572 Added occluder hole test code into the osgoccluder demo. The code works,
but I've commented it out right now as the Geode physically representing
the occluder doesn't yet have a hole in it - just a cosmetic thing.
2002-06-14 14:50:31 +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
c71bf35152 Improvements to the plane clipping code. 2002-06-14 11:27:34 +00:00
Robert Osfield
d7760fbbd4 Further updates to the occlusion culling code, also adding missing OccludeNode
file the .osg plugin.
2002-06-14 08:45:28 +00:00
Robert Osfield
61df1ed6b7 Further work on occlusion culling. 2002-06-13 23:46:02 +00:00
Don BURNS
8c5722577e removed the use of gettimeofday for 32 bit architectures... 2002-06-13 19:39:28 +00:00
Robert Osfield
f2cbab46d4 Added -osgGA to the Makefile list. 2002-06-13 19:10:29 +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
171312e720 IRIX build fix. 2002-06-12 15:43:47 +00:00
Robert Osfield
65a9a8043e Changes for MacOSX build, send in by Bob Kuehne. 2002-06-12 14:57:35 +00:00
Robert Osfield
47bbe8f3cc Fixed the osgDB::getFilePath, osgDB::getSimpleFileName() and osgDB::getStrippedName()
so that they check for both unix style '/' and windows style '\' slashes in
file names.
2002-06-12 14:46:44 +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
d91b848a63 Checked in migration from osgUtil based GUIAdapter code to Neil Salter's
osgGA (Gui Abstraction).  This may break users code, but all it should
require to fix the builds should be a change from
osgUtil::CameraManipulator (etc) to osgGA::CameraManipulator and
include <osgUtil/CameraManipulator (etc) to osgGA/CameraManipulator and
the extra dependency of the link line.
2002-06-09 13:10:09 +00:00
Robert Osfield
0a8d0a255f More more occlusion culling. 2002-06-08 19:58:05 +00:00
Robert Osfield
bf6bf60e21 Added osgoccluder demo, it creates a single quad occluder, but the culling
code is not complete yet, so it won't actually do any occlusion culling,
the demo is here so I can test the evolving occlusion culling code.
2002-06-07 20:03:08 +00:00
Robert Osfield
96a6b3c5c6 Added default IntersectVisitor::_hitReportingMode to be ONLY_NEAREST_HIT. 2002-06-07 13:57:20 +00:00
Robert Osfield
8140035ea8 Fixed a couple of problems with the NodeKit support. 2002-06-07 11:32:18 +00:00
Robert Osfield
f8502a076c Added support for NodeKits to the osgDB::Registry. Object names in .osg
files which have the library::class syntax will automatically invoke
the dynamic loading of either a nodekit or database plugin.
2002-06-07 10:03:49 +00:00
Robert Osfield
9e982e6b32 Fixed crash in loading osg files which have object types which arn't recognized. 2002-06-06 14:00:15 +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
dc00711337 Fixed compile problems under VisualStudio6.0 2002-06-05 14:14:32 +00:00
Robert Osfield
9ba7505d1e Checked in osgParticle, writtten by Marco Jez. 2002-06-05 12:44:55 +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
4d2dbdafac Futher refinement of the new CullingSet support. 2002-06-04 15:56:41 +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
0732701e9d Fix to CullVisitor::popCullingSet(). 2002-06-03 18:38:40 +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
94cd4f6ac7 Changed the ReadResult handling in readNode so that it better handled the case
when a plugin hasn't been found to load a plugin.
2002-06-03 10:44:18 +00:00
Robert Osfield
0ec80bb5ee Fix for IRIX build. 2002-05-29 16:15:10 +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
dc883b0577 Fixed bug in the Use mechansim in Registry.cpp, sumbitted by Macro Jez. 2002-05-28 15:17:45 +00:00
Robert Osfield
6ab93ff61d Adde osgText::Text::setColor/getColor so that osg::Material's need not be
attached to set the text color.
2002-05-28 14:33:13 +00:00
Robert Osfield
e73d4ca5b3 Changes for Cygwin build, sent in by Norman Vine. 2002-05-28 11:40:37 +00:00
Robert Osfield
165cc1bf42 Changed the method of expanding of the near and far planes in
CullVisitor::popProjectionMatrix so that it better handled models of zero
thickness orthogonal to the viewing direction.
2002-05-28 11:39:51 +00:00
Robert Osfield
02fc6ad5f8 Various updates to operations related to cull traversal. 2002-05-28 10:24:43 +00:00
Robert Osfield
f424c86465 Fixed crash associated with searching in an empty filepath. 2002-05-25 09:30:38 +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
553db68bc4 Added osgUtil::CullVisitor::getCurentRenderGraph() and getRootRenderGraph()
methods which replace getRenderGraph(). Small changing of order of push/pop
of StateSet's in SceneView to clean things up.
2002-05-22 12:01:12 +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
116e0cd8c9 Made trilinear filtering the default mode for osg::Texture's. 2002-05-18 08:37:08 +00:00
Robert Osfield
d17714939e Modified the setting of min and mag texture filter modes to produce higher
quality mip maps.
2002-05-18 08:35:09 +00:00
Robert Osfield
e66372a137 Fixed problem with orhographic projections due to a bug in CullVisitor
where it automatically resets the near and far to the values calculated
during cull traversal.  The maths for converting the computed far and near
into clip coordinates was wrong, fixed this and the problem goes away.
2002-05-15 19:58:04 +00:00
Robert Osfield
806efcd0d4 Exposed the CullVisitor::setComputeNearFarMode 2002-05-15 11:27:47 +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
a9ef1ecb1d Reverted change to use decal flag. 2002-05-13 07:30:21 +00:00
Robert Osfield
dd3603c9db Fix for finding windows fonts. 2002-05-10 15:42:27 +00:00
Don BURNS
0304b926d7 Small std::cout fix 2002-05-09 22:48:15 +00:00
Robert Osfield
d6ff23d32f Fix compile problems with osgGA under Windows. 2002-05-09 19:02:35 +00:00
Robert Osfield
d140decb44 Added pixelSize method to CullVisitor, and converted small feature
culling to use the pixelSize method instead of a ratio of radius to
distance from eye point.  setSmallFeatureCullingPixelSize() method
has also been added to provide the user with finer control of small
featyre culling.
2002-05-09 18:59:19 +00:00
Robert Osfield
cf4a3500ec Added new osgGA - GUI Adapter library submitted by Neil Salter. This will
replace the current GUI adapter code inside osgUtil.
2002-05-09 10:31:03 +00:00
Robert Osfield
60fe01dafa Fixed osg::Camera::getModelViewMatrix() so that it handles the EYE_TO_MODEL
transform correctly.

Fixed warning in ClipNode.cpp.
2002-05-07 11:44:24 +00:00
Robert Osfield
8d48cc8dd7 Support added for OpenFlight switch nodes, submission from Brede Johansen. 2002-05-07 11:12:01 +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
ae8076f83b dded osg::ClipNode class for managing OpenGL clipping planes, and osgclip demo. 2002-05-02 00:14:40 +00:00
Robert Osfield
1f1d3b57fe Updated docs.
Fix to pfb Makefile for missing $.
2002-04-26 13:45:01 +00:00
Robert Osfield
06dc1a38df Fix for CisualStudio6.0 build. 2002-04-26 12:06:19 +00:00
Robert Osfield
07ba07dc62 Fixed remaining MAX_PATH usuage, replacing it with the new DX_MAX_PATH, this
should solve compile problems under VisualStudio .NET.
2002-04-26 08:25:51 +00:00
Robert Osfield
26d34ed6d6 Qarning fixes, and updated the date in NEWS to reflect todays release of 0.8.45 2002-04-26 08:16:14 +00:00
Robert Osfield
2bd20f5c6f Fixes for IRIX build.
Fix for a warning under VisualStudio.NET.
2002-04-25 22:09:28 +00:00
Robert Osfield
a1a1876875 Cygwin build fixes. 2002-04-25 22:07:48 +00:00
Robert Osfield
62dc8f7cda Fix for window build. 2002-04-25 21:31:16 +00:00
Robert Osfield
6dbfa3b88d Fixes to .obj plugin from gideon. 2002-04-25 11:30:21 +00:00
Robert Osfield
117e3c2304 A more verbose version of the test script, using each and more memleaks.log
to print out progress and report any memory leaks which have been logged.
The later will only occur with a debug build.  The use of echo and more
makes this version osgtest.bat not portable to windows unfortuntately.
2002-04-25 10:46:11 +00:00
Robert Osfield
88c6a476ca Fixed compile problem under VisualStudio. 2002-04-25 08:54:48 +00:00
Robert Osfield
61b0865309 Merged Bob's changes for MacOSX build. This change is simply the addition of
GLUT_LIB to the link line.  This change should be removed once we fixed the
OSG_LIBS so that it doens't include osgGLUT, however, I'll leave this for another
day...
2002-04-24 20:57:00 +00:00
Robert Osfield
84dd24ce3f Fix for MacOSX build, making sure that the compresed tex image is defined
on all builds by removing the #ifdef's but then changing the name used
in the typedef so it doesn't collide with local implementations.
2002-04-24 20:36:47 +00:00
Robert Osfield
f0e7e8e48b Removed CullViewState from the distribution, moved CullViewState::CullingMode
into CullVisitor, and then removed all references to CullViewState from other
parts of the scene graph.
2002-04-24 20:24:10 +00:00
Robert Osfield
8f3debaf9b Changes for Mac OSX build, sent in by Bob Kuehne 2002-04-24 20:04:34 +00:00
Robert Osfield
b2e6279178 Removed the use of __FUNCTION__ from MemoryManager to remove problems with
VisualStudio .NET compile.

Added support for OSG_NOTIFY_LEVEL and OSG_FILE_PATH into the relevant getenv
routines.  This compliments the exisiting OSGNOTIFYLEVEL & OSGFILEPATH which
are deprecated but still supported.  The OSG_ version are more consistent
with the rest of the env variables used in the OSG.
2002-04-24 14:52:53 +00:00
Robert Osfield
20b5e59dfd Fix for the Cygwin build related to the new FileUtils_Unix not using the
Windows PATH environmental variable for searching for libraries.  Sent in
by Norman Vine.

Reoder of the makedefs/makedirdefs to fix Mac OSX compilation. Sent in by
Bob Kuehne.
2002-04-24 08:50:03 +00:00
Robert Osfield
3e92c8d2fe Fixed compilation problem associated wirh moving FileUtils source out into
seperate files.
2002-04-23 15:01:55 +00:00
Robert Osfield
96c790b266 Fixed ordering of paramters in osg::Image constructor to remove warning. 2002-04-23 14:58:33 +00:00
Robert Osfield
3668c050da Seperated out the platform specific implementions of the file search/access
routines - we now have FileUtils_Windows.cpp, FileUtils_Mac.cpp and
FileUtils_Unix.cpp.  The FileUtils_Mac.cpp is based on code submitted
by Josh Portway and add uses the carbon API for searching for files.
2002-04-23 13:59:01 +00:00
Robert Osfield
90112df269 Changed the Windows gauard around so that it only works for VisualStudio
and not Cygwin/Mingw.
2002-04-23 11:03:09 +00:00
Robert Osfield
f4f4423fe7 Added a pragma to get round a VisualStudio warning that I couldn't fix
in any easy way.
2002-04-23 11:02:09 +00:00
Robert Osfield
2d0df88ee4 Added an imageList.clear() to osgbillboard so that its memory would be
cleared before entering the viewer main loop, this removes memorymanager
a reported memory leak due to the viewer using exit() which bypasses
the clean up on main itself.

Added an osgNew to the ReaderWriterRGB.cpp to aid detected of tracking of
memory leaks.
2002-04-23 10:55:45 +00:00
Robert Osfield
a9bf24cf71 Replaced texture compression extension define so that its #ifndef guard used
GL_ARB_texture_compression as natured intended.
2002-04-23 09:06:03 +00:00
Robert Osfield
ac7af8eee5 Fixed warning in swapBytes, simple addded unsigned to the int loop count,
since sizeof() is always an unsigned int.
2002-04-23 08:29:39 +00:00
Don BURNS
ecd2c73c55 Impleneted byte swap for use between machines with different endians. 2002-04-22 23:54:13 +00:00
Don BURNS
043016ce1d Fixed couple of small errors caught by Solaris compiler 2002-04-22 21:45:33 +00:00
Robert Osfield
dcfef4a023 Integrated submission from Boris Bralo:
Supported added for precompiled mip maps stored in osg::Image, and read
by osg::Texture.

Updates to TerraPage loader for support of compressed texture images and
precompiled mip maps.
2002-04-22 21:13:33 +00:00
Robert Osfield
8b30a10375 Added code in hangglide to move the earth sky around with the eye point,
use osg::Transform::ComputeTransformCallback.
2002-04-22 19:41:33 +00:00
Robert Osfield
56dc083330 Added support for compute the near and far planes and then applying to
the current projection matrix into CullVisitor itself.  Similar code to
support this has been moved out of SceneView completely.

Added Matrix:: infront of the definition of the static
osg::Matrix::inverse(Matrix) method which was missing.
2002-04-22 14:54:39 +00:00
Robert Osfield
f515d67f4f Cleaned up the handling of the Viewport with osg::SceneView/RenderStage
and CullVisitor so that the Viewport is now managed as part as the global
stateset so that it can be pushed and popped like the rest of state without
problems.  This makes it easier to have multiple viewports within one
scene graph.
2002-04-22 09:37:17 +00:00
Robert Osfield
4b9473eda9 Fixes the .mlt loading from Ben Discoe. 2002-04-22 09:31:54 +00:00
Robert Osfield
9574ce97d2 Updated TODO list.
Converted AnimationPath so it is now subclassed from osg::Transform::ComputeTransfromCallback()
so that it can be directly attached to the scene to move objects about.

Changed the osg::SateSet::setGlobalDefaults() so that is sets GL_DEPTH_TEST
to ON.

Added guards and creation of default helper classes in osgGLUT::Viewer and
osgUtil::SceneView so that sensible defaults are used when no settings
are used of osg::State/StateSet,osgUtil::RenderStage/RenderGraph/CullVisitor.
2002-04-21 22:05:26 +00:00
Robert Osfield
3d3534dda9 Updated Versions, and NEWS file to reflect impending release of 0.8.45. 2002-04-21 10:11:03 +00:00
Robert Osfield
e3958790a2 Changed the implementation of osg::Quat::makeRotate(heading,pitch,roll) so that
it conforms to the OpenFlight convention of euler angles.  Added documentation
into Matrix and Quat to reflect this.

Added so test code to osgcube for stress testing memory allocation and deallocation.

Commented out the registering of app and cull callbacks in osghud.
2002-04-19 19:55:48 +00:00
Robert Osfield
1131be56dc Fixes for Max OSX build from Bob Kuehne. 2002-04-19 16:22:25 +00:00
Don BURNS
c5f26d78f6 Fixed an assignment that should have been a test 2002-04-19 16:00:15 +00:00
Don BURNS
4624514924 Updated some files sent by Boris Bralo for the txp loader. 2002-04-19 15:34:40 +00:00
Don BURNS
33b4a4cb5f Fixed small typo in src/osgUtil/RenderStage.cpp 2002-04-19 15:02:34 +00:00
Don BURNS
0a2e5565ac Added Bob K's fix 2002-04-19 15:00:57 +00:00
Don BURNS
c6254d5f87 Fixed small typo in SceneView::setDefaults(). 2002-04-18 23:30:06 +00:00
Robert Osfield
4b5e4904ac Fixed VisualStudio .NET warnings in TXP plugin. 2002-04-18 10:38:58 +00:00
Robert Osfield
ab64566b61 Fixed memory leak in FTGL associated with the function of gluTesselate.
Fixed a warnings in the DW plugin.
2002-04-18 09:57:42 +00:00
Robert Osfield
5830c60cef Fixes for warnings under VisualStudio 2002-04-17 11:36:38 +00:00
Robert Osfield
7504312839 Added a gset->computeNumVertices() which was missing, this was causing models
to disappear after application of tri stripping.
2002-04-17 11:29:49 +00:00
Robert Osfield
e17261c45f Changed the osg::Billboard comution so that it get passed in the current
modelview matrix rathan than an identity matrix, this matrix is then modified
locally.

Changed the osg::Matrix set methods so they are inline.

Added a few useful comments to MemoryManager.cpp to help people understand
the assert's better.
2002-04-17 09:48:19 +00:00
Robert Osfield
b02cc80533 Fixed the seveal hunderd warnings in TerraPage loader! 2002-04-16 21:08:46 +00:00
Robert Osfield
3f249fcb57 Fix to TXP plugin to handle to new osg::Image method naming. 2002-04-16 15:44:31 +00:00
Robert Osfield
5deafbda24 Added clearing of seperation band between horizontal/vertical split stereo
areas.
2002-04-16 15:31:46 +00:00
Don BURNS
6428715304 Added makedirdefs via a request from Bob Kheune. This allows us to edit
the DIRS cruft in a single file in the Make directory instead of having
to edit multiple files.  Also edited Makefiles that needed to include
this file.

Also cleaned up txp loader to compile with SunOS.  This needs to be retested
on other platforms.
2002-04-16 15:21:24 +00:00
Robert Osfield
7836540bb3 Added osg::Image::setPixelFormat(..) and setInternalTextureFormat(), and
renamed osg::Image::pixelFormat(), internalTextureFormat(),dataType() to
osg::Image::getPixelFormat() etc.  These changes are to bring it more
into line with the style of the rest of the OSG.

Updated the rest of the distribution to take account for these names changes.
2002-04-16 14:57:39 +00:00
Robert Osfield
2b4008bbbc Purge on warnings under Linux. 2002-04-16 14:09:46 +00:00
Robert Osfield
f8340f9ef5 Removed the cached matrices from osg::Camera, so that
osg::Camrea::getModelViewMatrix() and osg::Camera::getProjectionMatrix() are
calculated on the fly.  Removed various redudent methods, including the
project and unproject methods which are better supported within osgUtil::SceneView.

Added a computeWindowMatrix() method to Viewport, to make it easier to construct
a MV*P*W matrix for converting local coords into screen coords and visa versa.
Converted SceneView and CullVisitor to use this new method.
2002-04-16 11:41:32 +00:00
Robert Osfield
43fa577566 Updates to the flt plugin from Brede Johansen. 2002-04-16 11:36:23 +00:00
Robert Osfield
0c6f09f4c5 Warnings fix. 2002-04-16 08:01:18 +00:00
Don BURNS
f69e1276a9 fixed a few problems that didn't work right with installing demo source
on platforms other than Solaris.
2002-04-16 03:24:41 +00:00
Robert Osfield
9fd7c528f4 Compile fixes for IRIX, submitted by Randall Hopper. 2002-04-15 21:48:43 +00:00
Robert Osfield
5a0f8118b7 Added support for OSG_USE_MEMORY_MANAGER into Windows build. 2002-04-15 21:03:32 +00:00
Robert Osfield
89afe99562 Added Makefile.inst which was not added ealier with the check in osghud. 2002-04-15 19:12:39 +00:00
Robert Osfield
bbef7164db Added CullCallbacks to osg::Node, and osgUtil::CullVisitor. 2002-04-15 13:15:48 +00:00
Robert Osfield
0222f10d27 Added osghud, a head up display demo. 2002-04-15 11:03:31 +00:00
Robert Osfield
1c1b29809b Fixes to warning in Win32 build 2002-04-15 10:59:16 +00:00
Robert Osfield
83a142b944 Fixed the copying of LongIDRecord's strings in flt plugin so it now uses the record length-4,
to create the string. Also Removed some in appropriate comments from LongIDRecord, since they
were obvious and hang over of a copy and paste job on the code.
2002-04-15 08:51:11 +00:00
Robert Osfield
1c4de0e1d2 Fixed display problem with the HUD in osgtext which was caused by the
new mods to SceneView not honouring the z near/far calculation flag.
2002-04-15 08:09:02 +00:00
Robert Osfield
c43607c14d Added support for specificing the eye mapping and seperation between the
horizontal and veritical split stereo modes.

Renamed osg::Image::ensureDimensionArePowerOfTwo() to osg::Image::ensureValidSizeForTexturing().
2002-04-14 22:21:59 +00:00
Robert Osfield
22e8047869 Used a faster method for checking for power of 2 on the image dimensions and
did a check on forcing 16bits textures in osg::Texture (which speeds things
up on the Umea model which is performance bound by texture memory.), the
later check is now commented out.
2002-04-14 20:30:43 +00:00
Robert Osfield
09d41789da Fixes to osg::Image::createImage(..), and addition of code to Viewer.cpp to support
output of screen snapshot via 'O'.
2002-04-14 13:41:13 +00:00
Robert Osfield
03e9f63d54 Addition of write .bmp to the BMP plugin. 2002-04-14 12:54:26 +00:00
Robert Osfield
e71b92dbcc Fix for crash in SceneView introduced when ungarded use of _dispalySettings
pointer was added, a if (valid) guard has been added to solve the problem.
2002-04-14 12:53:36 +00:00
Robert Osfield
8a5c6d5102 Clean up for VisualStudio build 2002-04-13 22:19:29 +00:00
Robert Osfield
3f67300c82 Saved workspace from VisualStudio to follow up on missing demo dependancies 2002-04-13 10:18:58 +00:00
Robert Osfield
341ffb2361 Further work on cleaning up SceneView and Camera, in particular moving strereo
support out of Camera and into SceneView. Also enabled the option to set the
projection and modelview matrices directly on SceneView thereby removing the
dependance on osg::Camrea to control the view of the scene.
2002-04-12 18:06:13 +00:00
Robert Osfield
468580a12c Fixes for Win32 build. 2002-04-12 14:05:55 +00:00
Robert Osfield
a44efe01bb Fixes for Win32 build 2002-04-12 09:53:39 +00:00
Don BURNS
14b4b7f98c Solaris PKG distribution now makes a shar (self-extracting shell archived)
changed makepgk to do this.

Changed another one of those pesky cout = std::cout in CullVisitor.cpp
2002-04-12 06:18:41 +00:00
Robert Osfield
6ed233d0d2 Added DataVariance enum and set/get fields to osg::Object to help identify
which objects have values that vary over the lifetime of the object (DYNAMIC)
and ones that do not vary (STATIC).  Removed the equivalent code in
osg::Transform, StateSet and StateAttribute, as these are now encompassed
by the new DataVariance field.

Removed MatrixMode enum from Matrix, and associated fields/parameters from
osg::Transfrom and osg::NodeVisitor, since MatrixMode was not providing
any useful functionality, but made the interface more complex (MatrixMode
was an experimental API)

Added ReferenceFrame field to osg::Transform which allows users to specify
transforms that are relative to their parents (the default, and previous behavior)
or absolute reference frame, which can be used for HUD's, camera relative
light sources etc etc.  Note, the view frustum culling for absolute Transform
are disabled, and all their parents up to the root are also automatically
have view frustum culling disabled.  However, once passed an absolute Transform
node culling will return to its default state of on, so you can still cull
underneath an absolute transform, its only the culling above which is disabled.
2002-04-11 23:20:23 +00:00
Robert Osfield
e85e5a6ce6 Added several new methods to osg::Image to help keep track of memory and added
osg::Image::readPixels to encapsulate glReadPixels.

Reordering of includes in include/osg/Fog and include/osg/Light to remove silly warnings under Visual Studio.
2002-04-11 17:15:07 +00:00
Robert Osfield
421e381f17 Patch to ReadWriter3DS from Mike Connel. 2002-04-11 17:13:16 +00:00
Don BURNS
08522bd7db Backed out bad addition of NewCUllVisitor 2002-04-11 16:05:38 +00:00
Don BURNS
ad95c4b9f6 Somehow, cvs forgot to check in a modified Makefile with NewCullVisitor added
to it... Hm.. anyway this fixes it.
2002-04-11 15:54:49 +00:00
Robert Osfield
d0ebd93441 Fix for Win32 build. 2002-04-11 13:53:46 +00:00
Robert Osfield
e037c79917 Fixed refrences to NewCullVisitor which has now been mapped onto CullVisitor. 2002-04-11 08:24:55 +00:00
Robert Osfield
f2ffbdd469 Copied NewCullVisitor over top of CullVisitor and then removed NewCullVisitor.
Added some defines to Image in prep for writing code to determine how big a
pixel is.
2002-04-10 22:10:07 +00:00
Robert Osfield
360247225e Added new osg::DrawPixels class with encapsulates glDrawPixels as and
osg::Drawable.  Added osg::Image::readPixels to osg::Image.

Made osg::LightSource to default to cullActive set to false to that LightSource
nodes don't get culled by default.
2002-04-10 21:51:34 +00:00
Don BURNS
ef15655ea3 Added (previously omitted) libpng, libjpeg, libtiff, libgif to makedefs
in the Linux section
2002-04-10 01:29:45 +00:00
Robert Osfield
6f65e86057 Further work on removing Camera references from NewCullVisitor and releted
classes, this work paves the way for making osg::Camera an optional
extra rather than a requirement for rendering.
2002-04-09 16:09:19 +00:00
Don BURNS
57248a4bf9 Checking in all Makefile.inst in src/Demos/*. These are the Makefiles
that get installed rather than the build Makefiles.
2002-04-09 15:51:20 +00:00
Don BURNS
30eab4b79a Added pkgadd distribution for Solaris.
Added a cleaner way to install demo source so that installed versions use a
simplified makedefs/makerules.

Small fix to get osgText to compile with Solaris CC.  Constructor declared
with a non-const argument, but implemented with const argument.
2002-04-09 14:55:38 +00:00
Robert Osfield
25fbc557b1 Changed a char* into const char* to fix Solaris build. 2002-04-08 08:23:00 +00:00
Robert Osfield
42a98c780b Fix for VisualStudio's lack of auto_ptr::reset. 2002-04-08 08:22:27 +00:00
Don BURNS
1a51045ea4 Added a stop gap fix for cygwin build. Previous experiements were creating
library and  plugin files that looked like system library and system files
which would have deleted original files on a 'make install'.  Cygwin is not
tested yet, but this needed to get fixed before a cygwin user wiped out his
system library files.
2002-04-07 17:47:03 +00:00
Robert Osfield
1b73f9579e Updates to Makefile to reflect recent .cpp additions such as TextureCubeMap,
MemoryManager etc.
2002-04-06 09:24:51 +00:00
Don BURNS
aa0e398cf7 Fixed a small oversight in the previous bug fix. in GeoSet::computeBound()
_numcoords is NOT necesarily _cindex._size.
2002-04-05 02:49:58 +00:00
Don BURNS
87b7f48453 Edited INSTALL for new make and installation procedures.
Checking in a fix for Norman Vine
Added helprules and help.sh for a long-winded help message if you
'make help'.
2002-04-05 01:52:15 +00:00
Don BURNS
893dc6d65c Added Norman Vine's changes for CYGWIN builds
Added distrules and makerpms for building RPM distributions

Removed old RedHatRPM distribution build directory

Added new dist/RPM directory and placed temporary .spec files (these
are generated by Make/makerpms and are not intended for stand-alone
use, but they keep the directory warm and CVS happy)
2002-04-04 18:01:44 +00:00
Don BURNS
1de448df4a Fixed a small bug in compute bound that caused it to come up with the
wrong number if the coord array was indexed, and containing bogus
(unindexed, yet in-line) numbers.
2002-04-04 00:30:10 +00:00
Don BURNS
e0adca775b Reinstated Norman Vine's TARGET_BASENAME variable in the makefiles and
added prefixes and suffixes to libs and plugins.  ALl this to accomodate
cygwin...

Also added INST_SYS_PREFIX and INST_SHARE_PREFIX for installation, as well
as "standardizing" the install locations for the various platforms.
2002-04-03 17:42:12 +00:00
Don BURNS
3e6638320a The new order for building OSG. All Makefiles are replaced and
the Make directory is left with four files only :
    makedefs
    makerules
    makedirrules
    instrules

These work for all platforms supported so far, which include :
    Linux
    Irix
    Solaris
    MacOSX
    Cygwin
    FreeBSD
2002-04-02 06:44:57 +00:00
Robert Osfield
3351306d80 Added new osg::Projection node, and osgUtil::NewCullVisitor which are work
in progress for the new support for controlling the projection matrix from
within the scene graph.

Also Added osg::State::getClippingVolume(), getProjectionMatrix() and
getModelViewMatrix() with allows drawables to access the current projection,
and model view matrices and the view frustum in local coords to the drawable.
2002-03-31 16:40:44 +00:00
Robert Osfield
2786e4c083 Removed reference to malloc.h, replacing by stdlib.h instead. 2002-03-31 09:54:14 +00:00
Robert Osfield
6ff34d0bcb Warnings fixes, submitted by Randall Hopper. 2002-03-30 21:20:41 +00:00
Robert Osfield
434d7b98e5 Fix for Cygwin build. 2002-03-30 15:13:33 +00:00
Robert Osfield
56cee8c711 Move the applying of Projection and ModelView matrices into osg::State so that
it now maintains references to the last applied matrices, automatically doing
lazy state updating.  This simplifies the various places in the OSG which
were previously doing the applying, add paves the way for managing the
projection matrix within the scene graph.

Remove MemoryAdapter and mem_ptr as they arn't being used, and can potentially
confuse users by their existance.
2002-03-29 17:26:40 +00:00
Robert Osfield
ec4ee5281d Fixes for dos endings in MemoryManager.cpp, and compile fix for osgText for
Cygwin.
2002-03-29 12:23:20 +00:00
Robert Osfield
34c05db393 Fixes for IRIX build. 2002-03-28 23:06:20 +00:00
Robert Osfield
33c89c3be0 Added support for setting the texture subload width and height within
osg::Texture.  The values default to 0, and in this state they are
sizes of the glTexSubImage2D are taken from the source image size.  This
allows the previous setup with no settings for subload size to work as
before.
2002-03-27 22:51:58 +00:00
Robert Osfield
7e2c82f141 Futher updates to MemoryManager, fixed memory leak in osgconv. 2002-03-27 16:31:25 +00:00
Robert Osfield
77ae5ddcb6 Updates to various files, replacing delete calls with osgDelete so that
greater debugging info can be gleaned.
2002-03-27 14:56:47 +00:00
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
651a22453a Added osg::MemoryManger which is currently based on Paul Nettle's memory manager
published at flipcode.  I havn't adopted Paul's macro's for new/delete etc, but use
osg prefixed versions instead to allow greater flexiblity in handling include
ordering.

Have fixed a couple of new/delete[] problems which existed as a result.

To use the MemoryManager to track memory usage simply add
-DOSG_USE_MEMEORY_TRACKING to the compile line.

Have yet to move the osg from using new to osgNew, will do this next.
2002-03-25 23:18:02 +00:00
Robert Osfield
06fcd12598 Fixes for MacOSX build. 2002-03-25 19:04:30 +00:00
Robert Osfield
b7022b7e23 Fixed warning in DisplaySettings.cpp 2002-03-23 21:30:32 +00:00
Robert Osfield
f50c5f7a5e Moved the exit on escape into Window, and added a virtual free method on both
Window an Viewer to clean up the windows, this is now called before exit is
finally called, ensure that more more memroy is clean up prior to exit.
2002-03-23 21:28:25 +00:00
Robert Osfield
1ba7e67e2c Added missing TextureCubeMap.cpp to cvs. 2002-03-21 15:46:34 +00:00
Robert Osfield
03cda7d3f8 Renamed have_applied_mode, have_applied_attribute, apply_mode, apply_attribute
to haveAppliedMode, haveAppliedAttribute, applyMode, applyAttribute to make
it more consistent with the general OSG name convetion.
2002-03-21 12:36:05 +00:00
Robert Osfield
a364875afb Added osg:State:have_applied_mode(mode) and have_applied_attribute(type) to make it
easier to specify which modes and attributes have been modified without
the user requiring to know to what value, or to have an equivilant attribute
to pass to the have_applied_attribute method.  The original have_applied(mode)
and have_applied(attribute) methods have been renamed have_applied_mode(),
have_applied_attribute() as this was required to prevent the mode and type
values colliding during compile (it was causing a compile error when the method
names were the same.)
2002-03-21 12:00:10 +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
Don BURNS
3816a4fcfc Modified files reflect small changes to work with Sun OS port....
Removed redundant README file in osgviews... was a copy of sgv/README.
2002-03-21 07:50:14 +00:00
Robert Osfield
9836af1055 Added osg::TextureCubeMap which encapsulates OpenGL's cube texture mapping. 2002-03-20 22:39:51 +00:00
Robert Osfield
8656adb463 Added a Referenced::unref_nodelete() method which unreferences but does
not delete the object even if its count goes to 0 or below.  This should
only be called in special circumstances, the ReaderWriter::ReadResult
being one of them. This new method has allowed the problem of objects
being multiple referenced on return from readNodeFile() & readImageFile().
2002-03-20 14:03:30 +00:00
Robert Osfield
0b27e5c381 Updates to Texture and TextureCubeMap to clean up the code so they share
much more of the core texture setup code. This largely invloved paramterizing
the applyImmediateMode, which has also been rename applyTexImage to reflect
its functionality better.
2002-03-20 11:24:47 +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
8f02db61e5 Added osg::TextureCubeMap. submission from Brede Johansen. 2002-03-18 23:10:33 +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
Don BURNS
eb0587b5fb Changes required for SUN Solaris port... 2002-03-18 21:56:00 +00:00
Robert Osfield
45de7a5815 Added new osgstereoimage demo which loads two stero paired images to create
a 3D via of photographed scene.
2002-03-17 18:44:47 +00:00
Robert Osfield
0610d76c6a Fix of a delete char array so it used delete []. 2002-03-14 23:19:58 +00:00
Don BURNS
8b15a1f835 Fixed a problem for finding MIPS 64 bit libraries. Was seaching for
LD_LIBRARYN32_PATH instead of LD_LIBRARY64_PATH
2002-03-14 20:29:05 +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
9e92b9b899 Added a TextureCallback which cycles through various filter modes, used
in testing new glTextParamters update functionality.  I have commented out
the call to attaching of the callback so osgtexture outwardly behaves as
before.  The code lies dormant just incase we need to use it for testing
in the future.
2002-03-14 16:42:43 +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
Robert Osfield
3a4efd335a Fix to handling of big/little endian in trpage_readbuf sent in by Randall Hopper,
and a waning fix.
2002-03-14 15:26:55 +00:00
Don BURNS
fea861e013 Fixed compile flags in Texture 2002-03-14 00:07:29 +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
bc30edb9e6 Support added for pivot points, submission from Mike Connel. 2002-03-09 10:54:56 +00:00
Robert Osfield
8a8015c41c Fixed setWindowWidth call to account for width and height correctly. 2002-03-09 10:53:19 +00:00
Robert Osfield
c67950561e TXP plugin changes submitted by Boris Bralo. 2002-03-09 10:52:01 +00:00
Robert Osfield
ab5603e3d4 TXP plugin update from Boris Bralo. 2002-03-09 10:51:09 +00:00
Robert Osfield
689eca77d7 Added file extension guard to .obj reader plugin. 2002-03-04 01:37:18 +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
9727d8ff06 Added a GL vesion number check to LightModel, and small typo fix in Registry. 2002-03-02 09:24:05 +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
084ca39841 Fixes to osgText to improve robustness when running multithreaded multipipe
apps.
2002-03-01 09:28:47 +00:00
Robert Osfield
0439b72da7 Updates to the clamp to border support in osg::Texture. 2002-03-01 09:27:10 +00:00
Robert Osfield
2973ca0a25 Added support for setting the maximum number of graphics contexts that the
OSG has to maintian.
2002-02-28 00:11:31 +00:00
Robert Osfield
384b23ea62 Added an using namespace osg to fix a MipsPro7.3 build error. 2002-02-27 22:12:07 +00:00
Robert Osfield
3444c95261 Integrated support for GL_CLAMP_TO_BORDER_ARB extension to osg::Texture,
submitted by Sasa Bistrovic.
2002-02-27 22:00:47 +00:00
Robert Osfield
ea11548b7b Fixes to DW loader, submitted by Geoff Michel. 2002-02-27 21:57:56 +00:00
Robert Osfield
1bdebcf174 Added new osg::AnimationPath which is contaner for a set of key frames for
defining an animation path.  To be used with osg::Transform etc.
2002-02-27 00:58:54 +00:00
Robert Osfield
7c0eb0f380 Added makeRotate(heading,pitch,roll) to Quat in prep for new classes for
animation paths.
2002-02-26 20:01:04 +00:00
Robert Osfield
260fd17573 Added LightModel.cpp's to Codewarrior files and added definiations for pre gl version 1.2 headers lack of support for color control. 2002-02-25 23:14:27 +00:00
Robert Osfield
e21af2adce Added support for glLightModel functionality via osg::LightModel. 2002-02-25 22:46:38 +00:00
Robert Osfield
f600f6fe4a Added support for glLineStipple via osg::LineStipple state attribute. 2002-02-24 20:55:45 +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
6d267336c1 Fixes to Win32 build of new DX writer plugin. 2002-02-18 21:52:45 +00:00
Robert Osfield
36ae60180f Comment w.r.t OpenDX plugin updated. 2002-02-18 20:48:52 +00:00
Robert Osfield
4abfdb1ebd Added OpenDX writer from Randall Hopper. 2002-02-18 20:46:47 +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
5d1289144c Updated the osgconv support for orientation conversion so that it used
inserted a static transform to do the work of rotating the scene, then
applied a standard osgUtil::Optimizer::FlattenStaticTransformsVisitor
traversal to flatten the transfrom down on to the geometry nodes.
2002-02-13 22:53:58 +00:00
Robert Osfield
2624162b0e Fixed problems with intersection visitor coupled with the viewer. 2002-02-13 00:13:03 +00:00
Robert Osfield
ef0d53ea54 Added sgv -stereo cessna.osg to make test list. 2002-02-13 00:00:20 +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
61e3e0c693 Clean up of TXP plugin for IRIX build. 2002-02-11 22:53:42 +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
aeaa31bd2a Fixed Linux hang of the TXP loader by overriding the default -O2 optimization
level which appears to cause the code to hang, -O works fine for some strange
reason, I havn't found any direct problems in the code.  This may be compiler
bug or a code bug, the bug may go away in later versions of GNUC++, the
problem currently occurs under GCC2.96.
2002-02-11 15:09:52 +00:00
Robert Osfield
6238cef37f Applied fix to transparancy in flt loader. 2002-02-11 12:51:08 +00:00
Robert Osfield
479fc6d2f3 Fixed a make install error on the plugins related to the old definitions for
plugin names hanging around despite being deprecated.  These definiations
confused the make install/make instclean so it tried to link a non existant
library.  Have removed old definitions and everything intalls properly once
more:-)
2002-02-11 02:34:30 +00:00
Robert Osfield
0aab3a38b0 Updated Stats code, sent in by Geof Michel. 2002-02-11 00:40:37 +00:00
Robert Osfield
7bb160d27f Updateds NEWS for the 0.8.44 release.
Change the osg::NodeVisitor::getLocalToWorldMatrix() /
getWorldToLocalMatrix() methods so it do not initilize the matrix being
passed to them, and assume the the users has already initiliazed them
appropriately, such as to take account of camera positions.
2002-02-10 23:19:47 +00:00
Robert Osfield
7d03f8a548 Implemented NodeVisitor's getLocalToWorldMatrix and getWorldToLocalMatrix
to allow users to querry the current accumulated matrix state within the
scene graph.
2002-02-10 22:35:22 +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
a08fc47313 Fixes for MacOSX build. 2002-02-10 11:17:58 +00:00
Robert Osfield
86620891af Fixes to TXP loader for Cygwin and Ming builds. 2002-02-10 10:42:55 +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
6ccb4b20c5 Updates to BMP loader from Geoff Michel. 2002-02-09 21:29:33 +00:00
Robert Osfield
88b6691369 Added std:: infront of string refrences to solve compile problems under gcc 3.0.3.
Also converted to unix file endings so other the windows style files.
2002-02-09 19:46:44 +00:00
Robert Osfield
c999dfb154 Updates to docs and fixes to a few warnings. 2002-02-09 14:29:58 +00:00
Robert Osfield
16ada0fa3b Fix to BMP loader. 2002-02-09 10:50:09 +00:00
Robert Osfield
ed45cccc25 Fixes for cygwin and mingw builds. 2002-02-09 10:24:39 +00:00
Robert Osfield
254d22ec90 Removed further wxsgv files. 2002-02-08 23:07:43 +00:00
Robert Osfield
2fb698f4ca Removed osgWX and wxsgv from the repositry as it is intend to keep the core
distribution clean from GUI examples, these instead should live in the bazaar.
This can better accomodate the many different types of viewer that users are
developming.
2002-02-08 23:04:59 +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
4c5fcd3f61 Fixes for IRIX and Boris Bralo's TerraPage loader. 2002-02-08 09:30:02 +00:00
Robert Osfield
ab45bdf214 Fix for Win32 build. 2002-02-07 01:17:54 +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
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
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
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
08194e04d6 Fixes for Windows build 2002-01-30 18:59:36 +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
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
02ef10fcfa Moved all references to osg::Cloner to osg::CopyOp. 2002-01-29 14:04:06 +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
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
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
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
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
58f72ee2d7 Changes to fix compilation problems on the Sparc.
GeoSet.cpp simply remove rendundent code that had already been commented out.
2002-01-18 22:34:07 +00:00
Robert Osfield
4fbf4db42e Added support for multiple graphics contexts, submission from Max Rhiener.
Alas changed the indenting to use 4 spaces instead of tabs, this irons out
differences when working under Windows and Unix, keeping the identing
consistent.
2002-01-18 22:25:51 +00:00
Robert Osfield
58ead9aead First steps to updating the calcTransform function in Billboard to fix
z axis contraint on rotation axis.
2002-01-18 22:15:59 +00:00
Robert Osfield
baeb396ade Fixed copy constructor which was copying a matrix to unitialized memory. 2002-01-18 19:00:55 +00:00
Robert Osfield
25bb70a86b Made the osg::Timer::tick() method a const method. 2002-01-18 14:11:46 +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
06e0310314 Added support for glutSpecialFunc, glutSpaceballMotion, glutSpaceballRotate and
glutSpaceballRotate into osgGLUT::Window base class.
2002-01-17 22:40:16 +00:00
Robert Osfield
13f06f4f93 Reversed the ordering of setting of OpenGL modes and attributes, so that
attributes are now set first, then modes.  This is keep consistent with
the setting of glColorMaterial and glEnable(GL_COLOR_MATERIAL) as specfied
in OpenGL documentation.
2002-01-16 21:23:29 +00:00
Robert Osfield
1594b762b4 Fixes to makefiles which have become a bit unhinged after MacOS X integration. 2002-01-16 21:20:22 +00:00
Robert Osfield
13ed25221a Added support for billboard in OpenFlight loader. Submission from Nikolaus Hanekamp. 2002-01-16 21:12:02 +00:00
Robert Osfield
92785c864e Integrated the changes to osgPlugin/Makefile's for MacOSX port. 2002-01-16 12:05:22 +00:00
Robert Osfield
d69c38f0ed Changed hardwired char[1024] arrays to char[FILEUTILS_MAX_PATH_LENGTH] and
defined the value to be 2048, this should avoid problems with path lengths
which have been overflowing the 1024 limit (Sasa report this bug). The
real solution is to use std::string throught FileUtils, but this will have
to wait for another day.
2002-01-16 12:03:29 +00:00
Robert Osfield
ad6a1665cc Added quicktime plugin (for Mac's only), submitted by Phil Atkin. 2002-01-16 10:41:55 +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
f7e944c47f Changed the use of std::vector<..>.begin() to &vector<..>.front() in code
from passing the vector contents to the GeoSet::setPrimLengths(..) etc.
methods.  This has been done to fix the compile under the MS .NET compiler
which has changed the definiation of the std::vector<..>::iterator to
a class rather than a pointer.
2002-01-15 23:21:31 +00:00
Robert Osfield
5ed8d680c0 Fix to osgDB::getStrippedName(..) so that handles the case of file without
an extension.
2002-01-15 19:54:55 +00:00
Robert Osfield
ff61505789 Added '# LIBS += -limage' and explanation in comments to pfb Makefile,
submitted by Randall Hooper.
2002-01-15 15:49:02 +00:00
Robert Osfield
3671e77168 Added the set of GL_TEXTURE_GEN_S and _T to code converting pfTexGen to
osg::TexGen. This is try and fix a bug in handling tex gen datasets such
as sj_texgen.pfb.
2002-01-15 12:13:29 +00:00
Robert Osfield
87763acc03 New ajustAspectRatio (ADJUST_NODE) mode added to osg::Camera to fix issue
with integration with vrjuggler, submitted by Allen Bierbaum.
2002-01-15 11:05:00 +00:00
Robert Osfield
686b1abc83 Missing _attachedTransformMode in osg::Camera constructor, fix submitted by
Ben Discoe.
2002-01-12 21:49:07 +00:00
Robert Osfield
9cfef010e0 Change TOP to OSGHOME in makefiles. 2002-01-05 16:19:18 +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