Commit Graph

6595 Commits

Author SHA1 Message Date
Robert Osfield
58fc56aabd Made the local shaders definitions static const char to avoid multiple definiations 2007-05-23 15:14:18 +00:00
Robert Osfield
7673184d01 Added insertion of center point into object polytope 2007-05-23 14:55:59 +00:00
Robert Osfield
6a6f57ad56 Added angular sorting of the points on the plane intersecting the cut plane. 2007-05-23 13:26:21 +00:00
Robert Osfield
d4fab04128 Updated wrappers 2007-05-23 12:35:37 +00:00
Robert Osfield
bfcaba55fb Added platform specific GraphicsWindow* headers to public headers listings 2007-05-23 12:21:20 +00:00
Robert Osfield
30a06a033e From Peter Hrenka, (note from Robert Osfield, renamed GenericPrimitiveFunctor mention below to TemplatePrimitiveFunctor).
"Since we desperately needed a means for picking Lines
and Points I implemented (hopefully!) proper geometrical tests
for the PolytopeIntersector.

First of all I implemented a new "GenericPrimiteFunctor"
which is basically an extended copy TriangleFunctor which also
handles Points, Lines and Quads through suitable overloads of
operator(). I would have liked to call it "PrimitiveFunctor"
but that name was already used...
I used a template method to remove redundancy in the
drawElements method overloads. If you know of platforms where
this will not work I can change it to the style used
in TriangleFunctor.

In PolytopeIntersector.cpp I implemented a
"PolytopePrimitiveIntersector" which provides the needed
overloads for Points, Lines, Triangles and Quads to
the GenericPrimitiveFunctor. This is then used in the
intersect method of PolytopeIntersector.

Implementation summary:
- Points: Check distance to all planes
- Lines: Check distance of both ends against each plane.
  If both are outside -> line is out
  If both are in -> continue checking
  One is in, one is out -> compute intersection point (candidate)
  Then check all candidates against all other polytope
  planes. The remaining candidates are the proper
  intersection points of the line with the polytope.
- Triangles: Perform Line-Checks for all edges of the
  triangle as above. If there is an proper intersection
  -> done.
  In the case where there are more than 2 polytope
  plane to check against we have to check for the case
  where the triangle encloses the polytope.
  In that case the intersection lines of the polytope
  planes are computed and checked against the triangle.
- Quads: handled as two triangles.

This is implementation is certainly not the fastest.
There are certainly ways and strategies to improve it.


I also enabled the code for PolytopeIntersector
in osgkeyboardmouse and added keybindings to
switch the type of intersector ('p') and the picking
coordinate system ('c') on the fly. Since the
PolytopeIntersector does not have a canonical
ordering for its intersections (as opposed to
the LineSegementIntersector) I chaged the
implementation to toggle all hit geometries.


I tested the functionality with osgkeyboardmouse
and several models and it seems to work for
polygonal models. Special nodes such as billboards
do not work.


The next thing on my todo-list is to implement
a an improved Intersection-Structure for the
PolytopeIntersector. We need to know
which primitives where hit (and where).

"
2007-05-23 11:05:59 +00:00
Robert Osfield
9e659c50f1 Added debug timing code 2007-05-23 10:57:46 +00:00
Robert Osfield
c58221ddae Added _firstTimeToInitEyePoint = true to the setAutoRotateMode to force the AutoTransform
to recompute its position on next frame.
2007-05-22 15:17:52 +00:00
Robert Osfield
e346396abd From Roger James, "Here is a small fix for the ac3d plugin geode.cpp. The fix is entirely localised to ac3d::Geode::OutputTriangleStripDARR.
It resolves an issue when processing a DrawArrayLengths with multiple lengths where the vertex indices were incorrect for all but the first chunk."
2007-05-22 14:00:51 +00:00
Robert Osfield
4613269a81 Changed the way the the InputRange is adjusted on the event state to fix bugs related to picking 2007-05-22 13:48:21 +00:00
Robert Osfield
5056f6fee6 Added osg::Camera::ProjectionResizePolicy enum and associated methods for controlling
how the field of view is adjust on window resizes.
2007-05-22 09:32:38 +00:00
Robert Osfield
d22208f701 Added extra checks to make sure that graphics operations arn't done on no longer valid graphics contexts 2007-05-21 18:46:57 +00:00
Robert Osfield
d74d62ed0b Fixed Viewer::checkWindowStatus() to work correctly when running single threaded 2007-05-21 18:17:54 +00:00
Robert Osfield
db2cef09b3 Reverting Luigi's addition of argv[1] as it breaks the build. 2007-05-21 13:15:26 +00:00
Robert Osfield
e0f5b28dc7 Updated readme 2007-05-21 12:34:03 +00:00
Robert Osfield
592143b018 From Luigi Calori, changed hardwired "cow.osg" paramter to argv[1] 2007-05-21 12:30:14 +00:00
Robert Osfield
9da1c67961 Converted tabs to 4 spaces 2007-05-21 12:28:25 +00:00
Robert Osfield
d987d6c485 Updated version file for 1.9.5 release 2007-05-21 12:26:38 +00:00
Robert Osfield
08aabf9312 Fixed const method type 2007-05-21 11:49:37 +00:00
Robert Osfield
ccede7740e Updated version numbers for 1.9.5 release 2007-05-21 09:27:01 +00:00
Robert Osfield
621c85ecfc Updated ChangeLog 2007-05-21 09:18:23 +00:00
Robert Osfield
94b3a63e0c From Olaf Flebbe, "FlightGear/OSG on Windows did not load the Texture Fonts.
1) TXF Fonts are binary.
2) Do not rely on the result of istream::readsome if buffer _is_ empty
and no data have been read before."
2007-05-21 08:01:45 +00:00
Robert Osfield
d2aefbc09a Added static build support to export macros 2007-05-21 07:54:01 +00:00
Robert Osfield
d2ed03f931 Added istream:imbue(std::locale::classic()) setting to prevent non classic locals
from being used when the .osg plugin reads and writes.
2007-05-21 06:57:30 +00:00
Robert Osfield
e463844020 Introduced VERSION and SOVERSION'ing of libraries. 2007-05-20 17:38:11 +00:00
Robert Osfield
e138b956c5 From Stephan Huber, "attached you'll find some modifications and enhancements to the carbon's
implementation of GraphicsWindow:

- usage of WindowData, you can specify an existing window to use via
osg::Traits
- implementation of setScreenResolution and setScreenRefreshRate
- implementation of setWindowDecoration when window is already created.

There seems to be  a bug regarding multiple threads and closing windows,
see my other mail on osg-users.
"
2007-05-20 13:42:41 +00:00
Robert Osfield
9497d75cc9 Added support for version of the osgPlugins directory, which now gets versioned
according to the OpenSceneGraph/CMakeLists.txt and the include/osg/Version settings.
These changes mean that the 1.9.5 release will have a libs/osgPlugins-1.9.5 directory.
2007-05-20 12:29:11 +00:00
Robert Osfield
dd796df02a Added support for SG_USE_FLOAT_MATRIX and OSG_USE_FLOAT_PLANE in CMake build and
include/osg/Matrix and include/osg/Plane.
2007-05-20 11:45:09 +00:00
Robert Osfield
732685d125 Fixed build error under float matrix build 2007-05-20 11:13:18 +00:00
Robert Osfield
9c86af41e1 From Lugi Calori, added control of lib postfix. 2007-05-20 09:55:34 +00:00
Robert Osfield
6a29688896 From Stephan Huber, "I cleaned the code a little bit and improved the handling of loops:
I added a new protected virtual method to ImageStream called
applyLoopingMode()  which is called from setLoopingMode. The
quicktime-plugin has an implementation of applyLoopingMode which sets
some flags for the quicktime, so that quicktime handles the loop
playback by itself.

This has some benefits:

+ no gaps when looping audio
+ simplified code

Attached you'll find the modified files, hope you'll find them useful."
2007-05-19 14:00:39 +00:00
Robert Osfield
e37ec98748 Various additions to better support view dependent overlay node, and updated wrappers 2007-05-19 13:43:38 +00:00
Robert Osfield
e3747b1004 From Rafa Giatan and Robert Osfield, added support for User defined events, by adding
UserData to Events.
2007-05-19 13:39:55 +00:00
Robert Osfield
a441b1cf35 Made the near far ratio lower to allow one to be near the terrain before clipping
comes in to effect
2007-05-19 13:38:38 +00:00
Robert Osfield
95e77d02ec From Michael Hartman, "I have made a small change to the osgviewerMFC application that resolved most of my home computer issues. It seams that my home computer needed to have the pixel format set with PFD_DOUBLEBUFFER.
Also,  with the cmake ability you are free to remove the MFC_OSG_MDI.vcproj file.
"
2007-05-19 12:27:53 +00:00
Robert Osfield
de598bffaa From Lugi Calori, fix for Win32 build of osgsimpleviewerWX 2007-05-19 12:16:06 +00:00
Robert Osfield
c100841487 In Drawable::releaseGLObjects() replaced glDeleteLists with Drawable::deleteDisplayList(..) to prevent inappropriate OpenGL deletion when current thread does have required grpahics contxt 2007-05-19 07:08:20 +00:00
Robert Osfield
7d39c74029 Updated wrappers 2007-05-18 11:22:56 +00:00
Robert Osfield
0d71586ee0 Added support for tracking the CoordinateSystemNode path, and passing this on to
camera manipulators.
2007-05-18 10:33:56 +00:00
Robert Osfield
79b274b3d6 Added range of CameranManipulators to allow us to navigate the scene freely 2007-05-18 09:49:30 +00:00
Robert Osfield
7a66aaca15 Added -f/--fixed option to allow use to freeze the animation of the cessna. 2007-05-18 09:43:25 +00:00
Robert Osfield
cf9518f346 Added support for View::setFustionDistance(..) 2007-05-17 19:58:57 +00:00
Robert Osfield
851df77673 Improved view dependent camera positioning 2007-05-17 15:39:33 +00:00
Robert Osfield
9ba424e8b2 Added saving and restoring of the near/far planes during Camera setup 2007-05-17 13:20:32 +00:00
Robert Osfield
fec8b86a00 From Serge Lages, "Here is a modified GraphicsWindowWin32.cpp which handle double click events.
I've modified the file submitted yesterday by Andre and not the current SVN version."
2007-05-17 11:55:53 +00:00
Robert Osfield
ec1a586a5f From David Callu, "I have added the uninstall command at the end of the first file,
and the configuration file template use by the command is the second file.
 
  The command use the cmake_install.cmake file which list all file installed by the install target.
  this issue come from the CMake FAQ"
2007-05-17 11:48:30 +00:00
Robert Osfield
7f1cb32fc1 From Michael Hartman, "I have gone in and created a CMakeList.txt file for osgviewerMFC application.
Below is the changes made to the included files.  The examples CMakeList.txt file was not included but the code change needed for osgviewerMFC inclusion is listed below.

 

CMakeList.txt:

This is a little different than other example cmakelist.txt files in that I could not use the setup_example macro.   I had to go in and extract out the important parts of the macro and inline them in the CMakeList.txt file so that I could add the WIN32 declaration into the ADD_EXECUTABLE() statement.  In the future the setup_example macro might be modified to support osgviewerMFC but this is special case so you might not want to muddy the water for one example.

 

 

MFC_OSG.h:

This file had some small changes:

From: #include <osgViewer/GraphicsWindowWin32>

To:   #include <osgViewer/api/win32/GraphicsWindowWin32>

 

Also added two new function declarations

      Void PreFrameUpdate(void);

      Void PostFrameUpdate(void);

 

 

MFC_OSG.cpp:

This file changed only in that I am explicitly showing the viewer run loop and added the two new functions in the MFC_OSG.h file.

 

"
2007-05-17 11:04:57 +00:00
Robert Osfield
c7fc2e018e From Andre Garneau, warnings fixes fo VC++ 2007-05-17 10:59:05 +00:00
Robert Osfield
8c10301d30 From Andre Garneau,"Please find attached changes to have the GraphicsWindowWin32 class
selectively set the pixel format for windows that are inherited, following
some discussions on the mailing list last week.

This is implemented through a new traits flag
(setInheritedWindowPixelFormat) with a default state of false (to avoid
breaking existing applications). When set to true, the pixel format of the
inherited window will be set according to the traits specifications.
"
2007-05-17 10:33:44 +00:00
Robert Osfield
d80cf6b5ee Futher work on view dependent OverlayNode 2007-05-16 19:19:43 +00:00