Compare commits
45 Commits
OpenSceneG
...
OpenSceneG
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
838bdcf35e | ||
|
|
0798f09cfe | ||
|
|
9f0592cac7 | ||
|
|
2167f34d50 | ||
|
|
a0959c5fa4 | ||
|
|
3c9713ff60 | ||
|
|
449448fd88 | ||
|
|
7e7208c8d3 | ||
|
|
a24d91d1a9 | ||
|
|
2810e72104 | ||
|
|
a5c89f469b | ||
|
|
4824eac91e | ||
|
|
b310af4ed9 | ||
|
|
02d3c097e4 | ||
|
|
438e8506fc | ||
|
|
dbf669030f | ||
|
|
98ce387440 | ||
|
|
744c1cc464 | ||
|
|
2be018230d | ||
|
|
e84e2b0025 | ||
|
|
46afd39b51 | ||
|
|
822fec0302 | ||
|
|
3ae660c8eb | ||
|
|
0a82439a9c | ||
|
|
b2db19e976 | ||
|
|
5d8ec3027e | ||
|
|
24b608cacb | ||
|
|
af9ccc5596 | ||
|
|
cc3d0903db | ||
|
|
faef4cea61 | ||
|
|
c3e42eda62 | ||
|
|
62ed1a838b | ||
|
|
a0e4779d76 | ||
|
|
c3e394ba3e | ||
|
|
5c312685cd | ||
|
|
d801620b6c | ||
|
|
22246158a5 | ||
|
|
bbd40ca107 | ||
|
|
2e11d93587 | ||
|
|
48e70c0948 | ||
|
|
38c14644d2 | ||
|
|
1f7febfa92 | ||
|
|
ed722b5fc7 | ||
|
|
f9fda5d081 | ||
|
|
97cb28ea8e |
11
AUTHORS.txt
11
AUTHORS.txt
@@ -1,6 +1,6 @@
|
||||
OpenSceneGraph Library 2.6.0
|
||||
|
||||
323 Contributors:
|
||||
324 Contributors:
|
||||
|
||||
Firstname Surname
|
||||
-----------------
|
||||
@@ -21,8 +21,8 @@ Ulrich Hertlein
|
||||
Martin Lavery
|
||||
David Callu
|
||||
Tree
|
||||
Luigi Calori
|
||||
Jean-Sebastien Guay
|
||||
Luigi Calori
|
||||
Trajce Nikolov
|
||||
Mike Wittman
|
||||
Pavel Moloshtan
|
||||
@@ -42,21 +42,21 @@ Olaf Flebbe
|
||||
Gideon May
|
||||
Don Tidrow
|
||||
Romano Jos<6F> Magacho da Silva
|
||||
Philip Lowman
|
||||
Paul Melis
|
||||
Michael Platings
|
||||
Michael Gronager
|
||||
Daniel Sj<53>lie
|
||||
Chris Hanson
|
||||
Adrian Egli
|
||||
Sherman Wilcox
|
||||
Per Fahlberg
|
||||
J.P. Delport
|
||||
David Spilling
|
||||
Sherman Wilcox
|
||||
Melchior Franz
|
||||
Joran Jessurun
|
||||
Joakim Simonsson
|
||||
Jason Beverage
|
||||
Philip Lowman
|
||||
Jason Daly
|
||||
Frederic Marmond
|
||||
David Fries
|
||||
@@ -69,6 +69,7 @@ Rune Schmidt Jensen
|
||||
Rainer Oder
|
||||
Mike Connell
|
||||
Mathieu Marache
|
||||
Glenn Waldron
|
||||
Carlo Camporesi
|
||||
Ben Discoe
|
||||
Andreas Ekstrand
|
||||
@@ -97,7 +98,6 @@ Mihai Radu
|
||||
Michael Hartman
|
||||
Luc Frauciel
|
||||
Laurens Voerman
|
||||
Glenn Waldron
|
||||
David Guthrie
|
||||
Corbin Holtz
|
||||
Cedric Pinson
|
||||
@@ -298,6 +298,7 @@ Dean Iverson
|
||||
David Jung
|
||||
David Gurhrie
|
||||
Daniel Stien
|
||||
Daniel Olivier
|
||||
Dan Minor
|
||||
Cyril Brulebois
|
||||
Clay Fowler
|
||||
|
||||
@@ -25,8 +25,12 @@ PROJECT(OpenSceneGraph)
|
||||
|
||||
SET(OPENSCENEGRAPH_MAJOR_VERSION 2)
|
||||
SET(OPENSCENEGRAPH_MINOR_VERSION 6)
|
||||
SET(OPENSCENEGRAPH_PATCH_VERSION 0)
|
||||
SET(OPENSCENEGRAPH_SOVERSION 43)
|
||||
SET(OPENSCENEGRAPH_PATCH_VERSION 1)
|
||||
SET(OPENSCENEGRAPH_SOVERSION 48)
|
||||
|
||||
# set to 0 when not a release candidate, non zero means that any generated
|
||||
# svn tags will be treated as release candidates of given number
|
||||
SET(OPENSCENEGRAPH_RELEASE_CANDIDATE 0)
|
||||
|
||||
SET(OPENSCENEGRAPH_VERSION ${OPENSCENEGRAPH_MAJOR_VERSION}.${OPENSCENEGRAPH_MINOR_VERSION}.${OPENSCENEGRAPH_PATCH_VERSION})
|
||||
|
||||
@@ -81,6 +85,64 @@ IF(CMAKE_SYSTEM MATCHES IRIX)
|
||||
SET(CMAKE_THREAD_LIBS_INIT "" CACHE INTERNAL "")
|
||||
ENDIF(CMAKE_SYSTEM MATCHES IRIX)
|
||||
|
||||
OPTION(OSG_MAINTAINER "Enable OpenSceneGraph maintainer build methods, such as making svn branches, tags, updating ChangeLog." OFF)
|
||||
IF (OSG_MAINTAINER)
|
||||
|
||||
SET(OPENSCENEGRAPH_SVN "trunk")
|
||||
#SET(OPENSCENEGRAPH_SVN "branches")
|
||||
SET(OPENSCENEGRAPH_BRANCH OpenSceneGraph-${OPENSCENEGRAPH_MAJOR_VERSION}.${OPENSCENEGRAPH_MINOR_VERSION})
|
||||
|
||||
#
|
||||
# Provide target for tagging a release
|
||||
#
|
||||
SET(SVNCOMMAND svn)
|
||||
SET(SVNTRUNKDIR http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk)
|
||||
SET(SVNTAGDIR http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags)
|
||||
SET(SVNBRANCHDIR http://www.openscenegraph.org/svn/osg/OpenSceneGraph/branch)
|
||||
|
||||
IF (OPENSCENEGRAPH_SVN STREQUAL "trunk")
|
||||
SET(SVNSOURCEDIR ${SVNTRUNKDIR})
|
||||
ELSE (OPENSCENEGRAPH_SVN STREQUAL "trunk")
|
||||
SET(SVNSOURCEDIR ${SVNBRANCH_DIR}/${OPENSCENEGRAPH_BRANCH})
|
||||
ENDIF(OPENSCENEGRAPH_SVN STREQUAL "trunk")
|
||||
|
||||
|
||||
IF (OPENSCENEGRAPH_RELEASE_CANDIDATE EQUAL 0)
|
||||
SET(RELEASE_NAME OpenSceneGraph-${OPENSCENEGRAPH_VERSION})
|
||||
ELSE (OPENSCENEGRAPH_RELEASE_CANDIDATE EQUAL 0)
|
||||
SET(RELEASE_NAME OpenSceneGraph-${OPENSCENEGRAPH_VERSION}-rc${OPENSCENEGRAPH_RELEASE_CANDIDATE})
|
||||
ENDIF(OPENSCENEGRAPH_RELEASE_CANDIDATE EQUAL 0)
|
||||
|
||||
|
||||
ADD_CUSTOM_TARGET(tag-test
|
||||
COMMAND echo ${SVNCOMMAND} copy ${SVNSOURCEDIR} ${SVNTAGDIR}/${RELEASE_NAME} -m "Release ${RELEASE_NAME}"
|
||||
)
|
||||
|
||||
ADD_CUSTOM_TARGET(tag-run
|
||||
COMMAND ${SVNCOMMAND} copy ${SVNSOURCEDIR} ${SVNTAGDIR}/${RELEASE_NAME} -m "Release ${RELEASE_NAME}"
|
||||
)
|
||||
|
||||
ADD_CUSTOM_TARGET(branch-test
|
||||
COMMAND echo ${SVNCOMMAND} copy ${SVNSOURCEDIR} ${SVNBRANCHDIR}/${OPENSCENEGRAPH_BRANCH} -m "Branch ${OPENSCENEGRAPH_BRANCH}"
|
||||
)
|
||||
|
||||
ADD_CUSTOM_TARGET(branch-run
|
||||
COMMAND ${SVNCOMMAND} copy ${SVNSOURCEDIR} ${SVNBRANCHDIR}/${OPENSCENEGRAPH_BRANCH} -m "Branch ${OPENSCENEGRAPH_BRANCH}"
|
||||
)
|
||||
|
||||
#
|
||||
# Provide target for generating ChangeLog
|
||||
#
|
||||
SET(SVN2LOG ~/bin/svn2log.py)
|
||||
SET(GENERATELOGS svn log -v --xml | python ${SVN2LOG} -L -H)
|
||||
|
||||
ADD_CUSTOM_TARGET(ChangeLog
|
||||
COMMAND ${GENERATELOGS}
|
||||
)
|
||||
|
||||
ENDIF(OSG_MAINTAINER)
|
||||
|
||||
|
||||
# Find OpenGL
|
||||
FIND_PACKAGE(OpenGL)
|
||||
|
||||
@@ -269,6 +331,17 @@ IF(PKG_CONFIG_FOUND)
|
||||
|
||||
ENDIF(PKG_CONFIG_FOUND)
|
||||
|
||||
|
||||
#
|
||||
# Enable workaround for OpenGL driver crash with occlusion query
|
||||
#
|
||||
OPTION(OSG_FORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL "Set to ON to build OcclussionQueryNode with a workaround for multi-threaded OpenGL driver occlussion query crash. " OFF)
|
||||
IF(OSG_FORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL)
|
||||
ADD_DEFINITIONS(-DFORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL)
|
||||
ENDIF(OSG_FORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL)
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Test to determine if we want the "tripledot" form of the GLU tesselator callback.
|
||||
#
|
||||
@@ -529,7 +602,11 @@ IF(APPLE)
|
||||
# independently of OS X versions.)
|
||||
# It does look like CMake handles the CMAKE_OSX_SYSROOT automatically.
|
||||
IF(EXISTS /Developer/SDKs/MacOSX10.5.sdk)
|
||||
SET(CMAKE_OSX_ARCHITECTURES "ppc;i386;ppc64;x86_64" CACHE STRING "Build architectures for OSX" FORCE)
|
||||
# 64-bit compiles are not supported with Carbon. We should enable
|
||||
# 64-bit compilation by default once osgviewer has been
|
||||
# rewritten with Cocoa.
|
||||
#SET(CMAKE_OSX_ARCHITECTURES "ppc;i386;ppc64;x86_64" CACHE STRING "Build architectures for OSX" FORCE)
|
||||
SET(CMAKE_OSX_ARCHITECTURES "ppc;i386" CACHE STRING "Build architectures for OSX" FORCE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.5 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE)
|
||||
ELSE(EXISTS /Developer/SDKs/MacOSX10.5.sdk)
|
||||
IF(EXISTS /Developer/SDKs/MacOSX10.4u.sdk)
|
||||
@@ -547,6 +624,18 @@ IF(APPLE)
|
||||
|
||||
ENDIF(APPLE)
|
||||
|
||||
|
||||
#
|
||||
# Provide target for generating wrappers
|
||||
#
|
||||
SET(GENWRAPPER genwrapper)
|
||||
|
||||
ADD_CUSTOM_TARGET(wrappers
|
||||
COMMAND ${GENWRAPPER} -c ${OpenSceneGraph_SOURCE_DIR}/src/osgWrappers/genwrapper.conf -t ${OpenSceneGraph_SOURCE_DIR}/src/osgWrappers/Doxyfile.template -d ${OpenSceneGraph_SOURCE_DIR} | doxygen -
|
||||
COMMAND ${GENWRAPPER} -c ${OpenSceneGraph_SOURCE_DIR}/src/osgWrappers/genwrapper.conf -l ${OpenSceneGraph_SOURCE_DIR}
|
||||
)
|
||||
|
||||
|
||||
OPTION(BUILD_REF_DOCS "Build OpenSceneGraph reference documentation using doxygen (use: make DoxygenDoc)" OFF)
|
||||
|
||||
IF(BUILD_REF_DOCS)
|
||||
|
||||
145
ChangeLog
145
ChangeLog
@@ -1,3 +1,148 @@
|
||||
The following changes (and svn revision numbers) were included in the 2.6.1 release.
|
||||
|
||||
8765 - Fix to OverlayNode from Jason Beverage.
|
||||
8775,8776 - BlendEquation support in .osg/.ive
|
||||
8791 - Fix to FLT exporter to properly export PositionAttitudeTransform nodes.
|
||||
8795 - Change OcclusionQueryNode to workaround an OpenGL implementation issue on NVIDIA devices with Linux drivers. The workaround is to wait (in a loop) until the query result is ready before we retrieve it. This workaround can be enabled in cmake but is disabled by default.
|
||||
8799, 8800 - cmake targets for wrappers and changelog
|
||||
8804 - Change AutoTransform interface to use doubles; osgTerrain wrapper modification for Layer.cpp.
|
||||
8821 - cmake 'maintainer' enhancements for tags.
|
||||
8853 - Fix to osgUtil::Simplifier to handle shared vertex arrays correctly. Changes the Geometry interface, so forces a recompile.
|
||||
8888 - Fix for uninitialized "strip texture path" option in OpenFlight exporter.
|
||||
8900 - Fix for FLT plugin user data handling.
|
||||
Modification to r8795 to sleep inside the loop that checks for availability of the occlusion query result.
|
||||
Bump OSG version number from 2.6.0 to 2.6.1.
|
||||
Update wrappers.
|
||||
|
||||
|
||||
|
||||
The following changes were included in the 2.6 release.
|
||||
|
||||
2008-08-05 10:31 +0000 [r8733] robert:
|
||||
|
||||
* Updated wrappers
|
||||
|
||||
2008-08-05 10:23 +0000 [r8732] robert:
|
||||
|
||||
* Updated SO version number to reflect typo fixes changing the API
|
||||
|
||||
2008-08-05 10:20 +0000 [r8731] robert:
|
||||
|
||||
* Added support for both the old autoScaleTransistionWidthRatio
|
||||
(note typo) and newly fixed autoScaleTransitionWidthRatio in the
|
||||
.osg parsing
|
||||
|
||||
2008-08-05 09:58 +0000 [r8730] paulmelis:
|
||||
|
||||
* - Fixes for two spelling mistakes
|
||||
|
||||
2008-08-04 20:50 +0000 [r8729] robert:
|
||||
|
||||
* Added -losgWidget to lib list, change merged in from svn trunk,
|
||||
using : svn merge -r 8727:8728
|
||||
http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk .
|
||||
|
||||
2008-08-04 17:10 +0000 [r8727] robert:
|
||||
|
||||
* From Sherman Wilcox, "Minor change to bool
|
||||
setGLExtensionFuncPtr(T& t, const char* str1) and
|
||||
setGLExtensionFuncPtr(T& t, const char* str1, const char* str2) -
|
||||
functions returned false even on success." Note, merged from
|
||||
svn/trunk using: svn merge -r 8725:8726
|
||||
http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk .
|
||||
|
||||
2008-08-04 15:30 +0000 [r8724] robert:
|
||||
|
||||
* Updated ChangeLog for 2.6.0-rc2
|
||||
|
||||
2008-08-04 15:21 +0000 [r8723] robert:
|
||||
|
||||
* Updated NEWS and AUTHORS for 2.6.0-rc2 from osg trunk, using "svn
|
||||
merge -r 8719:8722
|
||||
http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk ."
|
||||
|
||||
2008-08-04 14:04 +0000 [r8719] robert:
|
||||
|
||||
* merged Philip Pulman's Centos 5 compile fix from trunk using :
|
||||
svn merge -r 8717:8718
|
||||
http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk .
|
||||
|
||||
2008-08-04 12:48 +0000 [r8717] robert:
|
||||
|
||||
* Merged multi-threaded crash fix to PrecipitationEffect, using
|
||||
"svn merge -r 8715:8716
|
||||
http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk ."
|
||||
|
||||
2008-08-04 12:39 +0000 [r8715] robert:
|
||||
|
||||
* Merged from svn/trunk the removal of debugging info
|
||||
|
||||
2008-08-04 09:07 +0000 [r8713] robert:
|
||||
|
||||
* Merged LineSegment and Quicktime fixes from svn/trunk, using :
|
||||
merge -r 8709:8712
|
||||
http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk .
|
||||
|
||||
2008-08-03 17:02 +0000 [r8709] robert:
|
||||
|
||||
* Merged KdTree update from svn trunk using "svn merge -r 8706:8707
|
||||
http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk ."
|
||||
|
||||
2008-07-31 17:47 +0000 [r8706] paulmartz:
|
||||
|
||||
* From Jean-Sebastien Guay. Fix for stuck keys problem when viewer
|
||||
loses focus. Equivalent to Melchior Franz's fix for the same
|
||||
issue in GraphicsWindowX11. When the application loses focus, all
|
||||
currently pressed keys are released. When it regains focus, keys
|
||||
are queried to see which are currently pressed and keydown
|
||||
messages are sent for those. Also, from Daniel Olivier. Fix for
|
||||
windows based on GraphicsWindowWin32 not switching to the resize
|
||||
mouse cursors when the mouse goes close to window borders.
|
||||
|
||||
2008-07-31 14:43 +0000 [r8705] paulmartz:
|
||||
|
||||
* From Philip Lowman. #define WIN32_WINNT 0x400, consistent with
|
||||
other code in OpenThreads. Resolves a compile warning on mingw.
|
||||
|
||||
2008-07-30 15:45 +0000 [r8704] paulmartz:
|
||||
|
||||
* From Philip Lowman: The osgWidget/Window header file is missing a
|
||||
few export (declspec) declarations on some namespace functions. I
|
||||
noticed because MinGW is failing to link the osgwidgetbox
|
||||
example.
|
||||
|
||||
2008-07-30 15:37 +0000 [r8703] paulmartz:
|
||||
|
||||
* From Philip Lowman: Add #include <stdlib.h> for mingw build.
|
||||
|
||||
2008-07-30 15:10 +0000 [r8702] paulmartz:
|
||||
|
||||
* From Glenn Waldron: Just downgrading a notify message in
|
||||
SpatializeGroupsVisitor ... one-line change.
|
||||
|
||||
2008-07-30 15:03 +0000 [r8701] paulmartz:
|
||||
|
||||
* From Glenn Waldron: The enum value for
|
||||
osgUtil::OptimizerOptions::FLATTEN_STATIC_TRANSFORMS_DUPLICATING_SHARED_SUBGRAPHS
|
||||
is set to 0x100, but it should probably be 0x10000. (From Paul
|
||||
Martz: changed enums to use "1 << n"-style values.)
|
||||
|
||||
2008-07-25 21:16 +0000 [r8698-8699] robert:
|
||||
|
||||
* Made 2.6 branch
|
||||
|
||||
* Release OpenSceneGraph-2.6.0-rc1
|
||||
|
||||
2008-07-25 21:09 +0000 [r8697] robert:
|
||||
|
||||
* Updated ChangeLog and AUTHORS.txt file for relese candidate
|
||||
|
||||
2008-07-25 21:01 +0000 [r8695-8696] robert:
|
||||
|
||||
* Updated version numbers to 2.6.0
|
||||
|
||||
* Updated REAME and NEWS for 2.6 branch
|
||||
|
||||
2008-07-25 20:50 +0000 [r8692-8694] robert:
|
||||
|
||||
* Updated wrappers
|
||||
|
||||
37
NEWS.txt
37
NEWS.txt
@@ -3,20 +3,39 @@ OSG News
|
||||
|
||||
= !OpenSceneGraph 2.6 release adds osgWidget library, KdTree intersections, Anti-aliased FBOsand much more. =
|
||||
|
||||
PERTHSHIRE, Scotland - 25th July 2008 - !OpenSceneGraph Professional Services announces the release of !OpenSceneGraph 2.6, the industry's leading open-source scene graph technology, designed to accelerate application development and improve 3D graphics performance. !OpenSceneGraph 2.6 written entirely in Standard C++ and built upon OpenGL, offers developers working in the visual simulation, game development, virtual reality, scientific visualization and modeling markets - a real-time visualization tool which eclipses commercial scene graph toolkits in functionality, stability and performance. !OpenSceneGraph 2.6 runs on all Microsoft Windows platforms, Apple OS/X, GNU/Linux, IRIX, Solaris, HP-UX, AIX and FreeBSD operating systems.
|
||||
PERTHSHIRE, Scotland - 5th August 2008 - !OpenSceneGraph Professional Services announces the release of !OpenSceneGraph 2.6, the industry's leading open-source scene graph technology, designed to accelerate application development and improve 3D graphics performance. !OpenSceneGraph 2.6 written entirely in Standard C++ and built upon OpenGL, offers developers working in the visual simulation, game development, virtual reality, scientific visualization and modeling markets - a real-time visualization tool which eclipses commercial scene graph toolkits in functionality, stability and performance. !OpenSceneGraph 2.6 runs on all Microsoft Windows platforms, Apple OS/X, GNU/Linux, IRIX, Solaris, HP-UX, AIX and FreeBSD operating systems.
|
||||
|
||||
=== Open-source development delivers industry-leading features and performance ===
|
||||
The !OpenSceneGraph 2.6 release is the culmination of 9 years of work by the lead developers and the open-source community that has grown up around the project. The real-time graphics industry and academia embraced it from the very beginning, deploying it in real-world applications, and actively participating in its development, testing and refinement. The end result is a high-quality library with a feature set relevant to application developers' needs.
|
||||
|
||||
=== Updates include: ===
|
||||
|
||||
* New osgWidget library (still in beta status)
|
||||
* New KdTree support, with automatic building of KdTrees and intersections with them for high performance intersection testing
|
||||
* New Anti-aliased FrameBufferObject support
|
||||
* Improved precision of intersections and camera manipulation
|
||||
* Improved Alias Wavefront .obj support
|
||||
* A wide range of build and bug fixes
|
||||
|
||||
* New osgWidget library for scene graph based graphics user interface elements (beta release).
|
||||
* KdTree support, with automatic KdTree generation on load and use of KdTree during line intersections which massively improves intersection speeds.
|
||||
* Precision improvements to line intersections, provide accurate whole earth intersection.
|
||||
* OpenGL Multi-sample FrameBufferObject support.
|
||||
* New osg::ImageSequence class for doing texture animation of a series of image files.
|
||||
* New database optimizer that is able to remove static transforms by duplicating shared geometries.
|
||||
* Use glGenerateMipmap to speed up mipmap generation in non power-of-two textures.
|
||||
* New osgViewer::ScreenCaptureHandler for adding screen shot support to osgViewer applications.
|
||||
* New osgscreencapture example that demonstrates use of double buffer PixelBufferObject's for streaming of imagery from the screen.
|
||||
* New utility application osgfilecache which can be used to populate the local cache for given lat/lon ranges and levels.
|
||||
* Rewritten DatabasePager that now supports multiple database reading threads. This includes handling of HTTP requests via a separate reading thread, vastly improving the speed of updates when handling HTTP hosted databases that have already partially been downloaded to local file cache.
|
||||
* Support for a file cache for locally caching paged databases hosted over HTTP.
|
||||
* Support for http authentication in osgDB and the libcurl plugin
|
||||
* New osgconv --format <fmt>, --formats and --plugins command line options for listing available plugins and the file formats/options they support.
|
||||
* Performance improvements in handling TerraPage.
|
||||
* Animated GIF support.
|
||||
* New SVG image loader.
|
||||
* Improvements to the .obj loader to support a wider range of .obj files and material properties.
|
||||
* Support for thread safe Atomic reference counting.
|
||||
* Support for COLLADA DOM 2.x
|
||||
* Support for Philips WOWvx 3D auto-stereoscopic displays
|
||||
* New include/osg/Config and include/OpenThreads/Config configuration files, that are automatically generated by CMake, which make more straight forward to build end users applications against OpenSceneGraph versions built with non default build options.
|
||||
* Support for CMake 2.6
|
||||
* A wide range of build and bug fixes
|
||||
|
||||
|
||||
=== Downloads and Licensing ===
|
||||
!OpenSceneGraph is open-source so full source code is provided, and can be copied, modified and used free of charge for commercial and non-commercial use. Access to the source allows end users greater flexibility in how they develop, debug and deploy their applications. They gain productivity and freedom by being able to leverage the tool chain in accordance with their own release cycles. Downloads of binaries and source can be found in the [http://www.openscenegraph.org/projects/osg/wiki/Downloads Downloads] section of the openscenegraph.org website.
|
||||
|
||||
@@ -37,7 +56,7 @@ The !OpenSceneGraph Quick Start Guide is now available in Chinese as well as Eng
|
||||
=== Community support and contributions ===
|
||||
The diverse and growing community of over 1900 developers is centred around the public osg-users mailing list, where members discuss how best to use !OpenSceneGraph, provide mutual support, and coordinate development of new features and bug fixes. Members of this community come from many different countries with backgrounds ranging from some of the world's largest aerospace companies, game companies, and visual simulation specialists to university researchers, students and hobbyists.
|
||||
|
||||
The !OpenSceneGraph project owes a great deal to the community for its development and support, in particular we wish to thank the [http://www.openscenegraph.org/projects/osg/wiki/Support/Contributors/TwoPointFour 306 individuals] from around the world that have directly contributed to the development and refinement of the !OpenSceneGraph code base.
|
||||
The !OpenSceneGraph project owes a great deal to the community for its development and support, in particular we wish to thank the [http://www.openscenegraph.org/projects/osg/wiki/Support/Contributors/TwoPointSix 324 individuals] from around the world that have directly contributed to the development and refinement of the !OpenSceneGraph code base.
|
||||
|
||||
----
|
||||
|
||||
|
||||
77
README.txt
77
README.txt
@@ -15,7 +15,7 @@ subscribe to our public mailing list:
|
||||
|
||||
Robert Osfield.
|
||||
Project Lead.
|
||||
25th July 2008.
|
||||
26th August 2008.
|
||||
|
||||
--
|
||||
|
||||
@@ -66,9 +66,82 @@ system should help guide you through the process:
|
||||
|
||||
Under OSX you can either use the CMake build system above, or use the
|
||||
Xcode projects that you will find in the OpenSceneGraph/Xcode
|
||||
directory.
|
||||
directory. See release notes on OSX CMake build below.
|
||||
|
||||
For further details on compilation, installation and platform-specific
|
||||
information read "Getting Started" guide:
|
||||
|
||||
http://www.openscenegraph.org/projects/osg/wiki/Support/GettingStarted
|
||||
|
||||
|
||||
-- Release notes on OSX build, by Eric Sokolowsky, August 5, 2008
|
||||
|
||||
There are several ways to compile OpenSceneGraph under OSX. The
|
||||
recommended way is to use CMake 2.6 to generate Xcode projects, then use
|
||||
Xcode to build the library. The default project will be able to build
|
||||
Debug or Release libraries, examples, and sample applications. Here are
|
||||
some key settings to consider when using CMake:
|
||||
|
||||
BUILD_OSG_EXAMPLES - By default this is turned off. Turn this setting on
|
||||
to compile many great example programs.
|
||||
|
||||
CMAKE_OSX_ARCHITECTURES - Xcode can create applications, executables,
|
||||
libraries, and frameworks that can be run on more than one architecture.
|
||||
Use this setting to indicate the architectures on which to build OSG.
|
||||
Possibilities include ppc, ppc64, i386, and x86_64. Building OSG using
|
||||
either of the 64-bit options (ppc64 and x86_64) has its own caveats
|
||||
below.
|
||||
|
||||
OSG_BUILD_APPLICATION_BUNDLES - Normally only executable binaries are
|
||||
created for the examples and sample applications. Turn this option on if
|
||||
you want to create real OSX .app bundles. There are caveats to creating
|
||||
.app bundles, see below.
|
||||
|
||||
OSG_WINDOWING_SYSTEM - You have the choice to use Carbon or X11 when
|
||||
building applications on OSX. Under Leopard and later, X11 applications,
|
||||
when started, will automatically launch X11 when needed. However,
|
||||
full-screen X11 applications will still show the menu bar at the top of
|
||||
the screen. Since many parts of the Carbon user interface are not
|
||||
64-bit, X11 is the only supported option for OSX applications compiled
|
||||
for ppc64 or x86_64.
|
||||
|
||||
There is an Xcode directory in the base of the OSG software
|
||||
distribution, but its future is limited, and will be discontinued once
|
||||
the CMake project generator completely implements its functionality.
|
||||
|
||||
|
||||
APPLICATION BUNDLES (.app bundles)
|
||||
|
||||
The example programs when built as application bundles only contain the
|
||||
executable file. They do not contain the dependent libraries as would a
|
||||
normal bundle, so they are not generally portable to other machines.
|
||||
They also do not know where to find plugins. An environmental variable
|
||||
OSG_LIBRARY_PATH may be set to point to the location where the plugin
|
||||
.so files are located. OSG_FILE_PATH may be set to point to the location
|
||||
where data files are located. Setting OSG_FILE_PATH to the
|
||||
OpenSceneGraph-Data directory is very useful when testing OSG by running
|
||||
the example programs.
|
||||
|
||||
Many of the example programs use command-line arguments. When
|
||||
double-clicking on an application (or using the equivalent "open"
|
||||
command on the command line) only those examples and applications that
|
||||
do not require command-line arguments will successfully run. The
|
||||
executable file within the .app bundle can be run from the command-line
|
||||
if command-line arguments are needed.
|
||||
|
||||
|
||||
64-BIT APPLICATION SUPPORT
|
||||
|
||||
OpenSceneGraph will not compile successfully when OSG_WINDOWING_SYSTEM is
|
||||
Carbon and either x86_64 or ppc64 is selected under CMAKE_OSX_ARCHITECTURES,
|
||||
as Carbon is a 32bit only API. A version of the osgviewer library written in
|
||||
Cocoa is needed. However, OSG may be compiled under 64-bits if the X11
|
||||
windowing system is selected. However, Two parts of the OSG default
|
||||
distribution will not work with 64-bit X11: the osgviewerWX example
|
||||
program and the osgdb_qt (Quicktime) plugin. These must be removed from
|
||||
the Xcode project after Cmake generates it in order to compile with
|
||||
64-bit architectures. The lack of the latter means that images such as
|
||||
jpeg, tiff, png, and gif will not work, nor will animations dependent on
|
||||
Quicktime. A new ImageIO-based plugin is being developed to handle the
|
||||
still images, and a QTKit plugin will need to be developed to handle
|
||||
animations.
|
||||
|
||||
@@ -219,6 +219,8 @@ bool validName(const std::string& first)
|
||||
if (first=="LightPointNode") return false;
|
||||
if (first=="GeometryTechnique") return false;
|
||||
if (first=="GeoemtryTechnique") return false;
|
||||
if (first=="KdTree") return false;
|
||||
if (first=="LineSegment") return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -323,6 +323,7 @@ INPUT = $(OSGHOME)/include/osg \
|
||||
$(OSGHOME)/include/osgIntrospection \
|
||||
$(OSGHOME)/include/osgParticle \
|
||||
$(OSGHOME)/include/osgViewer \
|
||||
$(OSGHOME)/include/osgWidget \
|
||||
$(OSGHOME)/include/osgShadow \
|
||||
$(OSGHOME)/include/osgManipulator \
|
||||
$(OSGHOME)/include/osgSim \
|
||||
|
||||
@@ -398,6 +398,7 @@ INPUT = $(OSGHOME)/include/osg \
|
||||
$(OSGHOME)/include/osgIntrospection \
|
||||
$(OSGHOME)/include/osgParticle \
|
||||
$(OSGHOME)/include/osgViewer \
|
||||
$(OSGHOME)/include/osgWidget \
|
||||
$(OSGHOME)/include/osgManipulator \
|
||||
$(OSGHOME)/include/osgShadow \
|
||||
$(OSGHOME)/include/osgSim \
|
||||
|
||||
@@ -398,6 +398,7 @@ INPUT = ${OpenSceneGraph_SOURCE_DIR}/include/osg \
|
||||
${OpenSceneGraph_SOURCE_DIR}/include/osgIntrospection \
|
||||
${OpenSceneGraph_SOURCE_DIR}/include/osgParticle \
|
||||
${OpenSceneGraph_SOURCE_DIR}/include/osgViewer \
|
||||
${OpenSceneGraph_SOURCE_DIR}/include/osgWidget \
|
||||
${OpenSceneGraph_SOURCE_DIR}/include/osgManipulator \
|
||||
${OpenSceneGraph_SOURCE_DIR}/include/osgShadow \
|
||||
${OpenSceneGraph_SOURCE_DIR}/include/osgSim \
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
|
||||
*
|
||||
* This library is open source and may be redistributed and/or modified under
|
||||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||||
* This library is open source and may be redistributed and/or modified under
|
||||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||||
* (at your option) any later version. The full license is in LICENSE file
|
||||
* included with this distribution, and on the openscenegraph.org website.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* OpenSceneGraph Public License for more details.
|
||||
*/
|
||||
|
||||
@@ -29,7 +29,7 @@ class OSG_EXPORT AutoTransform : public Transform
|
||||
public :
|
||||
AutoTransform();
|
||||
|
||||
AutoTransform(const AutoTransform& pat,const CopyOp& copyop=CopyOp::SHALLOW_COPY);
|
||||
AutoTransform(const AutoTransform& pat,const CopyOp& copyop=CopyOp::SHALLOW_COPY);
|
||||
|
||||
virtual osg::Object* cloneType() const { return new AutoTransform (); }
|
||||
virtual osg::Object* clone(const osg::CopyOp& copyop) const { return new AutoTransform (*this,copyop); }
|
||||
@@ -42,27 +42,27 @@ class OSG_EXPORT AutoTransform : public Transform
|
||||
virtual AutoTransform* asAutoTransform() { return this; }
|
||||
virtual const AutoTransform* asAutoTransform() const { return this; }
|
||||
|
||||
inline void setPosition(const Vec3& pos) { _position = pos; _matrixDirty=true; dirtyBound(); }
|
||||
inline const Vec3& getPosition() const { return _position; }
|
||||
inline void setPosition(const Vec3d& pos) { _position = pos; _matrixDirty=true; dirtyBound(); }
|
||||
inline const Vec3d& getPosition() const { return _position; }
|
||||
|
||||
|
||||
inline void setRotation(const Quat& quat) { _rotation = quat; _matrixDirty=true; dirtyBound(); }
|
||||
inline const Quat& getRotation() const { return _rotation; }
|
||||
|
||||
inline void setScale(float scale) { setScale(osg::Vec3(scale,scale,scale)); }
|
||||
|
||||
void setScale(const Vec3& scale);
|
||||
inline const Vec3& getScale() const { return _scale; }
|
||||
|
||||
void setMinimumScale(float minimumScale) { _minimumScale = minimumScale; }
|
||||
float getMinimumScale() const { return _minimumScale; }
|
||||
inline void setScale(double scale) { setScale(osg::Vec3(scale,scale,scale)); }
|
||||
|
||||
void setMaximumScale(float maximumScale) { _maximumScale = maximumScale; }
|
||||
float getMaximumScale() const { return _maximumScale; }
|
||||
void setScale(const Vec3d& scale);
|
||||
inline const Vec3d& getScale() const { return _scale; }
|
||||
|
||||
void setMinimumScale(double minimumScale) { _minimumScale = minimumScale; }
|
||||
double getMinimumScale() const { return _minimumScale; }
|
||||
|
||||
void setMaximumScale(double maximumScale) { _maximumScale = maximumScale; }
|
||||
double getMaximumScale() const { return _maximumScale; }
|
||||
|
||||
inline void setPivotPoint(const Vec3d& pivot) { _pivotPoint = pivot; _matrixDirty=true; dirtyBound(); }
|
||||
inline const Vec3d& getPivotPoint() const { return _pivotPoint; }
|
||||
|
||||
inline void setPivotPoint(const Vec3& pivot) { _pivotPoint = pivot; _matrixDirty=true; dirtyBound(); }
|
||||
inline const Vec3& getPivotPoint() const { return _pivotPoint; }
|
||||
|
||||
|
||||
void setAutoUpdateEyeMovementTolerance(float tolerance) { _autoUpdateEyeMovementTolerance = tolerance; }
|
||||
float getAutoUpdateEyeMovementTolerance() const { return _autoUpdateEyeMovementTolerance; }
|
||||
@@ -74,7 +74,7 @@ class OSG_EXPORT AutoTransform : public Transform
|
||||
ROTATE_TO_SCREEN,
|
||||
ROTATE_TO_CAMERA
|
||||
};
|
||||
|
||||
|
||||
void setAutoRotateMode(AutoRotateMode mode) { _autoRotateMode = mode; _firstTimeToInitEyePoint = true; }
|
||||
|
||||
AutoRotateMode getAutoRotateMode() const { return _autoRotateMode; }
|
||||
@@ -83,8 +83,8 @@ class OSG_EXPORT AutoTransform : public Transform
|
||||
|
||||
bool getAutoScaleToScreen() const { return _autoScaleToScreen; }
|
||||
|
||||
void setAutoScaleTransistionWidthRatio(float ratio) { _autoScaleTransitionWidthRatio = ratio; }
|
||||
float getAutoScaleTransistionWidthRatio() const { return _autoScaleTransitionWidthRatio; }
|
||||
void setAutoScaleTransitionWidthRatio(float ratio) { _autoScaleTransitionWidthRatio = ratio; }
|
||||
float getAutoScaleTransitionWidthRatio() const { return _autoScaleTransitionWidthRatio; }
|
||||
|
||||
|
||||
virtual bool computeLocalToWorldMatrix(Matrix& matrix,NodeVisitor* nv) const;
|
||||
@@ -95,35 +95,35 @@ class OSG_EXPORT AutoTransform : public Transform
|
||||
|
||||
|
||||
protected :
|
||||
|
||||
|
||||
virtual ~AutoTransform() {}
|
||||
|
||||
Vec3 _position;
|
||||
Vec3 _pivotPoint;
|
||||
float _autoUpdateEyeMovementTolerance;
|
||||
Vec3d _position;
|
||||
Vec3d _pivotPoint;
|
||||
double _autoUpdateEyeMovementTolerance;
|
||||
|
||||
AutoRotateMode _autoRotateMode;
|
||||
|
||||
bool _autoScaleToScreen;
|
||||
|
||||
|
||||
mutable Quat _rotation;
|
||||
mutable Vec3 _scale;
|
||||
mutable Vec3d _scale;
|
||||
mutable bool _firstTimeToInitEyePoint;
|
||||
mutable osg::Vec3 _previousEyePoint;
|
||||
mutable osg::Vec3 _previousLocalUp;
|
||||
mutable Viewport::value_type _previousWidth;
|
||||
mutable Viewport::value_type _previousHeight;
|
||||
mutable osg::Matrix _previousProjection;
|
||||
mutable osg::Vec3 _previousPosition;
|
||||
|
||||
float _minimumScale;
|
||||
float _maximumScale;
|
||||
float _autoScaleTransitionWidthRatio;
|
||||
mutable Viewport::value_type _previousHeight;
|
||||
mutable osg::Matrixd _previousProjection;
|
||||
mutable osg::Vec3d _previousPosition;
|
||||
|
||||
double _minimumScale;
|
||||
double _maximumScale;
|
||||
double _autoScaleTransitionWidthRatio;
|
||||
|
||||
void computeMatrix() const;
|
||||
|
||||
mutable bool _matrixDirty;
|
||||
mutable osg::Matrix _cachedMatrix;
|
||||
mutable bool _matrixDirty;
|
||||
mutable osg::Matrixd _cachedMatrix;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -94,6 +94,12 @@
|
||||
#define GL_MAX_SAMPLES_EXT 0x8D57
|
||||
#endif
|
||||
|
||||
#ifndef GL_MAX_SAMPLES_EXT
|
||||
// Workaround for Centos 5 and other distros that define
|
||||
// GL_EXT_framebuffer_multisample but not GL_MAX_SAMPLES_EXT
|
||||
#define GL_MAX_SAMPLES_EXT 0x8D57
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_framebuffer_multisample_coverage
|
||||
#define GL_NV_framebuffer_multisample_coverage 1
|
||||
#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
|
||||
|
||||
@@ -80,7 +80,7 @@ bool setGLExtensionFuncPtr(T& t, const char* str1)
|
||||
if (data)
|
||||
{
|
||||
memcpy(&t, &data, sizeof(T));
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -96,7 +96,7 @@ bool setGLExtensionFuncPtr(T& t, const char* str1, const char* str2)
|
||||
if (data)
|
||||
{
|
||||
memcpy(&t, &data, sizeof(T));
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -344,6 +344,12 @@ class OSG_EXPORT Geometry : public Drawable
|
||||
|
||||
void copyToAndOptimize(Geometry& target);
|
||||
|
||||
|
||||
bool containsSharedArrays() const;
|
||||
|
||||
void duplicateSharedArrays();
|
||||
|
||||
|
||||
void computeInternalOptimizedGeometry();
|
||||
|
||||
void removeInternalOptimizedGeometry() { _internalOptimizedGeometry = 0; }
|
||||
|
||||
@@ -21,8 +21,8 @@ extern "C" {
|
||||
|
||||
#define OPENSCENEGRAPH_MAJOR_VERSION 2
|
||||
#define OPENSCENEGRAPH_MINOR_VERSION 6
|
||||
#define OPENSCENEGRAPH_PATCH_VERSION 0
|
||||
#define OPENSCENEGRAPH_SOVERSION 43
|
||||
#define OPENSCENEGRAPH_PATCH_VERSION 1
|
||||
#define OPENSCENEGRAPH_SOVERSION 48
|
||||
|
||||
/**
|
||||
* osgGetVersion() returns the library version number.
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
\namespace osgFX
|
||||
|
||||
The osgFX is a NodeKit library that extends the core scene graph to provide a special effects framework.
|
||||
The osgFX library is a NodeKit that extends the core scene graph to provide a special effects framework.
|
||||
osgFX's framework allows multiple rendering techniques to be provide for each effect, thereby provide the use
|
||||
appropriate rendering techniques for each different class of graphics hardware, i.e. support for both modern
|
||||
programmable graphics hardware and still have standard OpenGL 1.1 support as a fallback.
|
||||
|
||||
@@ -60,4 +60,12 @@ automatically generated by parsing header files via gen_wrapper utility. All th
|
||||
core OpenSceneGraph libraries have pre built wrappers available for you use.
|
||||
*/
|
||||
|
||||
/**
|
||||
|
||||
\namespace Properties
|
||||
|
||||
Properties is a set of helper definations used by the osgIntrospectoin wrappers.
|
||||
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
@@ -27,4 +27,11 @@
|
||||
# define OSGMANIPULATOR_EXPORT
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
||||
\namespace osgManipulator
|
||||
|
||||
The osgManipulator library is a NodeKit that extends the core scene graph to support 3D interactive manipulators.
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
\namespace osgParticle
|
||||
|
||||
The osgParticle is a NodeKit library that extends the core scene graph to support particle effects.
|
||||
The osgParticle library is a NodeKit that extends the core scene graph to support particle effects.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
\namespace osgShadow
|
||||
|
||||
The osgShadow is a NodeKit library that extends the core scene graph to add support for a range of shadow techniques.
|
||||
The osgShadow library is a NodeKit that extends the core scene graph to add support for a range of shadow techniques.
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
|
||||
*
|
||||
* This library is open source and may be redistributed and/or modified under
|
||||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||||
* This library is open source and may be redistributed and/or modified under
|
||||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||||
* (at your option) any later version. The full license is in LICENSE file
|
||||
* included with this distribution, and on the openscenegraph.org website.
|
||||
*
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* OpenSceneGraph Public License for more details.
|
||||
*/
|
||||
|
||||
/* ParallelSplitShadowMap written by Adrian Egli
|
||||
/* ParallelSplitShadowMap written by Adrian Egli
|
||||
*
|
||||
* this version has still a bug in mutli-thread application (flickering problem)
|
||||
* to avoid the flickering problem try osgShadow --pssm --SingleThreaded your_scene.ive
|
||||
*
|
||||
* The Parallel Split Shadow Map only supports directional light for simulating the shadow.
|
||||
* It's one of the most robust algorithm for huge terrain sun light's shadow simulation, if
|
||||
* you need to shadow a terrain, or another huge scene, you should use Parallel Split Shadow Map
|
||||
* or at least test it against your scene. Have fun.
|
||||
* The Parallel Split Shadow Map only supports directional light for simulating the shadow.
|
||||
* It's one of the most robust algorithm for huge terrain sun light's shadow simulation, if
|
||||
* you need to shadow a terrain, or another huge scene, you should use Parallel Split Shadow Map
|
||||
* or at least test it against your scene. Have fun.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef OSGSHADOW_ParallelSplitShadowMap
|
||||
#ifndef OSGSHADOW_ParallelSplitShadowMap
|
||||
#define OSGSHADOW_ParallelSplitShadowMap 1
|
||||
|
||||
#include <osg/Camera>
|
||||
@@ -35,16 +35,16 @@
|
||||
|
||||
namespace osgShadow {
|
||||
|
||||
class OSGSHADOW_EXPORT ParallelSplitShadowMap : public ShadowTechnique
|
||||
class OSGSHADOW_EXPORT ParallelSplitShadowMap : public ShadowTechnique
|
||||
{
|
||||
public:
|
||||
ParallelSplitShadowMap(osg::Geode** debugGroup=NULL, int icountplanes=3);
|
||||
|
||||
ParallelSplitShadowMap(const ParallelSplitShadowMap& es, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
|
||||
|
||||
|
||||
META_Object(osgShadow, ParallelSplitShadowMap);
|
||||
|
||||
|
||||
|
||||
/** Initialize the ShadowedScene and local cached data structures.*/
|
||||
virtual void init();
|
||||
|
||||
@@ -69,21 +69,21 @@ class OSGSHADOW_EXPORT ParallelSplitShadowMap : public ShadowTechnique
|
||||
/** Set the texture resolution */
|
||||
inline void setTextureResolution(unsigned int resolution) { _resolution = resolution; }
|
||||
|
||||
/** Set the max far distance */
|
||||
/** Set the max far distance */
|
||||
inline void setMaxFarDistance(double farDist) { _setMaxFarDistance = farDist; _isSetMaxFarDistance = true; }
|
||||
|
||||
/** Set the factor for moving the virtual camera behind the real camera*/
|
||||
inline void setMoveVCamBehindRCamFactor(double distFactor ) { _move_vcam_behind_rcam_factor = distFactor; }
|
||||
|
||||
/** Set min near distance for splits */
|
||||
/** Set min near distance for splits */
|
||||
inline void setMinNearDistanceForSplits(double nd){ _split_min_near_dist=nd; }
|
||||
|
||||
/** set a user defined light for shadow simulation (sun light, ... )
|
||||
* when this light get passed to pssm, the scene's light are no longer collected
|
||||
* and simulated. just this user passed light, it needs to be a directional light.
|
||||
/** set a user defined light for shadow simulation (sun light, ... )
|
||||
* when this light get passed to pssm, the scene's light are no longer collected
|
||||
* and simulated. just this user passed light, it needs to be a directional light.
|
||||
*/
|
||||
inline void setUserLight(osg::Light* light) { _userLight = light; }
|
||||
|
||||
|
||||
/** Set the values for the ambient bias the shader will use.*/
|
||||
void setAmbientBias(const osg::Vec2& ambientBias );
|
||||
|
||||
@@ -92,32 +92,32 @@ class OSGSHADOW_EXPORT ParallelSplitShadowMap : public ShadowTechnique
|
||||
*/
|
||||
class OSGSHADOW_EXPORT FragmentShaderGenerator : public osg::Referenced {
|
||||
public:
|
||||
/**
|
||||
* generate the GLSL fragement shader
|
||||
/**
|
||||
* generate the GLSL fragement shader
|
||||
*/
|
||||
virtual std::string generateGLSL_FragmentShader_BaseTex(bool debug, unsigned int splitCount,double textureRes, bool filtered, unsigned int nbrSplits,unsigned int textureOffset);
|
||||
};
|
||||
|
||||
|
||||
/** set fragment shader generator */
|
||||
inline void setFragmentShaderGenerator(FragmentShaderGenerator* fsw) { _FragmentShaderGenerator = fsw;}
|
||||
|
||||
|
||||
/** enable / disable shadow filtering */
|
||||
inline void enableShadowGLSLFiltering(bool filtering = true) { _GLSL_shadow_filtered = filtering; }
|
||||
|
||||
|
||||
enum SplitCalcMode {
|
||||
SPLIT_LINEAR,
|
||||
SPLIT_EXP
|
||||
};
|
||||
|
||||
|
||||
/** set split calculation mode */
|
||||
inline void setSplitCalculationMode(SplitCalcMode scm=SPLIT_EXP) { _SplitCalcMode = scm; }
|
||||
|
||||
|
||||
|
||||
|
||||
protected :
|
||||
|
||||
virtual ~ParallelSplitShadowMap() {}
|
||||
|
||||
|
||||
|
||||
struct PSSMShadowSplitTexture {
|
||||
// RTT
|
||||
osg::ref_ptr<osg::Camera> _camera;
|
||||
@@ -157,7 +157,7 @@ class OSGSHADOW_EXPORT ParallelSplitShadowMap : public ShadowTechnique
|
||||
|
||||
private:
|
||||
void calculateFrustumCorners(PSSMShadowSplitTexture &pssmShadowSplitTexture,osg::Vec3d *frustumCorners);
|
||||
void calculateLightInitalPosition(PSSMShadowSplitTexture &pssmShadowSplitTexture,osg::Vec3d *frustumCorners);
|
||||
void calculateLightInitialPosition(PSSMShadowSplitTexture &pssmShadowSplitTexture,osg::Vec3d *frustumCorners);
|
||||
void calculateLightNearFarFormFrustum(PSSMShadowSplitTexture &pssmShadowSplitTexture,osg::Vec3d *frustumCorners);
|
||||
void calculateLightViewProjectionFormFrustum(PSSMShadowSplitTexture &pssmShadowSplitTexture,osg::Vec3d *frustumCorners);
|
||||
|
||||
@@ -180,13 +180,13 @@ class OSGSHADOW_EXPORT ParallelSplitShadowMap : public ShadowTechnique
|
||||
double _split_min_near_dist;
|
||||
|
||||
double _move_vcam_behind_rcam_factor;
|
||||
|
||||
|
||||
osg::ref_ptr<osg::Light> _userLight;
|
||||
osg::ref_ptr<FragmentShaderGenerator> _FragmentShaderGenerator;
|
||||
|
||||
bool _GLSL_shadow_filtered;
|
||||
SplitCalcMode _SplitCalcMode;
|
||||
|
||||
|
||||
osg::Uniform* _ambientBiasUniform;
|
||||
osg::Vec2d _ambientBias;
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
\namespace osgSim
|
||||
|
||||
The osgSim is a NodeKit library that extends the core scene graph to support nodes and drawables that specific to the visual simulation, such
|
||||
The osgSim library is a NodeKit that extends the core scene graph to support nodes and drawables that specific to the visual simulation, such
|
||||
a navigational light point support and OpenFlight style degrees of freedom transform.
|
||||
*/
|
||||
|
||||
|
||||
@@ -41,11 +41,7 @@
|
||||
|
||||
\namespace osgTerrain
|
||||
|
||||
The osgTerrain is a utility library that provides geospecifc terrain database generation support.
|
||||
The osgTerrain library is typically invoked by the osgdem utlitly application that users can use to build paged terrain databases
|
||||
from geospecific imagery and digial elevation maps (DEM's). osgTerrain may also be used directly in your own applications to generate
|
||||
databases. Note, osgTerrain is not presently written for run-time rendering of terrain, and is just focused on database
|
||||
generation, these generated databases then can used used in standard OpenSceneGraph application which do not need to link osgTerrain..
|
||||
The osgTerrain library is a NodeKit that provides geospecifc terrain rendering support.
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
\namespace osgText
|
||||
|
||||
The osgText is a NodeKit library that extends the core scene graph to support high quality text.
|
||||
The osgText library is a NodeKit that extends the core scene graph to support high quality text.
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
@@ -67,23 +67,23 @@ class OSGUTIL_EXPORT Optimizer
|
||||
|
||||
enum OptimizationOptions
|
||||
{
|
||||
FLATTEN_STATIC_TRANSFORMS = 0x001,
|
||||
REMOVE_REDUNDANT_NODES = 0x002,
|
||||
REMOVE_LOADED_PROXY_NODES = 0x004,
|
||||
COMBINE_ADJACENT_LODS = 0x008,
|
||||
SHARE_DUPLICATE_STATE = 0x010,
|
||||
MERGE_GEOMETRY = 0x020,
|
||||
CHECK_GEOMETRY = 0x040,
|
||||
SPATIALIZE_GROUPS = 0x080,
|
||||
COPY_SHARED_NODES = 0x100,
|
||||
TRISTRIP_GEOMETRY = 0x200,
|
||||
TESSELLATE_GEOMETRY = 0x400,
|
||||
OPTIMIZE_TEXTURE_SETTINGS = 0x800,
|
||||
MERGE_GEODES = 0x1000,
|
||||
FLATTEN_BILLBOARDS = 0x2000,
|
||||
TEXTURE_ATLAS_BUILDER = 0x4000,
|
||||
STATIC_OBJECT_DETECTION = 0x8000,
|
||||
FLATTEN_STATIC_TRANSFORMS_DUPLICATING_SHARED_SUBGRAPHS = 0x100,
|
||||
FLATTEN_STATIC_TRANSFORMS = (1 << 0),
|
||||
REMOVE_REDUNDANT_NODES = (1 << 1),
|
||||
REMOVE_LOADED_PROXY_NODES = (1 << 2),
|
||||
COMBINE_ADJACENT_LODS = (1 << 3),
|
||||
SHARE_DUPLICATE_STATE = (1 << 4),
|
||||
MERGE_GEOMETRY = (1 << 5),
|
||||
CHECK_GEOMETRY = (1 << 6),
|
||||
SPATIALIZE_GROUPS = (1 << 7),
|
||||
COPY_SHARED_NODES = (1 << 8),
|
||||
TRISTRIP_GEOMETRY = (1 << 9),
|
||||
TESSELLATE_GEOMETRY = (1 << 10),
|
||||
OPTIMIZE_TEXTURE_SETTINGS = (1 << 11),
|
||||
MERGE_GEODES = (1 << 12),
|
||||
FLATTEN_BILLBOARDS = (1 << 13),
|
||||
TEXTURE_ATLAS_BUILDER = (1 << 14),
|
||||
STATIC_OBJECT_DETECTION = (1 << 15),
|
||||
FLATTEN_STATIC_TRANSFORMS_DUPLICATING_SHARED_SUBGRAPHS = (1 << 16),
|
||||
DEFAULT_OPTIMIZATIONS = FLATTEN_STATIC_TRANSFORMS |
|
||||
REMOVE_REDUNDANT_NODES |
|
||||
REMOVE_LOADED_PROXY_NODES |
|
||||
|
||||
@@ -174,8 +174,14 @@ class OSGVIEWER_EXPORT GraphicsWindowWin32 : public osgViewer::GraphicsWindow
|
||||
bool _destroying;
|
||||
|
||||
MouseCursor _mouseCursor;
|
||||
|
||||
/// Persist which mouse cursor was used before switching to the resize cursors.
|
||||
MouseCursor _appMouseCursor;
|
||||
|
||||
std::map<MouseCursor,HCURSOR> _mouseCursorMap;
|
||||
|
||||
std::map<int, bool> _keyMap;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -39,9 +39,9 @@
|
||||
|
||||
/**
|
||||
|
||||
\namespace osgWidet
|
||||
\namespace osgWidget
|
||||
|
||||
The osgWidget is a NodeKit library that extends the core scene graph to support 3D widget set.
|
||||
The osgWidget library is a NodeKit that extends the core scene graph to support 3D GUI widget set.
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
@@ -29,13 +29,13 @@ namespace osgWidget {
|
||||
|
||||
// These are helper callbacks you can attach to Windows that will make them moveable,
|
||||
// rotatable, and scalable respectively.
|
||||
bool callbackWindowMove (Event&);
|
||||
bool callbackWindowRotate (Event&);
|
||||
bool callbackWindowScale (Event&);
|
||||
bool OSGWIDGET_EXPORT callbackWindowMove (Event&);
|
||||
bool OSGWIDGET_EXPORT callbackWindowRotate (Event&);
|
||||
bool OSGWIDGET_EXPORT callbackWindowScale (Event&);
|
||||
|
||||
// These are helper callbacks you can attach to Windows to that will make various
|
||||
// keyboard events behave as you might imagine.
|
||||
bool callbackWindowTabFocus(Event&);
|
||||
bool OSGWIDGET_EXPORT callbackWindowTabFocus(Event&);
|
||||
|
||||
class OSGWIDGET_EXPORT Window:
|
||||
public osg::MatrixTransform,
|
||||
|
||||
@@ -10,5 +10,5 @@ Description: 3D scenegraph
|
||||
Version: 2.6.0
|
||||
Requires: openthreads
|
||||
Conflicts:
|
||||
Libs: -L${libdir} -losg -losgDB -losgFX -losgGA -losgParticle -losgSim -losgText -losgUtil -losgTerrain -losgManipulator -losgViewer
|
||||
Libs: -L${libdir} -losg -losgDB -losgFX -losgGA -losgParticle -losgSim -losgText -losgUtil -losgTerrain -losgManipulator -losgViewer -losgWidget
|
||||
Cflags: -I${includedir}
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
#ifndef _WINDOWS_
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define _WIN32_WINNT 0x0400
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include <process.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER < 1300)
|
||||
#ifdef __SGI_STL
|
||||
|
||||
@@ -18,14 +18,14 @@
|
||||
using namespace osg;
|
||||
|
||||
AutoTransform::AutoTransform():
|
||||
_autoUpdateEyeMovementTolerance(0.0f),
|
||||
_autoUpdateEyeMovementTolerance(0.0),
|
||||
_autoRotateMode(NO_ROTATION),
|
||||
_autoScaleToScreen(false),
|
||||
_scale(1.0f,1.0f,1.0f),
|
||||
_scale(1.0,1.0,1.0),
|
||||
_firstTimeToInitEyePoint(true),
|
||||
_minimumScale(0.0f),
|
||||
_maximumScale(FLT_MAX),
|
||||
_autoScaleTransitionWidthRatio(0.25f),
|
||||
_minimumScale(0.0),
|
||||
_maximumScale(DBL_MAX),
|
||||
_autoScaleTransitionWidthRatio(0.25),
|
||||
_matrixDirty(true)
|
||||
{
|
||||
// setNumChildrenRequiringUpdateTraversal(1);
|
||||
@@ -49,7 +49,7 @@ AutoTransform::AutoTransform(const AutoTransform& pat,const CopyOp& copyop):
|
||||
// setNumChildrenRequiringUpdateTraversal(getNumChildrenRequiringUpdateTraversal()+1);
|
||||
}
|
||||
|
||||
void AutoTransform::setScale(const Vec3& scale)
|
||||
void AutoTransform::setScale(const Vec3d& scale)
|
||||
{
|
||||
_scale = scale;
|
||||
if (_scale.x()<_minimumScale) _scale.x() = _minimumScale;
|
||||
@@ -87,14 +87,14 @@ bool AutoTransform::computeWorldToLocalMatrix(Matrix& matrix,NodeVisitor*) const
|
||||
{
|
||||
matrix.postMult(osg::Matrix::translate(-_position)*
|
||||
osg::Matrix::rotate(_rotation.inverse())*
|
||||
osg::Matrix::scale(1.0f/_scale.x(),1.0f/_scale.y(),1.0f/_scale.z())*
|
||||
osg::Matrix::scale(1.0/_scale.x(),1.0/_scale.y(),1.0/_scale.z())*
|
||||
osg::Matrix::translate(_pivotPoint));
|
||||
}
|
||||
else // absolute
|
||||
{
|
||||
matrix = osg::Matrix::translate(-_position)*
|
||||
osg::Matrix::rotate(_rotation.inverse())*
|
||||
osg::Matrix::scale(1.0f/_scale.x(),1.0f/_scale.y(),1.0f/_scale.z())*
|
||||
osg::Matrix::scale(1.0/_scale.x(),1.0/_scale.y(),1.0/_scale.z())*
|
||||
osg::Matrix::translate(_pivotPoint);
|
||||
}
|
||||
return true;
|
||||
@@ -138,21 +138,21 @@ void AutoTransform::accept(NodeVisitor& nv)
|
||||
height = viewport->height();
|
||||
}
|
||||
|
||||
osg::Vec3 eyePoint = cs->getEyeLocal();
|
||||
osg::Vec3 localUp = cs->getUpLocal();
|
||||
osg::Vec3 position = getPosition();
|
||||
osg::Vec3d eyePoint = cs->getEyeLocal();
|
||||
osg::Vec3d localUp = cs->getUpLocal();
|
||||
osg::Vec3d position = getPosition();
|
||||
|
||||
const osg::Matrix& projection = *(cs->getProjectionMatrix());
|
||||
|
||||
bool doUpdate = _firstTimeToInitEyePoint;
|
||||
if (!_firstTimeToInitEyePoint)
|
||||
{
|
||||
osg::Vec3 dv = _previousEyePoint-eyePoint;
|
||||
osg::Vec3d dv = _previousEyePoint-eyePoint;
|
||||
if (dv.length2()>getAutoUpdateEyeMovementTolerance()*(eyePoint-getPosition()).length2())
|
||||
{
|
||||
doUpdate = true;
|
||||
}
|
||||
osg::Vec3 dupv = _previousLocalUp-localUp;
|
||||
osg::Vec3d dupv = _previousLocalUp-localUp;
|
||||
// rotating the camera only affects ROTATE_TO_*
|
||||
if (_autoRotateMode &&
|
||||
dupv.length2()>getAutoUpdateEyeMovementTolerance())
|
||||
@@ -179,35 +179,35 @@ void AutoTransform::accept(NodeVisitor& nv)
|
||||
|
||||
if (getAutoScaleToScreen())
|
||||
{
|
||||
float size = 1.0f/cs->pixelSize(getPosition(),0.48f);
|
||||
double size = 1.0/cs->pixelSize(getPosition(),0.48);
|
||||
|
||||
if (_autoScaleTransitionWidthRatio>0.0f)
|
||||
if (_autoScaleTransitionWidthRatio>0.0)
|
||||
{
|
||||
if (_minimumScale>0.0f)
|
||||
if (_minimumScale>0.0)
|
||||
{
|
||||
float j = _minimumScale;
|
||||
float i = (_maximumScale<FLT_MAX) ?
|
||||
double j = _minimumScale;
|
||||
double i = (_maximumScale<DBL_MAX) ?
|
||||
_minimumScale+(_maximumScale-_minimumScale)*_autoScaleTransitionWidthRatio :
|
||||
_minimumScale*(1.0f+_autoScaleTransitionWidthRatio);
|
||||
float c = 1.0f/(4.0f*(i-j));
|
||||
float b = 1.0f - 2.0f*c*i;
|
||||
float a = j + b*b / (4.0f*c);
|
||||
float k = -b / (2.0f*c);
|
||||
_minimumScale*(1.0+_autoScaleTransitionWidthRatio);
|
||||
double c = 1.0/(4.0*(i-j));
|
||||
double b = 1.0 - 2.0*c*i;
|
||||
double a = j + b*b / (4.0*c);
|
||||
double k = -b / (2.0*c);
|
||||
|
||||
if (size<k) size = _minimumScale;
|
||||
else if (size<i) size = a + b*size + c*(size*size);
|
||||
}
|
||||
|
||||
if (_maximumScale<FLT_MAX)
|
||||
if (_maximumScale<DBL_MAX)
|
||||
{
|
||||
float n = _maximumScale;
|
||||
float m = (_minimumScale>0.0) ?
|
||||
double n = _maximumScale;
|
||||
double m = (_minimumScale>0.0) ?
|
||||
_maximumScale+(_minimumScale-_maximumScale)*_autoScaleTransitionWidthRatio :
|
||||
_maximumScale*(1.0f-_autoScaleTransitionWidthRatio);
|
||||
float c = 1.0f / (4.0f*(m-n));
|
||||
float b = 1.0f - 2.0f*c*m;
|
||||
float a = n + b*b/(4.0f*c);
|
||||
float p = -b / (2.0f*c);
|
||||
_maximumScale*(1.0-_autoScaleTransitionWidthRatio);
|
||||
double c = 1.0 / (4.0*(m-n));
|
||||
double b = 1.0 - 2.0*c*m;
|
||||
double a = n + b*b/(4.0*c);
|
||||
double p = -b / (2.0*c);
|
||||
|
||||
if (size>p) size = _maximumScale;
|
||||
else if (size>m) size = a + b*size + c*(size*size);
|
||||
@@ -230,9 +230,9 @@ void AutoTransform::accept(NodeVisitor& nv)
|
||||
}
|
||||
else if (_autoRotateMode==ROTATE_TO_CAMERA)
|
||||
{
|
||||
osg::Vec3 PosToEye = _position - eyePoint;
|
||||
osg::Vec3d PosToEye = _position - eyePoint;
|
||||
osg::Matrix lookto = osg::Matrix::lookAt(
|
||||
osg::Vec3(0,0,0), PosToEye, localUp);
|
||||
osg::Vec3d(0,0,0), PosToEye, localUp);
|
||||
Quat q;
|
||||
q.set(osg::Matrix::inverse(lookto));
|
||||
setRotation(q);
|
||||
|
||||
@@ -3171,6 +3171,61 @@ void Geometry::copyToAndOptimize(Geometry& target)
|
||||
}
|
||||
}
|
||||
|
||||
bool Geometry::containsSharedArrays() const
|
||||
{
|
||||
unsigned int numSharedArrays = 0;
|
||||
|
||||
if (getVertexArray() && getVertexArray()->referenceCount()>1) ++numSharedArrays;
|
||||
if (getNormalArray() && getNormalArray()->referenceCount()>1) ++numSharedArrays;
|
||||
if (getColorArray() && getColorArray()->referenceCount()>1) ++numSharedArrays;
|
||||
if (getSecondaryColorArray() && getSecondaryColorArray()->referenceCount()>1) ++numSharedArrays;
|
||||
if (getFogCoordArray() && getFogCoordArray()->referenceCount()>1) ++numSharedArrays;
|
||||
|
||||
for(unsigned int ti=0;ti<getNumTexCoordArrays();++ti)
|
||||
{
|
||||
if (getTexCoordArray(ti) && getTexCoordArray(ti)->referenceCount()>1) ++numSharedArrays;
|
||||
}
|
||||
|
||||
for(unsigned int vi=0;vi<_vertexAttribList.size();++vi)
|
||||
{
|
||||
const ArrayData& arrayData = _vertexAttribList[vi];
|
||||
if (arrayData.array.valid() && arrayData.array->referenceCount()>1) ++numSharedArrays;
|
||||
}
|
||||
return numSharedArrays!=0;
|
||||
}
|
||||
|
||||
void Geometry::duplicateSharedArrays()
|
||||
{
|
||||
#define DUPLICATE_IF_REQUIRED(A) \
|
||||
if (get##A() && get##A()->referenceCount()>1) \
|
||||
{ \
|
||||
set##A(dynamic_cast<osg::Array*>(get##A()->clone(osg::CopyOp::DEEP_COPY_ARRAYS))); \
|
||||
}
|
||||
|
||||
DUPLICATE_IF_REQUIRED(VertexArray)
|
||||
DUPLICATE_IF_REQUIRED(NormalArray)
|
||||
DUPLICATE_IF_REQUIRED(ColorArray)
|
||||
DUPLICATE_IF_REQUIRED(SecondaryColorArray)
|
||||
DUPLICATE_IF_REQUIRED(FogCoordArray)
|
||||
|
||||
for(unsigned int ti=0;ti<getNumTexCoordArrays();++ti)
|
||||
{
|
||||
if (getTexCoordArray(ti) && getTexCoordArray(ti)->referenceCount()>1)
|
||||
{
|
||||
setTexCoordArray(ti, dynamic_cast<osg::Array*>(getTexCoordArray(ti)->clone(osg::CopyOp::DEEP_COPY_ARRAYS)));
|
||||
}
|
||||
}
|
||||
|
||||
for(unsigned int vi=0;vi<_vertexAttribList.size();++vi)
|
||||
{
|
||||
ArrayData& arrayData = _vertexAttribList[vi];
|
||||
if (arrayData.array.valid() && arrayData.array->referenceCount()>1)
|
||||
{
|
||||
arrayData.array = dynamic_cast<osg::Array*>(arrayData.array->clone(osg::CopyOp::DEEP_COPY_ARRAYS));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Geometry::computeInternalOptimizedGeometry()
|
||||
{
|
||||
if (suitableForOptimization())
|
||||
|
||||
@@ -226,6 +226,10 @@ int BuildKdTree::divide(KdTree::BuildOptions& options, osg::BoundingBox& bb, int
|
||||
node.bb.expandBy(v1);
|
||||
node.bb.expandBy(v2);
|
||||
|
||||
}
|
||||
|
||||
if (node.bb.valid())
|
||||
{
|
||||
float epsilon = 1e-6;
|
||||
node.bb._min.x() -= epsilon;
|
||||
node.bb._min.y() -= epsilon;
|
||||
@@ -234,7 +238,7 @@ int BuildKdTree::divide(KdTree::BuildOptions& options, osg::BoundingBox& bb, int
|
||||
node.bb._max.y() += epsilon;
|
||||
node.bb._max.z() += epsilon;
|
||||
}
|
||||
|
||||
|
||||
#ifdef VERBOSE_OUTPUT
|
||||
if (!node.bb.valid())
|
||||
{
|
||||
|
||||
@@ -93,10 +93,22 @@ class NullStreamBuffer : public std::streambuf
|
||||
}
|
||||
};
|
||||
|
||||
struct NullStream : public std::ostream
|
||||
{
|
||||
NullStream():
|
||||
std::ostream(new NullStreamBuffer) {}
|
||||
|
||||
virtual ~NullStream()
|
||||
{
|
||||
delete rdbuf();
|
||||
rdbuf(0);
|
||||
}
|
||||
};
|
||||
|
||||
std::ostream& osg::notify(const osg::NotifySeverity severity)
|
||||
{
|
||||
// set up global notify null stream for inline notify
|
||||
static std::ostream s_NotifyNulStream(new NullStreamBuffer());
|
||||
static NullStream s_NotifyNulStream;
|
||||
|
||||
static bool initialized = false;
|
||||
if (!initialized)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -361,14 +361,12 @@ void Texture3D::applyTexImage3D(GLenum target, Image* image, State& state, GLsiz
|
||||
|
||||
if (!compressed_image)
|
||||
{
|
||||
notify(WARN)<<"glTexImage3D '"<<image->getFileName()<<"' data="<<(void*)image->data()<<std::endl;
|
||||
extensions->glTexImage3D( target, 0, _internalFormat,
|
||||
inwidth, inheight, indepth,
|
||||
_borderWidth,
|
||||
(GLenum)image->getPixelFormat(),
|
||||
(GLenum)image->getDataType(),
|
||||
image->data() );
|
||||
notify(WARN)<<"done glTexImage3D"<<std::endl;
|
||||
}
|
||||
else if (extensions->isCompressedTexImage3DSupported())
|
||||
{
|
||||
|
||||
@@ -475,22 +475,34 @@ bool TerrainManipulator::calcMovement()
|
||||
CoordinateFrame coordinateFrame = getCoordinateFrame(_center);
|
||||
|
||||
// need to reintersect with the terrain
|
||||
double distance = _node->getBound().radius()*0.1f;
|
||||
osg::Vec3d start_segment = _center + getUpVector(coordinateFrame) * distance;
|
||||
osg::Vec3d end_segment = start_segment - getUpVector(coordinateFrame) * (2.0f*distance);
|
||||
|
||||
osg::notify(INFO)<<"start="<<start_segment<<"\tend="<<end_segment<<"\tupVector="<<getUpVector(coordinateFrame)<<std::endl;
|
||||
|
||||
osg::Vec3d ip;
|
||||
if (intersect(start_segment,end_segment, ip))
|
||||
double distance = _node->getBound().radius()*0.25f;
|
||||
|
||||
osg::Vec3d ip1;
|
||||
osg::Vec3d ip2;
|
||||
bool hit_ip1 = intersect(_center, _center + getUpVector(coordinateFrame) * distance, ip1);
|
||||
bool hit_ip2 = intersect(_center, _center - getUpVector(coordinateFrame) * distance, ip2);
|
||||
if (hit_ip1)
|
||||
{
|
||||
notify(INFO) << "Hit terrain ok"<< std::endl;
|
||||
|
||||
_center = ip;
|
||||
|
||||
if (hit_ip2)
|
||||
{
|
||||
_center = (_center-ip1).length2() < (_center-ip2).length2() ?
|
||||
ip1 :
|
||||
ip2;
|
||||
|
||||
hitFound = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
_center = ip1;
|
||||
hitFound = true;
|
||||
}
|
||||
}
|
||||
else if (hit_ip2)
|
||||
{
|
||||
_center = ip2;
|
||||
hitFound = true;
|
||||
}
|
||||
|
||||
|
||||
if (!hitFound)
|
||||
{
|
||||
// ??
|
||||
|
||||
@@ -244,27 +244,27 @@ void PrecipitationEffect::traverse(osg::NodeVisitor& nv)
|
||||
{
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_mutex);
|
||||
precipitationDrawableSet = &(_viewDrawableMap[viewIndentifier]);
|
||||
}
|
||||
|
||||
if (!precipitationDrawableSet->_quadPrecipitationDrawable)
|
||||
{
|
||||
precipitationDrawableSet->_quadPrecipitationDrawable = new PrecipitationDrawable;
|
||||
precipitationDrawableSet->_quadPrecipitationDrawable->setRequiresPreviousMatrix(true);
|
||||
precipitationDrawableSet->_quadPrecipitationDrawable->setGeometry(_quadGeometry.get());
|
||||
precipitationDrawableSet->_quadPrecipitationDrawable->setStateSet(_quadStateSet.get());
|
||||
precipitationDrawableSet->_quadPrecipitationDrawable->setDrawType(GL_QUADS);
|
||||
|
||||
precipitationDrawableSet->_linePrecipitationDrawable = new PrecipitationDrawable;
|
||||
precipitationDrawableSet->_linePrecipitationDrawable->setRequiresPreviousMatrix(true);
|
||||
precipitationDrawableSet->_linePrecipitationDrawable->setGeometry(_lineGeometry.get());
|
||||
precipitationDrawableSet->_linePrecipitationDrawable->setStateSet(_lineStateSet.get());
|
||||
precipitationDrawableSet->_linePrecipitationDrawable->setDrawType(GL_LINES);
|
||||
if (!precipitationDrawableSet->_quadPrecipitationDrawable)
|
||||
{
|
||||
precipitationDrawableSet->_quadPrecipitationDrawable = new PrecipitationDrawable;
|
||||
precipitationDrawableSet->_quadPrecipitationDrawable->setRequiresPreviousMatrix(true);
|
||||
precipitationDrawableSet->_quadPrecipitationDrawable->setGeometry(_quadGeometry.get());
|
||||
precipitationDrawableSet->_quadPrecipitationDrawable->setStateSet(_quadStateSet.get());
|
||||
precipitationDrawableSet->_quadPrecipitationDrawable->setDrawType(GL_QUADS);
|
||||
|
||||
precipitationDrawableSet->_pointPrecipitationDrawable = new PrecipitationDrawable;
|
||||
precipitationDrawableSet->_pointPrecipitationDrawable->setRequiresPreviousMatrix(false);
|
||||
precipitationDrawableSet->_pointPrecipitationDrawable->setGeometry(_pointGeometry.get());
|
||||
precipitationDrawableSet->_pointPrecipitationDrawable->setStateSet(_pointStateSet.get());
|
||||
precipitationDrawableSet->_pointPrecipitationDrawable->setDrawType(GL_POINTS);
|
||||
precipitationDrawableSet->_linePrecipitationDrawable = new PrecipitationDrawable;
|
||||
precipitationDrawableSet->_linePrecipitationDrawable->setRequiresPreviousMatrix(true);
|
||||
precipitationDrawableSet->_linePrecipitationDrawable->setGeometry(_lineGeometry.get());
|
||||
precipitationDrawableSet->_linePrecipitationDrawable->setStateSet(_lineStateSet.get());
|
||||
precipitationDrawableSet->_linePrecipitationDrawable->setDrawType(GL_LINES);
|
||||
|
||||
precipitationDrawableSet->_pointPrecipitationDrawable = new PrecipitationDrawable;
|
||||
precipitationDrawableSet->_pointPrecipitationDrawable->setRequiresPreviousMatrix(false);
|
||||
precipitationDrawableSet->_pointPrecipitationDrawable->setGeometry(_pointGeometry.get());
|
||||
precipitationDrawableSet->_pointPrecipitationDrawable->setStateSet(_pointStateSet.get());
|
||||
precipitationDrawableSet->_pointPrecipitationDrawable->setDrawType(GL_POINTS);
|
||||
}
|
||||
}
|
||||
|
||||
cull(*precipitationDrawableSet, cv);
|
||||
|
||||
@@ -105,7 +105,9 @@ ExportOptions::ExportOptions( const osgDB::ReaderWriter::Options* opt )
|
||||
: _version( VERSION_16_1 ),
|
||||
_units( METERS ),
|
||||
_validate( false ),
|
||||
_lightingDefault( true )
|
||||
_lightingDefault( true ),
|
||||
_stripTextureFilePath( false )
|
||||
|
||||
{
|
||||
if (opt)
|
||||
{
|
||||
|
||||
@@ -256,22 +256,24 @@ FltExportVisitor::apply( osg::MatrixTransform& node )
|
||||
(*m) *= *rm;
|
||||
}
|
||||
|
||||
std::vector< osg::Referenced* > saveUserDataList;
|
||||
typedef std::vector< osg::ref_ptr< osg::Referenced > > UserDataList;
|
||||
|
||||
UserDataList saveUserDataList( node.getNumChildren() );
|
||||
|
||||
unsigned int idx;
|
||||
for( idx=0; idx<node.getNumChildren(); idx++ )
|
||||
for( idx=0; idx<node.getNumChildren(); ++idx )
|
||||
{
|
||||
saveUserDataList.push_back( node.getChild( idx )->getUserData() );
|
||||
saveUserDataList[ idx ] = node.getChild( idx )->getUserData();
|
||||
node.getChild( idx )->setUserData( m.get() );
|
||||
}
|
||||
|
||||
traverse( (osg::Node&)node );
|
||||
|
||||
// Restore saved UserData.
|
||||
unsigned int nd = node.getNumChildren();
|
||||
while (nd--)
|
||||
node.getChild( nd )->setUserData(
|
||||
saveUserDataList[ nd ] );
|
||||
|
||||
for( idx=0; idx< node.getNumChildren(); ++idx )
|
||||
{
|
||||
node.getChild( idx )->setUserData( saveUserDataList[ idx ].get() );
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
@@ -280,27 +282,29 @@ FltExportVisitor::apply( osg::PositionAttitudeTransform& node )
|
||||
_firstNode = false;
|
||||
ScopedStatePushPop guard( this, node.getStateSet() );
|
||||
|
||||
osg::ref_ptr<osg::RefMatrix> m = new osg::RefMatrix;
|
||||
osg::ref_ptr<osg::RefMatrix> m = new osg::RefMatrix(
|
||||
osg::Matrix::translate( -node.getPivotPoint() ) *
|
||||
osg::Matrix::scale( node.getScale() ) *
|
||||
osg::Matrix::rotate( node.getAttitude() ) *
|
||||
osg::Matrix::translate( node.getPosition() ) );
|
||||
|
||||
const osg::Vec3d& trans = node.getPosition();
|
||||
const osg::Quat& rot = node.getAttitude();
|
||||
m->set(osg::Matrix::translate(trans) * osg::Matrix::rotate(rot) );
|
||||
typedef std::vector< osg::ref_ptr< osg::Referenced > > UserDataList;
|
||||
UserDataList saveUserDataList( node.getNumChildren() );
|
||||
|
||||
std::vector< osg::Referenced* > saveUserDataList;
|
||||
unsigned int idx;
|
||||
for( idx=0; idx<node.getNumChildren(); idx++ )
|
||||
for( idx=0; idx<node.getNumChildren(); ++idx )
|
||||
{
|
||||
saveUserDataList.push_back( node.getChild( idx )->getUserData() );
|
||||
saveUserDataList[ idx ] = node.getChild( idx )->getUserData();
|
||||
node.getChild( idx )->setUserData( m.get() );
|
||||
}
|
||||
|
||||
traverse( (osg::Node&)node );
|
||||
|
||||
// Restore saved UserData.
|
||||
unsigned int nd = node.getNumChildren();
|
||||
while (nd--)
|
||||
node.getChild( nd )->setUserData(
|
||||
saveUserDataList[ nd ] );
|
||||
for( idx=0; idx<node.getNumChildren(); ++idx )
|
||||
{
|
||||
node.getChild( idx )->setUserData( saveUserDataList[ idx ].get() );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ void AutoTransform::write(DataOutputStream* out){
|
||||
{
|
||||
out->writeFloat(getMinimumScale());
|
||||
out->writeFloat(getMaximumScale());
|
||||
out->writeFloat(getAutoScaleTransistionWidthRatio());
|
||||
out->writeFloat(getAutoScaleTransitionWidthRatio());
|
||||
}
|
||||
|
||||
out->writeQuat(getRotation());
|
||||
@@ -76,7 +76,7 @@ void AutoTransform::read(DataInputStream* in){
|
||||
{
|
||||
setMinimumScale(in->readFloat());
|
||||
setMaximumScale(in->readFloat());
|
||||
setAutoScaleTransistionWidthRatio(in->readFloat());
|
||||
setAutoScaleTransitionWidthRatio(in->readFloat());
|
||||
}
|
||||
|
||||
setRotation(in->readQuat());
|
||||
|
||||
61
src/osgPlugins/ive/BlendEquation.cpp
Normal file
61
src/osgPlugins/ive/BlendEquation.cpp
Normal file
@@ -0,0 +1,61 @@
|
||||
/**********************************************************************
|
||||
*
|
||||
* FILE: BlendEquation.cpp
|
||||
*
|
||||
* DESCRIPTION: Read/Write osg::BlendEquation in binary format to disk.
|
||||
*
|
||||
* CREATED BY: Auto generated by iveGenerated
|
||||
* and later modified by Rune Schmidt Jensen.
|
||||
*
|
||||
* HISTORY: Created 21.3.2003
|
||||
*
|
||||
* Copyright 2003 VR-C
|
||||
**********************************************************************/
|
||||
|
||||
#include "Exception.h"
|
||||
#include "BlendEquation.h"
|
||||
#include "Object.h"
|
||||
|
||||
using namespace ive;
|
||||
|
||||
void BlendEquation::write(DataOutputStream* out){
|
||||
|
||||
// Write BlendEquation's identification.
|
||||
out->writeInt(IVEBLENDEQUATION);
|
||||
|
||||
// If the osg class is inherited by any other class we should also write this to file.
|
||||
osg::Object* obj = dynamic_cast<osg::Object*>(this);
|
||||
if(obj){
|
||||
((ive::Object*)(obj))->write(out);
|
||||
}
|
||||
else
|
||||
throw Exception("BlendEquation::write(): Could not cast this osg::BlendEquation to an osg::Object.");
|
||||
// Write BlendEquation's properties.
|
||||
|
||||
// Write source
|
||||
out->writeInt(getEquation());
|
||||
}
|
||||
|
||||
void BlendEquation::read(DataInputStream* in){
|
||||
// Peek on BlendEquation's identification.
|
||||
int id = in->peekInt();
|
||||
if(id == IVEBLENDEQUATION){
|
||||
// Read BlendEquation's identification.
|
||||
id = in->readInt();
|
||||
// If the osg class is inherited by any other class we should also read this from file.
|
||||
osg::Object* obj = dynamic_cast<osg::Object*>(this);
|
||||
if(obj){
|
||||
((ive::Object*)(obj))->read(in);
|
||||
}
|
||||
else
|
||||
throw Exception("BlendEquation::read(): Could not cast this osg::BlendEquation to an osg::Object.");
|
||||
// Read BlendEquation's properties
|
||||
|
||||
// Read source
|
||||
setEquation(osg::BlendEquation::Equation(in->readInt()));
|
||||
|
||||
}
|
||||
else{
|
||||
throw Exception("BlendEquation::read(): Expected BlendEquation identification.");
|
||||
}
|
||||
}
|
||||
15
src/osgPlugins/ive/BlendEquation.h
Normal file
15
src/osgPlugins/ive/BlendEquation.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#ifndef IVE_BLENDEQUATION
|
||||
#define IVE_BLENDEQUATION 1
|
||||
|
||||
#include <osg/BlendEquation>
|
||||
#include "ReadWrite.h"
|
||||
|
||||
namespace ive{
|
||||
class BlendEquation : public osg::BlendEquation, public ReadWrite {
|
||||
public:
|
||||
void write(DataOutputStream* out);
|
||||
void read(DataInputStream* in);
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -10,6 +10,7 @@ SET(TARGET_SRC
|
||||
AzimSector.cpp
|
||||
Billboard.cpp
|
||||
BlendColor.cpp
|
||||
BlendEquation.cpp
|
||||
BlendFunc.cpp
|
||||
BlinkSequence.cpp
|
||||
Camera.cpp
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "BlendColor.h"
|
||||
#include "Stencil.h"
|
||||
#include "BlendFunc.h"
|
||||
#include "BlendEquation.h"
|
||||
#include "Depth.h"
|
||||
#include "Material.h"
|
||||
#include "CullFace.h"
|
||||
@@ -1097,6 +1098,10 @@ osg::StateAttribute* DataInputStream::readStateAttribute()
|
||||
attribute = new osg::BlendFunc();
|
||||
((ive::BlendFunc*)(attribute))->read(this);
|
||||
}
|
||||
else if(attributeID == IVEBLENDEQUATION){
|
||||
attribute = new osg::BlendEquation();
|
||||
((ive::BlendEquation*)(attribute))->read(this);
|
||||
}
|
||||
else if(attributeID == IVEDEPTH){
|
||||
attribute = new osg::Depth();
|
||||
((ive::Depth*)(attribute))->read(this);
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "BlendColor.h"
|
||||
#include "Stencil.h"
|
||||
#include "BlendFunc.h"
|
||||
#include "BlendEquation.h"
|
||||
#include "Material.h"
|
||||
#include "CullFace.h"
|
||||
#include "ColorMask.h"
|
||||
@@ -723,6 +724,9 @@ void DataOutputStream::writeStateAttribute(const osg::StateAttribute* attribute)
|
||||
else if(dynamic_cast<const osg::BlendFunc*>(attribute)){
|
||||
((ive::BlendFunc*)(attribute))->write(this);
|
||||
}
|
||||
else if(dynamic_cast<const osg::BlendEquation*>(attribute)){
|
||||
((ive::BlendEquation*)(attribute))->write(this);
|
||||
}
|
||||
else if(dynamic_cast<const osg::Depth*>(attribute)){
|
||||
((ive::Depth*)(attribute))->write(this);
|
||||
}
|
||||
|
||||
@@ -72,6 +72,7 @@ namespace ive {
|
||||
#define IVESTENCIL 0x00000131
|
||||
#define IVESTENCILTWOSIDED 0x00000132
|
||||
#define IVECOLORMASK 0x00000133
|
||||
#define IVEBLENDEQUATION 0x00000134
|
||||
#define IVELIGHTMODEL 0x00001121
|
||||
#define IVECLIPPLANE 0x00001122
|
||||
#define IVEFRONTFACE 0x00001123
|
||||
|
||||
@@ -140,12 +140,13 @@ bool AutoTransform_readLocalData(Object& obj, Input& fr)
|
||||
iteratorAdvanced = true;
|
||||
}
|
||||
|
||||
if (fr.matchSequence("autoScaleTransistionWidthRatio %f"))
|
||||
if (fr.matchSequence("autoScaleTransistionWidthRatio %f") ||
|
||||
fr.matchSequence("autoScaleTransitionWidthRatio %f"))
|
||||
{
|
||||
float ratio;
|
||||
fr[1].getFloat(ratio);
|
||||
|
||||
transform.setAutoScaleTransistionWidthRatio(ratio);
|
||||
transform.setAutoScaleTransitionWidthRatio(ratio);
|
||||
|
||||
fr += 2;
|
||||
iteratorAdvanced = true;
|
||||
@@ -181,9 +182,9 @@ bool AutoTransform_writeLocalData(const Object& obj, Output& fw)
|
||||
|
||||
fw.indent()<<"autoScaleToScreen "<<(transform.getAutoScaleToScreen()?"TRUE":"FALSE")<<std::endl;
|
||||
|
||||
if (transform.getAutoScaleTransistionWidthRatio()!=0.25)
|
||||
if (transform.getAutoScaleTransitionWidthRatio()!=0.25)
|
||||
{
|
||||
fw.indent()<<"autoScaleTransistionWidthRatio "<<transform.getAutoScaleTransistionWidthRatio()<<std::endl;
|
||||
fw.indent()<<"autoScaleTransitionWidthRatio "<<transform.getAutoScaleTransitionWidthRatio()<<std::endl;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
84
src/osgPlugins/osg/BlendEquation.cpp
Normal file
84
src/osgPlugins/osg/BlendEquation.cpp
Normal file
@@ -0,0 +1,84 @@
|
||||
#include "osg/BlendEquation"
|
||||
|
||||
#include "osgDB/Registry"
|
||||
#include "osgDB/Input"
|
||||
#include "osgDB/Output"
|
||||
|
||||
using namespace osg;
|
||||
using namespace osgDB;
|
||||
|
||||
// forward declare functions to use later.
|
||||
bool BlendEquation_readLocalData(Object& obj, Input& fr);
|
||||
bool BlendEquation_writeLocalData(const Object& obj, Output& fw);
|
||||
|
||||
bool BlendEquation_matchModeStr(const char* str,int& mode);
|
||||
const char* BlendEquation_getModeStr(int value);
|
||||
|
||||
// register the read and write functions with the osgDB::Registry.
|
||||
RegisterDotOsgWrapperProxy g_BlendEquationProxy
|
||||
(
|
||||
new osg::BlendEquation,
|
||||
"BlendEquation",
|
||||
"Object StateAttribute BlendEquation",
|
||||
&BlendEquation_readLocalData,
|
||||
&BlendEquation_writeLocalData
|
||||
);
|
||||
|
||||
bool BlendEquation_readLocalData(Object& obj, Input& fr)
|
||||
{
|
||||
bool iteratorAdvanced = false;
|
||||
|
||||
BlendEquation& transparency = static_cast<BlendEquation&>(obj);
|
||||
|
||||
int mode;
|
||||
if (fr[0].matchWord("equation") && BlendEquation_matchModeStr(fr[1].getStr(),mode))
|
||||
{
|
||||
transparency.setEquation(osg::BlendEquation::Equation(mode));
|
||||
fr+=2;
|
||||
iteratorAdvanced = true;
|
||||
}
|
||||
|
||||
return iteratorAdvanced;
|
||||
}
|
||||
|
||||
bool BlendEquation_writeLocalData(const Object& obj, Output& fw)
|
||||
{
|
||||
const BlendEquation& transparency = static_cast<const BlendEquation&>(obj);
|
||||
|
||||
fw.indent() << "equation " << BlendEquation_getModeStr(transparency.getEquation()) << std::endl;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool BlendEquation_matchModeStr(const char* str,int& mode)
|
||||
{
|
||||
if (strcmp(str,"RGBA_MIN")==0) mode = BlendEquation::RGBA_MIN;
|
||||
else if (strcmp(str,"RGBA_MAX")==0) mode = BlendEquation::RGBA_MAX;
|
||||
else if (strcmp(str,"ALPHA_MIN")==0) mode = BlendEquation::ALPHA_MIN;
|
||||
else if (strcmp(str,"ALPHA_MAX")==0) mode = BlendEquation::ALPHA_MAX;
|
||||
else if (strcmp(str,"LOGIC_OP")==0) mode = BlendEquation::LOGIC_OP;
|
||||
else if (strcmp(str,"FUNC_ADD")==0) mode = BlendEquation::FUNC_ADD;
|
||||
else if (strcmp(str,"FUNC_SUBTRACT")==0) mode = BlendEquation::FUNC_SUBTRACT;
|
||||
else if (strcmp(str,"FUNC_REVERSE_SUBTRACT")==0) mode = BlendEquation::FUNC_REVERSE_SUBTRACT;
|
||||
else return false;
|
||||
return true;
|
||||
|
||||
}
|
||||
const char* BlendEquation_getModeStr(int value)
|
||||
{
|
||||
switch(value)
|
||||
{
|
||||
case(BlendEquation::RGBA_MIN) : return "RGBA_MIN";
|
||||
case(BlendEquation::RGBA_MAX) : return "RGBA_MAX";
|
||||
case(BlendEquation::ALPHA_MIN) : return "ALPHA_MIN";
|
||||
case(BlendEquation::ALPHA_MAX) : return "ALPHA_MAX";
|
||||
case(BlendEquation::LOGIC_OP) : return "LOGIC_OP";
|
||||
case(BlendEquation::FUNC_ADD) : return "FUNC_ADD";
|
||||
case(BlendEquation::FUNC_SUBTRACT) : return "FUNC_SUBTRACT";
|
||||
case(BlendEquation::FUNC_REVERSE_SUBTRACT) : return "FUNC_REVERSE_SUBTRACT";
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@@ -8,6 +8,7 @@ AutoTransform.cpp
|
||||
Billboard.cpp
|
||||
BlendColor.cpp
|
||||
BlendFunc.cpp
|
||||
BlendEquation.cpp
|
||||
Camera.cpp
|
||||
CameraView.cpp
|
||||
ClearNode.cpp
|
||||
|
||||
@@ -247,10 +247,11 @@ Handle getPtrDataRef(unsigned char *data, unsigned int size, const std::string &
|
||||
|
||||
// Convert From CString in filename to a PascalString in pstr
|
||||
if (filename.length() > 255) {
|
||||
CopyCStringToPascal(filename.c_str(), pstr);
|
||||
//hmm...not good, pascal string limit is 255!
|
||||
//do some error handling maybe?!
|
||||
throw QTImportExportException(0, "filename length limit exceeded");
|
||||
}
|
||||
CopyCStringToPascal(filename.c_str(), pstr);
|
||||
|
||||
// Add filename extension
|
||||
/*err = */PtrToHand(pstr, &fileNameHandle, filename.length() + 1);
|
||||
@@ -282,7 +283,7 @@ osg::Image* QuicktimeImportExport::doImport(unsigned char* data, unsigned int si
|
||||
ImageDescriptionHandle desc = 0;
|
||||
int depth = 32;
|
||||
unsigned int xsize, ysize;
|
||||
unsigned char* imageData;
|
||||
unsigned char* imageData = 0;
|
||||
|
||||
// Data Handle for file data ( & load data from file )
|
||||
Handle dataRef = getPtrDataRef(data, sizeData, fileTypeHint);
|
||||
@@ -359,7 +360,7 @@ osg::Image* QuicktimeImportExport::doImport(unsigned char* data, unsigned int si
|
||||
DisposeHandle(reinterpret_cast<char **>(desc));
|
||||
DisposeHandle(dataRef);
|
||||
}
|
||||
catch (QTImportExportException e)
|
||||
catch (QTImportExportException& e)
|
||||
{
|
||||
setError(e.what());
|
||||
|
||||
@@ -383,9 +384,9 @@ osg::Image* QuicktimeImportExport::doImport(unsigned char* data, unsigned int si
|
||||
|
||||
|
||||
|
||||
unsigned int bytesPerPixel = depth / 8;
|
||||
unsigned int glpixelFormat;
|
||||
|
||||
switch(depth >> 3) {
|
||||
switch(bytesPerPixel) {
|
||||
case 3 :
|
||||
glpixelFormat = GL_RGB;
|
||||
break;
|
||||
@@ -393,20 +394,20 @@ osg::Image* QuicktimeImportExport::doImport(unsigned char* data, unsigned int si
|
||||
glpixelFormat = GL_RGBA;
|
||||
break;
|
||||
default :
|
||||
delete imageData;
|
||||
delete[] imageData;
|
||||
setError("unknown pixelformat");
|
||||
return NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
unsigned char* swizzled = pepareBufferForOSG(imageData, depth >> 3, xsize, ysize);
|
||||
unsigned char* swizzled = pepareBufferForOSG(imageData, bytesPerPixel, xsize, ysize);
|
||||
|
||||
delete[] imageData;
|
||||
|
||||
osg::Image* image = new osg::Image();
|
||||
image->setFileName(fileTypeHint.c_str());
|
||||
image->setImage(xsize,ysize,1,
|
||||
depth >> 3,
|
||||
bytesPerPixel,
|
||||
glpixelFormat,
|
||||
GL_UNSIGNED_BYTE,
|
||||
swizzled,
|
||||
@@ -510,7 +511,7 @@ osg::Image* QuicktimeImportExport::doImport(unsigned char* data, unsigned int si
|
||||
}
|
||||
|
||||
|
||||
catch (QTImportExportException e)
|
||||
catch (QTImportExportException& e)
|
||||
{
|
||||
setError(e.what());
|
||||
|
||||
|
||||
@@ -53,9 +53,9 @@ using namespace osgShadow;
|
||||
#define TEXTURE_RESOLUTION 1024
|
||||
|
||||
|
||||
|
||||
|
||||
#define ZNEAR_MIN_FROM_LIGHT_SOURCE 5.0
|
||||
|
||||
|
||||
#define ZNEAR_MIN_FROM_LIGHT_SOURCE 5.0
|
||||
#define MOVE_VIRTUAL_CAMERA_BEHIND_REAL_CAMERA_FACTOR 0.0
|
||||
|
||||
//#define SHOW_SHADOW_TEXTURE_DEBUG // DEPTH instead of color for debug information texture display in a rectangle
|
||||
@@ -64,19 +64,19 @@ using namespace osgShadow;
|
||||
#ifndef SHADOW_TEXTURE_DEBUG
|
||||
#define SHADOW_TEXTURE_GLSL
|
||||
#endif
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// FragmentShaderGenerator
|
||||
std::string ParallelSplitShadowMap::FragmentShaderGenerator::generateGLSL_FragmentShader_BaseTex(
|
||||
bool debug,
|
||||
bool debug,
|
||||
unsigned int splitCount,
|
||||
double textureRes,
|
||||
bool filtered,
|
||||
bool filtered,
|
||||
unsigned int nbrSplits,
|
||||
unsigned int textureOffset
|
||||
) {
|
||||
std::stringstream sstr;
|
||||
|
||||
|
||||
/// base texture
|
||||
sstr << "uniform sampler2D baseTexture; " << std::endl;
|
||||
sstr << "uniform float enableBaseTexture; " << std::endl;
|
||||
@@ -88,7 +88,7 @@ std::string ParallelSplitShadowMap::FragmentShaderGenerator::generateGLSL_Fragme
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
sstr << "void main(void)" << std::endl;
|
||||
sstr << "{" << std::endl;
|
||||
@@ -101,15 +101,15 @@ std::string ParallelSplitShadowMap::FragmentShaderGenerator::generateGLSL_Fragme
|
||||
sstr << "float map" << i << " = step(zShadow"<<i-1<<",testZ)*step(testZ, zShadow"<<i<<");"<< std::endl;//DEBUG
|
||||
}
|
||||
|
||||
if (filtered) {
|
||||
if (filtered) {
|
||||
sstr << " float fTexelSize="<< (sqrt(2.0) / textureRes ) <<";" << std::endl;
|
||||
}
|
||||
for (unsigned int i=0;i<nbrSplits;i++) {
|
||||
if (!filtered) {
|
||||
if (!filtered) {
|
||||
sstr << " float shadow" << i <<" = shadow2DProj( shadowTexture" << i <<",gl_TexCoord[" << (i+textureOffset) <<"]).r;" << std::endl;
|
||||
} else {
|
||||
|
||||
|
||||
|
||||
|
||||
// filter the shadow (look up)
|
||||
sstr << " float shadowOrg" << i <<" = shadow2DProj( shadowTexture" << i <<",gl_TexCoord[" << (i+textureOffset) <<"]).r;" << std::endl;
|
||||
sstr << " float shadow0" << i <<" = shadow2DProj( shadowTexture" << i <<",gl_TexCoord[" << (i+textureOffset) <<"]+vec4(-fTexelSize,-fTexelSize,0,0) ).r;" << std::endl;
|
||||
@@ -125,11 +125,11 @@ std::string ParallelSplitShadowMap::FragmentShaderGenerator::generateGLSL_Fragme
|
||||
}
|
||||
sstr << " shadow" << i <<" = step(0.25,shadow" << i <<");" << std::endl; // reduce shadow artefacts
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
sstr << " float term0 = (1.0-shadow0)*map0; " << std::endl;
|
||||
for (unsigned int i=1;i<nbrSplits;i++) {
|
||||
sstr << " float term" << i << " = map"<< i << "*(1.0-shadow"<<i<<");"<< std::endl;
|
||||
sstr << " float term" << i << " = map"<< i << "*(1.0-shadow"<<i<<");"<< std::endl;
|
||||
}
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@ std::string ParallelSplitShadowMap::FragmentShaderGenerator::generateGLSL_Fragme
|
||||
|
||||
sstr << " vec4 color = gl_Color*( 1.0 - sumTerm ) + (sumTerm)* gl_Color*vec4(c0,(1.0-c0)*c1,(1.0-c0)*(1.0-c1)*c2,1.0); " << std::endl;
|
||||
|
||||
|
||||
|
||||
switch(nbrSplits){
|
||||
case 1: sstr << " color = color*0.75 + vec4(map0,0,0,1.0)*0.25; " << std::endl;break;
|
||||
case 2: sstr << " color = color*0.75 + vec4(map0,map1,0,1.0)*0.25; " << std::endl;break;
|
||||
@@ -173,13 +173,13 @@ std::string ParallelSplitShadowMap::FragmentShaderGenerator::generateGLSL_Fragme
|
||||
case 6: sstr << " color = color*0.75 + vec4(map0+map3+map5,map1+map3+map4,map2+map4+map5,1.0)*0.25; " << std::endl; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
} else {
|
||||
sstr << " vec4 color = gl_Color; "<< std::endl;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -194,7 +194,7 @@ std::string ParallelSplitShadowMap::FragmentShaderGenerator::generateGLSL_Fragme
|
||||
sstr << " gl_FragColor.a = (color*(1.0-enableBaseTextureFilter) + colorTex*enableBaseTextureFilter).a; "<< std::endl;
|
||||
|
||||
|
||||
|
||||
|
||||
sstr << "}"<< std::endl;
|
||||
|
||||
//std::cout << sstr.str() << std::endl;
|
||||
@@ -344,7 +344,7 @@ void ParallelSplitShadowMap::init(){
|
||||
osg::StateSet* stateset = pssmShadowSplitTexture._camera->getOrCreateStateSet();
|
||||
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
float factor = _polgyonOffset.x();
|
||||
float units = _polgyonOffset.y();
|
||||
@@ -356,7 +356,7 @@ void ParallelSplitShadowMap::init(){
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
if ( ! _GLSL_shadow_filtered ) {
|
||||
if ( ! _GLSL_shadow_filtered ) {
|
||||
// if not glsl filtering enabled then we should force front face culling to reduce the number of shadow artefacts.
|
||||
osg::ref_ptr<osg::CullFace> cull_face = new osg::CullFace;
|
||||
cull_face->setMode(osg::CullFace::FRONT);
|
||||
@@ -396,7 +396,7 @@ void ParallelSplitShadowMap::init(){
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// GLSL PROGRAMS
|
||||
osg::Shader* fragment_shader = new osg::Shader(osg::Shader::FRAGMENT,
|
||||
osg::Shader* fragment_shader = new osg::Shader(osg::Shader::FRAGMENT,
|
||||
_FragmentShaderGenerator->generateGLSL_FragmentShader_BaseTex(
|
||||
_debug_color_in_GLSL,
|
||||
iCameras,
|
||||
@@ -407,7 +407,7 @@ void ParallelSplitShadowMap::init(){
|
||||
).c_str());
|
||||
program->addShader(fragment_shader);
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// UNIFORMS
|
||||
std::stringstream strST; strST << "shadowTexture" << (pssmShadowSplitTexture._textureUnit-_textureUnitOffset);
|
||||
@@ -419,7 +419,7 @@ void ParallelSplitShadowMap::init(){
|
||||
_ambientBiasUniform = new osg::Uniform("ambientBias",_ambientBias);
|
||||
pssmShadowSplitTexture._stateset->addUniform(_ambientBiasUniform);
|
||||
}
|
||||
|
||||
|
||||
|
||||
std::stringstream strzShadow; strzShadow << "zShadow" << (pssmShadowSplitTexture._textureUnit-_textureUnitOffset);
|
||||
pssmShadowSplitTexture._farDistanceSplit = new osg::Uniform(strzShadow.str().c_str(),1.0f);
|
||||
@@ -571,7 +571,7 @@ void ParallelSplitShadowMap::cull(osgUtil::CullVisitor& cv){
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
const osg::Light* selectLight = 0;
|
||||
|
||||
/// light pos and light direction
|
||||
/// light pos and light direction
|
||||
osg::Vec4 lightpos;
|
||||
osg::Vec3 lightDirection;
|
||||
|
||||
@@ -605,7 +605,7 @@ void ParallelSplitShadowMap::cull(osgUtil::CullVisitor& cv){
|
||||
lightpos = _userLight->getPosition();
|
||||
lightDirection = _userLight->getDirection();
|
||||
selectLight = _userLight.get();
|
||||
}
|
||||
}
|
||||
|
||||
if (selectLight)
|
||||
{
|
||||
@@ -617,7 +617,7 @@ void ParallelSplitShadowMap::cull(osgUtil::CullVisitor& cv){
|
||||
{
|
||||
PSSMShadowSplitTexture pssmShadowSplitTexture = it->second;
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// SETUP pssmShadowSplitTexture for rendering
|
||||
//
|
||||
@@ -641,7 +641,7 @@ void ParallelSplitShadowMap::cull(osgUtil::CullVisitor& cv){
|
||||
|
||||
// Init Light (Directional Light)
|
||||
//
|
||||
calculateLightInitalPosition(pssmShadowSplitTexture,pCorners);
|
||||
calculateLightInitialPosition(pssmShadowSplitTexture,pCorners);
|
||||
|
||||
// Calculate near and far for light view
|
||||
//
|
||||
@@ -682,7 +682,7 @@ void ParallelSplitShadowMap::cull(osgUtil::CullVisitor& cv){
|
||||
|
||||
// do RTT camera traversal
|
||||
pssmShadowSplitTexture._camera->accept(cv);
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// DEBUG
|
||||
if ( _displayTexturesGroupingNode ) {
|
||||
@@ -781,11 +781,11 @@ void ParallelSplitShadowMap::calculateFrustumCorners(
|
||||
|
||||
delete[] pSplitDistances;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
pssmShadowSplitTexture._split_far = camFar;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// TRANSFORM frustum corners (Optimized for Orthogonal)
|
||||
@@ -805,7 +805,7 @@ void ParallelSplitShadowMap::calculateFrustumCorners(
|
||||
frustumCorners[4] = const_pointFarTL * invProjViewMat;
|
||||
frustumCorners[5] = const_pointFarBL * invProjViewMat;
|
||||
frustumCorners[6] = const_pointNearBL* invProjViewMat;
|
||||
frustumCorners[7] = const_pointNearTL* invProjViewMat;
|
||||
frustumCorners[7] = const_pointNearTL* invProjViewMat;
|
||||
|
||||
//std::cout << "camFar : "<<pssmShadowSplitTexture._splitID << " / " << camNear << "," << camFar << std::endl;
|
||||
}
|
||||
@@ -813,14 +813,14 @@ void ParallelSplitShadowMap::calculateFrustumCorners(
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// compute directional light initial position;
|
||||
void ParallelSplitShadowMap::calculateLightInitalPosition(PSSMShadowSplitTexture &pssmShadowSplitTexture,osg::Vec3d *frustumCorners){
|
||||
void ParallelSplitShadowMap::calculateLightInitialPosition(PSSMShadowSplitTexture &pssmShadowSplitTexture,osg::Vec3d *frustumCorners){
|
||||
pssmShadowSplitTexture._frustumSplitCenter = frustumCorners[0];
|
||||
for(int i=1;i<8;i++) {
|
||||
pssmShadowSplitTexture._frustumSplitCenter +=frustumCorners[i];
|
||||
}
|
||||
pssmShadowSplitTexture._frustumSplitCenter /= 8.0;
|
||||
|
||||
|
||||
|
||||
|
||||
//
|
||||
// To avoid edge problems, scale the frustum so
|
||||
// that it's at least a few pixels larger
|
||||
@@ -830,7 +830,7 @@ void ParallelSplitShadowMap::calculateLightInitalPosition(PSSMShadowSplitTexture
|
||||
// scale by adding offset from center
|
||||
frustumCorners[i]+=(frustumCorners[i]-pssmShadowSplitTexture._frustumSplitCenter)*(0.75);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void ParallelSplitShadowMap::calculateLightNearFarFormFrustum(
|
||||
@@ -845,20 +845,20 @@ void ParallelSplitShadowMap::calculateLightNearFarFormFrustum(
|
||||
for(int i=0;i<8;i++) {
|
||||
double dist_z_from_light = fabs(pssmShadowSplitTexture._lightDirection*(frustumCorners[i] - pssmShadowSplitTexture._frustumSplitCenter));
|
||||
if ( zFar < dist_z_from_light ) zFar = dist_z_from_light;
|
||||
}
|
||||
}
|
||||
|
||||
// update camera position and look at center
|
||||
pssmShadowSplitTexture._lightCameraSource = pssmShadowSplitTexture._frustumSplitCenter - pssmShadowSplitTexture._lightDirection*(zFar+_split_min_near_dist);
|
||||
pssmShadowSplitTexture._lightCameraTarget = pssmShadowSplitTexture._frustumSplitCenter + pssmShadowSplitTexture._lightDirection*(zFar);
|
||||
|
||||
// calculate [zNear,zFar]
|
||||
|
||||
// calculate [zNear,zFar]
|
||||
zFar = (-DBL_MAX);
|
||||
double zNear(DBL_MAX);
|
||||
for(int i=0;i<8;i++) {
|
||||
double dist_z_from_light = fabs(pssmShadowSplitTexture._lightDirection*(frustumCorners[i] - pssmShadowSplitTexture._lightCameraSource));
|
||||
if ( zFar < dist_z_from_light ) zFar = dist_z_from_light;
|
||||
if ( zNear > dist_z_from_light ) zNear = dist_z_from_light;
|
||||
}
|
||||
}
|
||||
// update near - far plane
|
||||
pssmShadowSplitTexture._lightNear = max(zNear - _split_min_near_dist - 0.01,0.01);
|
||||
pssmShadowSplitTexture._lightFar = zFar;
|
||||
@@ -874,37 +874,37 @@ void ParallelSplitShadowMap::calculateLightViewProjectionFormFrustum(PSSMShadowS
|
||||
// calculate the camera's coordinate system
|
||||
osg::Vec3d camEye,camCenter,camUp;
|
||||
pssmShadowSplitTexture._cameraView.getLookAt(camEye,camCenter,camUp);
|
||||
osg::Vec3d viewDir(camCenter-camEye);
|
||||
osg::Vec3d viewDir(camCenter-camEye);
|
||||
osg::Vec3d camRight(camUp^viewDir);
|
||||
|
||||
// we force to have normalized vectors (camera's view)
|
||||
camUp.normalize();
|
||||
viewDir.normalize();
|
||||
camRight.normalize();
|
||||
|
||||
|
||||
// use quaternion -> numerical more robust
|
||||
osg::Quat qRot;
|
||||
qRot.makeRotate(viewDir,pssmShadowSplitTexture._lightDirection);
|
||||
osg::Vec3d top = qRot * camUp;
|
||||
osg::Vec3d right = qRot * camRight;
|
||||
|
||||
|
||||
// calculate the camera's frustum right,right,bottom,top parameters
|
||||
double maxRight(-DBL_MAX),maxTop(-DBL_MAX);
|
||||
double minRight(DBL_MAX),minTop(DBL_MAX);
|
||||
|
||||
for(int i(0); i < 8; i++)
|
||||
{
|
||||
|
||||
{
|
||||
|
||||
osg::Vec3d diffCorner(pssmShadowSplitTexture._lightCameraSource - frustumCorners[i]);
|
||||
double lright(diffCorner*right);
|
||||
double lTop(diffCorner*top);
|
||||
double lright(diffCorner*right);
|
||||
double lTop(diffCorner*top);
|
||||
|
||||
if ( lright > maxRight ) maxRight = lright;
|
||||
if ( lTop > maxTop ) maxTop = lTop;
|
||||
|
||||
if ( lright < minRight ) minRight = lright;
|
||||
if ( lTop < minTop ) minTop = lTop;
|
||||
}
|
||||
}
|
||||
|
||||
// make the camera view matrix
|
||||
pssmShadowSplitTexture._camera->setViewMatrixAsLookAt(pssmShadowSplitTexture._lightCameraSource,pssmShadowSplitTexture._lightCameraTarget,top);
|
||||
@@ -918,7 +918,7 @@ void ParallelSplitShadowMap::calculateLightViewProjectionFormFrustum(PSSMShadowS
|
||||
osg::Vec3d vProjCamFraValue = (camEye + viewDir * pssmShadowSplitTexture._split_far) * (pssmShadowSplitTexture._cameraView * pssmShadowSplitTexture._cameraProj);
|
||||
pssmShadowSplitTexture._farDistanceSplit->set((float)vProjCamFraValue.z());
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -922,6 +922,12 @@ void OverlayNode::setRenderTargetImplementation(osg::Camera::RenderTargetImpleme
|
||||
_renderTargetImpl = impl;
|
||||
|
||||
init();
|
||||
for(OverlayDataMap::const_iterator itr = _overlayDataMap.begin();
|
||||
itr != _overlayDataMap.end();
|
||||
++itr)
|
||||
{
|
||||
itr->second->_camera->setRenderTargetImplementation(_renderTargetImpl);
|
||||
}
|
||||
}
|
||||
|
||||
OverlayNode::OverlayData* OverlayNode::getOverlayData(osgUtil::CullVisitor* cv)
|
||||
|
||||
@@ -287,16 +287,6 @@ void LineSegmentIntersector::intersect(osgUtil::IntersectionVisitor& iv, osg::Dr
|
||||
|
||||
if (iv.getDoDummyTraversal()) return;
|
||||
|
||||
double epsilon = 1e-8;
|
||||
if ((s-e).length()<epsilon)
|
||||
{
|
||||
osg::Vec3d delta_e_end = _end - e;
|
||||
osg::Vec3d delta_s_start = _start - s;
|
||||
double scale = 0.001;
|
||||
s += (delta_s_start * scale);
|
||||
e += (delta_e_end * scale);
|
||||
}
|
||||
|
||||
osg::KdTree* kdTree = iv.getUseKdTreeWhenAvailable() ? dynamic_cast<osg::KdTree*>(drawable->getShape()) : 0;
|
||||
if (kdTree)
|
||||
{
|
||||
@@ -460,43 +450,56 @@ bool LineSegmentIntersector::intersects(const osg::BoundingSphere& bs)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool LineSegmentIntersector::intersectAndClip(osg::Vec3d& s, osg::Vec3d& e,const osg::BoundingBox& bb)
|
||||
bool LineSegmentIntersector::intersectAndClip(osg::Vec3d& s, osg::Vec3d& e,const osg::BoundingBox& bbInput)
|
||||
{
|
||||
osg::Vec3d bb_min(bbInput._min);
|
||||
osg::Vec3d bb_max(bbInput._max);
|
||||
|
||||
#if 1
|
||||
double epsilon = 1e-4;
|
||||
bb_min.x() -= epsilon;
|
||||
bb_min.y() -= epsilon;
|
||||
bb_min.z() -= epsilon;
|
||||
bb_max.x() += epsilon;
|
||||
bb_max.y() += epsilon;
|
||||
bb_max.z() += epsilon;
|
||||
#endif
|
||||
|
||||
// compate s and e against the xMin to xMax range of bb.
|
||||
if (s.x()<=e.x())
|
||||
{
|
||||
|
||||
// trivial reject of segment wholely outside.
|
||||
if (e.x()<bb.xMin()) return false;
|
||||
if (s.x()>bb.xMax()) return false;
|
||||
if (e.x()<bb_min.x()) return false;
|
||||
if (s.x()>bb_max.x()) return false;
|
||||
|
||||
if (s.x()<bb.xMin())
|
||||
if (s.x()<bb_min.x())
|
||||
{
|
||||
// clip s to xMin.
|
||||
s = s+(e-s)*(bb.xMin()-s.x())/(e.x()-s.x());
|
||||
s = s+(e-s)*(bb_min.x()-s.x())/(e.x()-s.x());
|
||||
}
|
||||
|
||||
if (e.x()>bb.xMax())
|
||||
if (e.x()>bb_max.x())
|
||||
{
|
||||
// clip e to xMax.
|
||||
e = s+(e-s)*(bb.xMax()-s.x())/(e.x()-s.x());
|
||||
e = s+(e-s)*(bb_max.x()-s.x())/(e.x()-s.x());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (s.x()<bb.xMin()) return false;
|
||||
if (e.x()>bb.xMax()) return false;
|
||||
if (s.x()<bb_min.x()) return false;
|
||||
if (e.x()>bb_max.x()) return false;
|
||||
|
||||
if (e.x()<bb.xMin())
|
||||
if (e.x()<bb_min.x())
|
||||
{
|
||||
// clip s to xMin.
|
||||
e = s+(e-s)*(bb.xMin()-s.x())/(e.x()-s.x());
|
||||
e = s+(e-s)*(bb_min.x()-s.x())/(e.x()-s.x());
|
||||
}
|
||||
|
||||
if (s.x()>bb.xMax())
|
||||
if (s.x()>bb_max.x())
|
||||
{
|
||||
// clip e to xMax.
|
||||
s = s+(e-s)*(bb.xMax()-s.x())/(e.x()-s.x());
|
||||
s = s+(e-s)*(bb_max.x()-s.x())/(e.x()-s.x());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -505,36 +508,36 @@ bool LineSegmentIntersector::intersectAndClip(osg::Vec3d& s, osg::Vec3d& e,const
|
||||
{
|
||||
|
||||
// trivial reject of segment wholely outside.
|
||||
if (e.y()<bb.yMin()) return false;
|
||||
if (s.y()>bb.yMax()) return false;
|
||||
if (e.y()<bb_min.y()) return false;
|
||||
if (s.y()>bb_max.y()) return false;
|
||||
|
||||
if (s.y()<bb.yMin())
|
||||
if (s.y()<bb_min.y())
|
||||
{
|
||||
// clip s to yMin.
|
||||
s = s+(e-s)*(bb.yMin()-s.y())/(e.y()-s.y());
|
||||
s = s+(e-s)*(bb_min.y()-s.y())/(e.y()-s.y());
|
||||
}
|
||||
|
||||
if (e.y()>bb.yMax())
|
||||
if (e.y()>bb_max.y())
|
||||
{
|
||||
// clip e to yMax.
|
||||
e = s+(e-s)*(bb.yMax()-s.y())/(e.y()-s.y());
|
||||
e = s+(e-s)*(bb_max.y()-s.y())/(e.y()-s.y());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (s.y()<bb.yMin()) return false;
|
||||
if (e.y()>bb.yMax()) return false;
|
||||
if (s.y()<bb_min.y()) return false;
|
||||
if (e.y()>bb_max.y()) return false;
|
||||
|
||||
if (e.y()<bb.yMin())
|
||||
if (e.y()<bb_min.y())
|
||||
{
|
||||
// clip s to yMin.
|
||||
e = s+(e-s)*(bb.yMin()-s.y())/(e.y()-s.y());
|
||||
e = s+(e-s)*(bb_min.y()-s.y())/(e.y()-s.y());
|
||||
}
|
||||
|
||||
if (s.y()>bb.yMax())
|
||||
if (s.y()>bb_max.y())
|
||||
{
|
||||
// clip e to yMax.
|
||||
s = s+(e-s)*(bb.yMax()-s.y())/(e.y()-s.y());
|
||||
s = s+(e-s)*(bb_max.y()-s.y())/(e.y()-s.y());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -543,36 +546,36 @@ bool LineSegmentIntersector::intersectAndClip(osg::Vec3d& s, osg::Vec3d& e,const
|
||||
{
|
||||
|
||||
// trivial reject of segment wholely outside.
|
||||
if (e.z()<bb.zMin()) return false;
|
||||
if (s.z()>bb.zMax()) return false;
|
||||
if (e.z()<bb_min.z()) return false;
|
||||
if (s.z()>bb_max.z()) return false;
|
||||
|
||||
if (s.z()<bb.zMin())
|
||||
if (s.z()<bb_min.z())
|
||||
{
|
||||
// clip s to zMin.
|
||||
s = s+(e-s)*(bb.zMin()-s.z())/(e.z()-s.z());
|
||||
s = s+(e-s)*(bb_min.z()-s.z())/(e.z()-s.z());
|
||||
}
|
||||
|
||||
if (e.z()>bb.zMax())
|
||||
if (e.z()>bb_max.z())
|
||||
{
|
||||
// clip e to zMax.
|
||||
e = s+(e-s)*(bb.zMax()-s.z())/(e.z()-s.z());
|
||||
e = s+(e-s)*(bb_max.z()-s.z())/(e.z()-s.z());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (s.z()<bb.zMin()) return false;
|
||||
if (e.z()>bb.zMax()) return false;
|
||||
if (s.z()<bb_min.z()) return false;
|
||||
if (e.z()>bb_max.z()) return false;
|
||||
|
||||
if (e.z()<bb.zMin())
|
||||
if (e.z()<bb_min.z())
|
||||
{
|
||||
// clip s to zMin.
|
||||
e = s+(e-s)*(bb.zMin()-s.z())/(e.z()-s.z());
|
||||
e = s+(e-s)*(bb_min.z()-s.z())/(e.z()-s.z());
|
||||
}
|
||||
|
||||
if (s.z()>bb.zMax())
|
||||
if (s.z()>bb_max.z())
|
||||
{
|
||||
// clip e to zMax.
|
||||
s = s+(e-s)*(bb.zMax()-s.z())/(e.z()-s.z());
|
||||
s = s+(e-s)*(bb_max.z()-s.z())/(e.z()-s.z());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2770,7 +2770,7 @@ bool Optimizer::SpatializeGroupsVisitor::divide(osg::Geode* geode, unsigned int
|
||||
bool yAxis = (bb.yMax()-bb.yMin())>divide_distance;
|
||||
bool zAxis = (bb.zMax()-bb.zMin())>divide_distance;
|
||||
|
||||
osg::notify(osg::NOTICE)<<"INFO "<<geode->className()<<" num drawables = "<<geode->getNumDrawables()<<" xAxis="<<xAxis<<" yAxis="<<yAxis<<" zAxis="<<zAxis<<std::endl;
|
||||
osg::notify(osg::INFO)<<"INFO "<<geode->className()<<" num drawables = "<<geode->getNumDrawables()<<" xAxis="<<xAxis<<" yAxis="<<yAxis<<" zAxis="<<zAxis<<std::endl;
|
||||
|
||||
if (!xAxis && !yAxis && !zAxis)
|
||||
{
|
||||
|
||||
@@ -1413,6 +1413,14 @@ void EdgeCollapse::setGeometry(osg::Geometry* geometry, const Simplifier::IndexL
|
||||
osg::notify(osg::INFO)<<"EdgeCollapse::setGeometry(..): Removing attribute indices"<<std::endl;
|
||||
_geometry->copyToAndOptimize(*_geometry);
|
||||
}
|
||||
|
||||
// check to see if vertex attributes indices exists, if so expand them to remove them
|
||||
if (_geometry->containsSharedArrays())
|
||||
{
|
||||
// removing coord indices
|
||||
osg::notify(osg::INFO)<<"EdgeCollapse::setGeometry(..): Duplicate shared arrays"<<std::endl;
|
||||
_geometry->duplicateSharedArrays();
|
||||
}
|
||||
|
||||
unsigned int numVertices = geometry->getVertexArray()->getNumElements();
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ SET(LIB_COMMON_FILES
|
||||
ViewerEventHandlers.cpp
|
||||
)
|
||||
|
||||
SET(LIB_EXTRA_LIBS)
|
||||
|
||||
IF(WIN32)
|
||||
|
||||
@@ -89,9 +90,26 @@ ELSE(WIN32)
|
||||
PKG_CHECK_MODULES(XRANDR REQUIRED xrandr)
|
||||
ADD_DEFINITIONS(-DOSGVIEWER_USE_XRANDR)
|
||||
SET(LIB_PUBLIC_HEADERS ${LIB_PUBLIC_HEADERS} ${XRANDR_INCLUDE_DIRS})
|
||||
LINK_LIBRARIES(Xrandr)
|
||||
LINK_LIBRARIES(Xrandr)
|
||||
ENDIF(OSGVIEWER_USE_XRANDR)
|
||||
|
||||
# X11 on Apple requires X11 library plus OpenGL linking hack on Leopard
|
||||
IF(APPLE)
|
||||
# Find GL/glx.h
|
||||
IF(EXISTS ${CMAKE_OSX_SYSROOT}/usr/X11/include/GL/glx.h)
|
||||
SET(OPENGL_INCLUDE_DIR /usr/X11/include)
|
||||
SET(OPENGL_LIBRARIES /usr/X11/lib/libGL.dylib)
|
||||
ELSEIF(EXISTS ${CMAKE_OSX_SYSROOT}/usr/X11R6/include/GL/glx.h)
|
||||
SET(OPENGL_INCLUDE_DIR /usr/X11R6/include)
|
||||
SET(OPENGL_LIBRARIES /usr/X11R6/lib/libGL.dylib)
|
||||
ENDIF(EXISTS ${CMAKE_OSX_SYSROOT}/usr/X11/include/GL/glx.h)
|
||||
INCLUDE_DIRECTORIES(BEFORE SYSTEM ${OPENGL_INCLUDE_DIR})
|
||||
|
||||
SET(LIB_EXTRA_LIBS ${X11_X11_LIB} ${OPENGL_LIBRARIES} ${LIB_EXTRA_LIBS})
|
||||
SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:${CMAKE_OSX_SYSROOT}/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib")
|
||||
ENDIF(APPLE)
|
||||
|
||||
|
||||
ENDIF(${OSG_WINDOWING_SYSTEM} STREQUAL "Carbon")
|
||||
|
||||
ENDIF(WIN32)
|
||||
@@ -112,6 +130,7 @@ LINK_INTERNAL(${LIB_NAME}
|
||||
osgUtil
|
||||
osg
|
||||
OpenThreads
|
||||
${LIB_EXTRA_LIBS}
|
||||
)
|
||||
|
||||
LINK_CORELIB_DEFAULT(${LIB_NAME})
|
||||
|
||||
@@ -477,7 +477,7 @@ class Win32KeyboardMap
|
||||
KeyMap::const_iterator map = _keymap.find(key);
|
||||
return map==_keymap.end() ? key : map->second;
|
||||
}
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
typedef std::map<int, int> KeyMap;
|
||||
@@ -977,7 +977,8 @@ GraphicsWindowWin32::GraphicsWindowWin32( osg::GraphicsContext::Traits* traits )
|
||||
_ownsWindow(true),
|
||||
_closeWindow(false),
|
||||
_destroyWindow(false),
|
||||
_destroying(false)
|
||||
_destroying(false),
|
||||
_appMouseCursor(LeftArrowCursor)
|
||||
{
|
||||
_traits = traits;
|
||||
if (_traits->useCursor) setCursor(LeftArrowCursor);
|
||||
@@ -1866,6 +1867,16 @@ void GraphicsWindowWin32::useCursor( bool cursorOn )
|
||||
|
||||
void GraphicsWindowWin32::setCursor( MouseCursor mouseCursor )
|
||||
{
|
||||
if (mouseCursor != LeftRightCursor &&
|
||||
mouseCursor != UpDownCursor &&
|
||||
mouseCursor != TopLeftCorner &&
|
||||
mouseCursor != TopRightCorner &&
|
||||
mouseCursor != BottomLeftCorner &&
|
||||
mouseCursor != BottomRightCorner)
|
||||
{
|
||||
_appMouseCursor = mouseCursor;
|
||||
}
|
||||
|
||||
_mouseCursor = mouseCursor;
|
||||
HCURSOR newCursor = getOrCreateCursor( mouseCursor);
|
||||
if (newCursor == _currentCursor) return;
|
||||
@@ -2183,6 +2194,7 @@ LRESULT GraphicsWindowWin32::handleNativeWindowingEvent( HWND hwnd, UINT uMsg, W
|
||||
int keySymbol = 0;
|
||||
unsigned int modifierMask = 0;
|
||||
adaptKey(wParam, lParam, keySymbol, modifierMask);
|
||||
_keyMap[keySymbol] = true;
|
||||
//getEventQueue()->getCurrentEventState()->setModKeyMask(modifierMask);
|
||||
getEventQueue()->keyPress(keySymbol, eventTime);
|
||||
}
|
||||
@@ -2197,6 +2209,7 @@ LRESULT GraphicsWindowWin32::handleNativeWindowingEvent( HWND hwnd, UINT uMsg, W
|
||||
int keySymbol = 0;
|
||||
unsigned int modifierMask = 0;
|
||||
adaptKey(wParam, lParam, keySymbol, modifierMask);
|
||||
_keyMap[keySymbol] = false;
|
||||
//getEventQueue()->getCurrentEventState()->setModKeyMask(modifierMask);
|
||||
getEventQueue()->keyRelease(keySymbol, eventTime);
|
||||
}
|
||||
@@ -2217,6 +2230,77 @@ LRESULT GraphicsWindowWin32::handleNativeWindowingEvent( HWND hwnd, UINT uMsg, W
|
||||
}
|
||||
break;
|
||||
|
||||
///////////////////
|
||||
case WM_SETFOCUS :
|
||||
///////////////////
|
||||
|
||||
// Check keys and send a message if the key is pressed when the
|
||||
// focus comes back to the window.
|
||||
// I don't really like this hard-coded loop, but the key codes
|
||||
// (VK_* constants) seem to go from 0x08 to 0xFE so it should be
|
||||
// ok. See winuser.h for the key codes.
|
||||
for (unsigned int i = 0x08; i < 0xFF; i++)
|
||||
{
|
||||
if ((::GetAsyncKeyState(i) & 0x8000) != 0)
|
||||
::SendMessage(hwnd, WM_KEYDOWN, i, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
///////////////////
|
||||
case WM_KILLFOCUS :
|
||||
///////////////////
|
||||
|
||||
// Release all keys that were pressed when the window lost focus.
|
||||
for (std::map<int, bool>::iterator key = _keyMap.begin();
|
||||
key != _keyMap.end(); ++key)
|
||||
{
|
||||
if (key->second)
|
||||
{
|
||||
getEventQueue()->keyRelease(key->first);
|
||||
key->second = false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
///////////////////
|
||||
case WM_NCHITTEST :
|
||||
///////////////////
|
||||
{
|
||||
LONG_PTR result = _windowProcedure==0 ? ::DefWindowProc(hwnd, uMsg, wParam, lParam) :
|
||||
::CallWindowProc(_windowProcedure, hwnd, uMsg, wParam, lParam);
|
||||
|
||||
switch(result)
|
||||
{
|
||||
case HTLEFT:
|
||||
case HTRIGHT:
|
||||
setCursor(LeftRightCursor);
|
||||
break;
|
||||
case HTTOP:
|
||||
case HTBOTTOM:
|
||||
setCursor(UpDownCursor);
|
||||
break;
|
||||
case HTTOPLEFT:
|
||||
setCursor(TopLeftCorner);
|
||||
break;
|
||||
case HTTOPRIGHT:
|
||||
setCursor(TopRightCorner);
|
||||
break;
|
||||
case HTBOTTOMLEFT:
|
||||
setCursor(BottomLeftCorner);
|
||||
break;
|
||||
case HTBOTTOMRIGHT:
|
||||
case HTGROWBOX:
|
||||
setCursor(BottomRightCorner);
|
||||
break;
|
||||
default:
|
||||
if (_traits->useCursor && _appMouseCursor != InheritCursor)
|
||||
setCursor(LeftArrowCursor);
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
break;
|
||||
|
||||
/////////////////
|
||||
case WM_CLOSE :
|
||||
/////////////////
|
||||
|
||||
235
src/osgWrappers/Doxyfile.template
Normal file
235
src/osgWrappers/Doxyfile.template
Normal file
@@ -0,0 +1,235 @@
|
||||
# Doxyfile 1.4.1
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = "OSG Introspection Wrappers"
|
||||
PROJECT_NUMBER =
|
||||
OUTPUT_DIRECTORY = "$(OUTPUT_DIR)"
|
||||
CREATE_SUBDIRS = NO
|
||||
OUTPUT_LANGUAGE = English
|
||||
USE_WINDOWS_ENCODING = YES
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ABBREVIATE_BRIEF = "The $name class" \
|
||||
"The $name widget" \
|
||||
"The $name file" \
|
||||
is \
|
||||
provides \
|
||||
specifies \
|
||||
contains \
|
||||
represents \
|
||||
a \
|
||||
an \
|
||||
the
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = YES
|
||||
STRIP_FROM_PATH = "$(INPUT_DIR)"
|
||||
STRIP_FROM_INC_PATH =
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = YES
|
||||
MULTILINE_CPP_IS_BRIEF = NO
|
||||
DETAILS_AT_TOP = NO
|
||||
INHERIT_DOCS = YES
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
ALIASES =
|
||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
||||
OPTIMIZE_OUTPUT_JAVA = NO
|
||||
SUBGROUPING = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Build related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = YES
|
||||
EXTRACT_STATIC = YES
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
EXTRACT_LOCAL_METHODS = NO
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
HIDE_FRIEND_COMPOUNDS = NO
|
||||
HIDE_IN_BODY_DOCS = NO
|
||||
INTERNAL_DOCS = NO
|
||||
CASE_SENSE_NAMES = NO
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = YES
|
||||
SORT_BRIEF_DOCS = NO
|
||||
SORT_BY_SCOPE_NAME = NO
|
||||
GENERATE_TODOLIST = NO
|
||||
GENERATE_TESTLIST = NO
|
||||
GENERATE_BUGLIST = NO
|
||||
GENERATE_DEPRECATEDLIST= NO
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
SHOW_USED_FILES = YES
|
||||
SHOW_DIRECTORIES = YES
|
||||
FILE_VERSION_FILTER =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = NO
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_IF_DOC_ERROR = YES
|
||||
WARN_NO_PARAMDOC = NO
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = "$(INPUT_DIR)include"
|
||||
FILE_PATTERNS = */include/*
|
||||
RECURSIVE = YES
|
||||
EXCLUDE =
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS = "*/include/osgIntrospection/*" "*/include/CVS/*" "*/include/osg*/CVS/*" "*.#*" "*/.svn/*"
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS = *
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_PATTERNS =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
REFERENCED_BY_RELATION = NO
|
||||
REFERENCES_RELATION = NO
|
||||
VERBATIM_HEADERS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = NO
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = NO
|
||||
HTML_OUTPUT = html
|
||||
HTML_FILE_EXTENSION = .html
|
||||
HTML_HEADER =
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
CHM_FILE =
|
||||
HHC_LOCATION =
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = NO
|
||||
TREEVIEW_WIDTH = 250
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT = latex
|
||||
LATEX_CMD_NAME = latex
|
||||
MAKEINDEX_CMD_NAME = makeindex
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
LATEX_HIDE_INDICES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT = rtf
|
||||
COMPACT_RTF = NO
|
||||
RTF_HYPERLINKS = NO
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT = man
|
||||
MAN_EXTENSION = .3
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = YES
|
||||
XML_OUTPUT = xml
|
||||
XML_SCHEMA =
|
||||
XML_DTD =
|
||||
XML_PROGRAMLISTING = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the Perl module output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_PERLMOD = NO
|
||||
PERLMOD_LATEX = NO
|
||||
PERLMOD_PRETTY = YES
|
||||
PERLMOD_MAKEVAR_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = YES
|
||||
EXPAND_ONLY_PREDEF = YES
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH = "$(INPUT_DIR)include"
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
EXPAND_AS_DEFINED = META_Object \
|
||||
META_StateAttribute \
|
||||
META_Node \
|
||||
META_Shape \
|
||||
META_Technique \
|
||||
META_Effect
|
||||
PREDEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::additions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES =
|
||||
GENERATE_TAGFILE =
|
||||
ALLEXTERNALS = NO
|
||||
EXTERNAL_GROUPS = YES
|
||||
PERL_PATH = /usr/bin/perl
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = NO
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
HAVE_DOT = NO
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
GROUP_GRAPHS = YES
|
||||
UML_LOOK = NO
|
||||
TEMPLATE_RELATIONS = NO
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
CALL_GRAPH = NO
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DIRECTORY_GRAPH = YES
|
||||
DOT_IMAGE_FORMAT = png
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
MAX_DOT_GRAPH_DEPTH = 1000
|
||||
DOT_TRANSPARENT = NO
|
||||
DOT_MULTI_TARGETS = NO
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::additions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = NO
|
||||
@@ -1,211 +1,211 @@
|
||||
// ***************************************************************************
|
||||
//
|
||||
// Generated automatically by genwrapper.
|
||||
// Please DO NOT EDIT this file!
|
||||
//
|
||||
// ***************************************************************************
|
||||
|
||||
#include <osgIntrospection/ReflectionMacros>
|
||||
#include <osgIntrospection/TypedMethodInfo>
|
||||
#include <osgIntrospection/StaticMethodInfo>
|
||||
#include <osgIntrospection/Attributes>
|
||||
|
||||
#include <OpenThreads/Thread>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
#ifdef IN
|
||||
#undef IN
|
||||
#endif
|
||||
#ifdef OUT
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(OpenThreads::Thread::ThreadPriority)
|
||||
I_DeclaringFile("OpenThreads/Thread");
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_PRIORITY_MAX);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_PRIORITY_HIGH);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_PRIORITY_NOMINAL);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_PRIORITY_LOW);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_PRIORITY_MIN);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_PRIORITY_DEFAULT);
|
||||
END_REFLECTOR
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(OpenThreads::Thread::ThreadPolicy)
|
||||
I_DeclaringFile("OpenThreads/Thread");
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_SCHEDULE_FIFO);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_SCHEDULE_ROUND_ROBIN);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_SCHEDULE_TIME_SHARE);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_SCHEDULE_DEFAULT);
|
||||
END_REFLECTOR
|
||||
|
||||
BEGIN_ABSTRACT_OBJECT_REFLECTOR(OpenThreads::Thread)
|
||||
I_DeclaringFile("OpenThreads/Thread");
|
||||
I_Constructor0(____Thread,
|
||||
"Constructor. ",
|
||||
"");
|
||||
I_Method0(int, getThreadId,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__getThreadId,
|
||||
"Get a unique thread id. ",
|
||||
"This id is monotonically increasing.a unique thread identifier ");
|
||||
I_Method0(size_t, getProcessId,
|
||||
Properties::NON_VIRTUAL,
|
||||
__size_t__getProcessId,
|
||||
"Get the thread's process id. ",
|
||||
"This is the pthread_t or pid_t value depending on the threading model being used.thread process id. ");
|
||||
I_Method0(int, start,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__start,
|
||||
"Start the thread. ",
|
||||
"This method will configure the thread, set it's priority, and spawn it.if the stack size specified setStackSize is smaller than the smallest allowable stack size, the threads stack size will be set to the minimum allowed, and may be retrieved via the getStackSize() 0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, startThread,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__startThread,
|
||||
"",
|
||||
"");
|
||||
I_Method0(int, testCancel,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__testCancel,
|
||||
"Test the cancel state of the thread. ",
|
||||
"If the thread has been canceled this method will cause the thread to exit now. This method operates on the calling thread.Returns 0 if normal, -1 if called from a thread other that this. ");
|
||||
I_Method0(int, cancel,
|
||||
Properties::VIRTUAL,
|
||||
__int__cancel,
|
||||
"Cancel the thread. ",
|
||||
"Equivalent to SIGKILL.0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method1(int, setSchedulePriority, IN, OpenThreads::Thread::ThreadPriority, priority,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setSchedulePriority__ThreadPriority,
|
||||
"Set the thread's schedule priority. ",
|
||||
"This is a complex method. Beware of thread priorities when using a many-to-many kernel entity implemenation (such as IRIX pthreads). If one is not carefull to manage the thread priorities, a priority inversion deadlock can easily occur (Although the OpenThreads::Mutex & OpenThreads::Barrier constructs have been designed with this senario in mind). Unless you have explicit need to set the schedule pirorites for a given task, it is best to leave them alone.some implementations (notably LinuxThreads and IRIX Sprocs) only alow you to decrease thread priorities dynamically. Thus, a lower priority thread will not allow it's priority to be raised on the fly.seting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO will output scheduling information for each thread to stdout. 0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, getSchedulePriority,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__getSchedulePriority,
|
||||
"Get the thread's schedule priority (if able). ",
|
||||
"seting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO will output scheduling information for each thread to stdout. 0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method1(int, setSchedulePolicy, IN, OpenThreads::Thread::ThreadPolicy, policy,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setSchedulePolicy__ThreadPolicy,
|
||||
"Set the thread's scheduling policy (if able). ",
|
||||
"On some implementations (notably IRIX Sprocs & LinuxThreads) The policy may prohibit the use of SCHEDULE_ROUND_ROBIN and SCHEDULE_FIFO policies - due to their real-time nature, and the danger of deadlocking the machine when used as super-user. In such cases, the command is a no-op.seting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO will output scheduling information for each thread to stdout. 0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, getSchedulePolicy,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__getSchedulePolicy,
|
||||
"Get the thread's policy (if able). ",
|
||||
"seting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO will output scheduling information for each thread to stdout. policy if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method1(int, setStackSize, IN, size_t, size,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setStackSize__size_t,
|
||||
"Set the thread's desired stack size (in bytes). ",
|
||||
"This method is an attribute of the thread and must be called *before* the start() method is invoked.a return code of 13 (EACESS) means that the thread stack size can no longer be changed. 0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(size_t, getStackSize,
|
||||
Properties::NON_VIRTUAL,
|
||||
__size_t__getStackSize,
|
||||
"Get the thread's desired stack size. ",
|
||||
"the thread's stack size. 0 indicates that the stack size has either not yet been initialized, or not yet been specified by the application. ");
|
||||
I_Method0(void, printSchedulingInfo,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__printSchedulingInfo,
|
||||
"Print the thread's scheduling information to stdout. ",
|
||||
"");
|
||||
I_Method0(int, detach,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__detach,
|
||||
"Detach the thread from the calling process. ",
|
||||
"0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, join,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__join,
|
||||
"Join the calling process with the thread. ",
|
||||
"0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, setCancelModeDisable,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setCancelModeDisable,
|
||||
"Disable thread cancelation altogether. ",
|
||||
"Thread::cancel() has no effect.0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, setCancelModeAsynchronous,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setCancelModeAsynchronous,
|
||||
"Mark the thread to cancel aysncronously on Thread::cancel(). ",
|
||||
"(May not be available with process-level implementations).0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, setCancelModeDeferred,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setCancelModeDeferred,
|
||||
"Mark the thread to cancel at the earliest convenience on Thread::cancel() (This is the default). ",
|
||||
"0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(bool, isRunning,
|
||||
Properties::NON_VIRTUAL,
|
||||
__bool__isRunning,
|
||||
"Query the thread's running status. ",
|
||||
"true if running, false if not. ");
|
||||
I_Method0(void, run,
|
||||
Properties::PURE_VIRTUAL,
|
||||
__void__run,
|
||||
"Thread's run method. ",
|
||||
"Must be implemented by derived classes. This is where the action happens. ");
|
||||
I_Method0(void, cancelCleanup,
|
||||
Properties::VIRTUAL,
|
||||
__void__cancelCleanup,
|
||||
"Thread's cancel cleanup routine, called upon cancel(), after the cancelation has taken place, but before the thread exits completely. ",
|
||||
"This method should be used to repair parts of the thread's data that may have been damaged by a pre-mature cancel. No-op by default. ");
|
||||
I_Method0(void *, getImplementation,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void_P1__getImplementation,
|
||||
"",
|
||||
"");
|
||||
I_Method1(int, setProcessorAffinity, IN, unsigned int, cpunum,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setProcessorAffinity__unsigned_int,
|
||||
"Thread's processor affinity method. ",
|
||||
"This binds a thread to a processor whenever possible. This call must be made before start() or startThread() and has no effect after the thread has been running. In the pthreads implementation, this is only implemented on sgi, through a pthread extension. On other pthread platforms this is ignored. Returns 0 on success, implementation's error on failure, or -1 if ignored. ");
|
||||
I_StaticMethod1(int, SetConcurrency, IN, int, concurrencyLevel,
|
||||
__int__SetConcurrency__int_S,
|
||||
"Set the concurrency level for a running application. ",
|
||||
"This method only has effect if the pthreads thread model is being used, and then only when that model is many-to-one (eg. irix). in other cases it is ignored. The concurrency level is only a *hint* as to the number of execution vehicles to use, the actual implementation may do anything it wants. Setting the value to 0 returns things to their default state.previous concurrency level, -1 indicates no-op. ");
|
||||
I_StaticMethod0(int, GetConcurrency,
|
||||
__int__GetConcurrency_S,
|
||||
"Get the concurrency level for a running application. ",
|
||||
"In this case, a return code of 0 means that the application is in default mode. A return code of -1 means that the application is incapable of setting an arbitrary concurrency, because it is a one-to-one execution model (sprocs, linuxThreads) ");
|
||||
I_StaticMethod0(OpenThreads::Thread *, CurrentThread,
|
||||
__Thread_P1__CurrentThread_S,
|
||||
"Return a pointer to the current running thread. ",
|
||||
"");
|
||||
I_StaticMethod0(void, Init,
|
||||
__void__Init_S,
|
||||
"Initialize Threading in a program. ",
|
||||
"This method must be called before you can do any threading in a program. ");
|
||||
I_StaticMethod0(int, YieldCurrentThread,
|
||||
__int__YieldCurrentThread_S,
|
||||
"Yield the processor. ",
|
||||
"This method operates on the calling process. And is equivalent to calling sched_yield(). 0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_StaticMethod0(OpenThreads::Thread::ThreadPriority, GetMasterPriority,
|
||||
__ThreadPriority__GetMasterPriority_S,
|
||||
"This method will return the ThreadPriority of the master process. ",
|
||||
"(ie, the one calling the thread->start() methods for the first time) The method will almost certainly return Thread::THREAD_PRIORITY_DEFAULT if Init() has not been called.the Thread::ThreadPriority of the master thread. ");
|
||||
I_StaticMethod1(int, microSleep, IN, unsigned int, microsec,
|
||||
__int__microSleep__unsigned_int_S,
|
||||
"microSleep method, equivilant to the posix usleep(microsec). ",
|
||||
"This is not strictly thread API but is used so often with threads. It's basically UNIX usleep. Parameter is number of microseconds we current thread to sleep. Returns 0 on succes, non-zero on failure (UNIX errno or GetLastError() will give detailed description. ");
|
||||
I_SimpleProperty(void *, Implementation,
|
||||
__void_P1__getImplementation,
|
||||
0);
|
||||
I_SimpleProperty(size_t, ProcessId,
|
||||
__size_t__getProcessId,
|
||||
0);
|
||||
I_SimpleProperty(unsigned int, ProcessorAffinity,
|
||||
0,
|
||||
__int__setProcessorAffinity__unsigned_int);
|
||||
I_SimpleProperty(OpenThreads::Thread::ThreadPolicy, SchedulePolicy,
|
||||
0,
|
||||
__int__setSchedulePolicy__ThreadPolicy);
|
||||
I_SimpleProperty(OpenThreads::Thread::ThreadPriority, SchedulePriority,
|
||||
0,
|
||||
__int__setSchedulePriority__ThreadPriority);
|
||||
I_SimpleProperty(size_t, StackSize,
|
||||
__size_t__getStackSize,
|
||||
__int__setStackSize__size_t);
|
||||
I_SimpleProperty(int, ThreadId,
|
||||
__int__getThreadId,
|
||||
0);
|
||||
END_REFLECTOR
|
||||
|
||||
// ***************************************************************************
|
||||
//
|
||||
// Generated automatically by genwrapper.
|
||||
// Please DO NOT EDIT this file!
|
||||
//
|
||||
// ***************************************************************************
|
||||
|
||||
#include <osgIntrospection/ReflectionMacros>
|
||||
#include <osgIntrospection/TypedMethodInfo>
|
||||
#include <osgIntrospection/StaticMethodInfo>
|
||||
#include <osgIntrospection/Attributes>
|
||||
|
||||
#include <OpenThreads/Thread>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
#ifdef IN
|
||||
#undef IN
|
||||
#endif
|
||||
#ifdef OUT
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(OpenThreads::Thread::ThreadPriority)
|
||||
I_DeclaringFile("OpenThreads/Thread");
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_PRIORITY_MAX);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_PRIORITY_HIGH);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_PRIORITY_NOMINAL);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_PRIORITY_LOW);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_PRIORITY_MIN);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_PRIORITY_DEFAULT);
|
||||
END_REFLECTOR
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(OpenThreads::Thread::ThreadPolicy)
|
||||
I_DeclaringFile("OpenThreads/Thread");
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_SCHEDULE_FIFO);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_SCHEDULE_ROUND_ROBIN);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_SCHEDULE_TIME_SHARE);
|
||||
I_EnumLabel(OpenThreads::Thread::THREAD_SCHEDULE_DEFAULT);
|
||||
END_REFLECTOR
|
||||
|
||||
BEGIN_ABSTRACT_OBJECT_REFLECTOR(OpenThreads::Thread)
|
||||
I_DeclaringFile("OpenThreads/Thread");
|
||||
I_StaticMethod1(int, SetConcurrency, IN, int, concurrencyLevel,
|
||||
__int__SetConcurrency__int_S,
|
||||
"Set the concurrency level for a running application. ",
|
||||
"This method only has effect if the pthreads thread model is being used, and then only when that model is many-to-one (eg. irix). in other cases it is ignored. The concurrency level is only a *hint* as to the number of execution vehicles to use, the actual implementation may do anything it wants. Setting the value to 0 returns things to their default state.previous concurrency level, -1 indicates no-op. ");
|
||||
I_StaticMethod0(int, GetConcurrency,
|
||||
__int__GetConcurrency_S,
|
||||
"Get the concurrency level for a running application. ",
|
||||
"In this case, a return code of 0 means that the application is in default mode. A return code of -1 means that the application is incapable of setting an arbitrary concurrency, because it is a one-to-one execution model (sprocs, linuxThreads) ");
|
||||
I_StaticMethod0(OpenThreads::Thread *, CurrentThread,
|
||||
__Thread_P1__CurrentThread_S,
|
||||
"Return a pointer to the current running thread. ",
|
||||
"");
|
||||
I_StaticMethod0(void, Init,
|
||||
__void__Init_S,
|
||||
"Initialize Threading in a program. ",
|
||||
"This method must be called before you can do any threading in a program. ");
|
||||
I_StaticMethod0(int, YieldCurrentThread,
|
||||
__int__YieldCurrentThread_S,
|
||||
"Yield the processor. ",
|
||||
"This method operates on the calling process. And is equivalent to calling sched_yield(). 0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_StaticMethod0(OpenThreads::Thread::ThreadPriority, GetMasterPriority,
|
||||
__ThreadPriority__GetMasterPriority_S,
|
||||
"This method will return the ThreadPriority of the master process. ",
|
||||
"(ie, the one calling the thread->start() methods for the first time) The method will almost certainly return Thread::THREAD_PRIORITY_DEFAULT if Init() has not been called.the Thread::ThreadPriority of the master thread. ");
|
||||
I_StaticMethod1(int, microSleep, IN, unsigned int, microsec,
|
||||
__int__microSleep__unsigned_int_S,
|
||||
"microSleep method, equivilant to the posix usleep(microsec). ",
|
||||
"This is not strictly thread API but is used so often with threads. It's basically UNIX usleep. Parameter is number of microseconds we current thread to sleep. Returns 0 on succes, non-zero on failure (UNIX errno or GetLastError() will give detailed description. ");
|
||||
I_Constructor0(____Thread,
|
||||
"Constructor. ",
|
||||
"");
|
||||
I_Method0(int, getThreadId,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__getThreadId,
|
||||
"Get a unique thread id. ",
|
||||
"This id is monotonically increasing.a unique thread identifier ");
|
||||
I_Method0(size_t, getProcessId,
|
||||
Properties::NON_VIRTUAL,
|
||||
__size_t__getProcessId,
|
||||
"Get the thread's process id. ",
|
||||
"This is the pthread_t or pid_t value depending on the threading model being used.thread process id. ");
|
||||
I_Method0(int, start,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__start,
|
||||
"Start the thread. ",
|
||||
"This method will configure the thread, set it's priority, and spawn it.if the stack size specified setStackSize is smaller than the smallest allowable stack size, the threads stack size will be set to the minimum allowed, and may be retrieved via the getStackSize() 0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, startThread,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__startThread,
|
||||
"",
|
||||
"");
|
||||
I_Method0(int, testCancel,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__testCancel,
|
||||
"Test the cancel state of the thread. ",
|
||||
"If the thread has been canceled this method will cause the thread to exit now. This method operates on the calling thread.Returns 0 if normal, -1 if called from a thread other that this. ");
|
||||
I_Method0(int, cancel,
|
||||
Properties::VIRTUAL,
|
||||
__int__cancel,
|
||||
"Cancel the thread. ",
|
||||
"Equivalent to SIGKILL.0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method1(int, setSchedulePriority, IN, OpenThreads::Thread::ThreadPriority, priority,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setSchedulePriority__ThreadPriority,
|
||||
"Set the thread's schedule priority. ",
|
||||
"This is a complex method. Beware of thread priorities when using a many-to-many kernel entity implemenation (such as IRIX pthreads). If one is not carefull to manage the thread priorities, a priority inversion deadlock can easily occur (Although the OpenThreads::Mutex & OpenThreads::Barrier constructs have been designed with this senario in mind). Unless you have explicit need to set the schedule pirorites for a given task, it is best to leave them alone.some implementations (notably LinuxThreads and IRIX Sprocs) only alow you to decrease thread priorities dynamically. Thus, a lower priority thread will not allow it's priority to be raised on the fly.seting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO will output scheduling information for each thread to stdout. 0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, getSchedulePriority,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__getSchedulePriority,
|
||||
"Get the thread's schedule priority (if able). ",
|
||||
"seting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO will output scheduling information for each thread to stdout. 0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method1(int, setSchedulePolicy, IN, OpenThreads::Thread::ThreadPolicy, policy,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setSchedulePolicy__ThreadPolicy,
|
||||
"Set the thread's scheduling policy (if able). ",
|
||||
"On some implementations (notably IRIX Sprocs & LinuxThreads) The policy may prohibit the use of SCHEDULE_ROUND_ROBIN and SCHEDULE_FIFO policies - due to their real-time nature, and the danger of deadlocking the machine when used as super-user. In such cases, the command is a no-op.seting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO will output scheduling information for each thread to stdout. 0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, getSchedulePolicy,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__getSchedulePolicy,
|
||||
"Get the thread's policy (if able). ",
|
||||
"seting the environment variable OUTPUT_THREADLIB_SCHEDULING_INFO will output scheduling information for each thread to stdout. policy if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method1(int, setStackSize, IN, size_t, size,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setStackSize__size_t,
|
||||
"Set the thread's desired stack size (in bytes). ",
|
||||
"This method is an attribute of the thread and must be called *before* the start() method is invoked.a return code of 13 (EACESS) means that the thread stack size can no longer be changed. 0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(size_t, getStackSize,
|
||||
Properties::NON_VIRTUAL,
|
||||
__size_t__getStackSize,
|
||||
"Get the thread's desired stack size. ",
|
||||
"the thread's stack size. 0 indicates that the stack size has either not yet been initialized, or not yet been specified by the application. ");
|
||||
I_Method0(void, printSchedulingInfo,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__printSchedulingInfo,
|
||||
"Print the thread's scheduling information to stdout. ",
|
||||
"");
|
||||
I_Method0(int, detach,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__detach,
|
||||
"Detach the thread from the calling process. ",
|
||||
"0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, join,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__join,
|
||||
"Join the calling process with the thread. ",
|
||||
"0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, setCancelModeDisable,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setCancelModeDisable,
|
||||
"Disable thread cancelation altogether. ",
|
||||
"Thread::cancel() has no effect.0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, setCancelModeAsynchronous,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setCancelModeAsynchronous,
|
||||
"Mark the thread to cancel aysncronously on Thread::cancel(). ",
|
||||
"(May not be available with process-level implementations).0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(int, setCancelModeDeferred,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setCancelModeDeferred,
|
||||
"Mark the thread to cancel at the earliest convenience on Thread::cancel() (This is the default). ",
|
||||
"0 if normal, -1 if errno set, errno code otherwise. ");
|
||||
I_Method0(bool, isRunning,
|
||||
Properties::NON_VIRTUAL,
|
||||
__bool__isRunning,
|
||||
"Query the thread's running status. ",
|
||||
"true if running, false if not. ");
|
||||
I_Method0(void, run,
|
||||
Properties::PURE_VIRTUAL,
|
||||
__void__run,
|
||||
"Thread's run method. ",
|
||||
"Must be implemented by derived classes. This is where the action happens. ");
|
||||
I_Method0(void, cancelCleanup,
|
||||
Properties::VIRTUAL,
|
||||
__void__cancelCleanup,
|
||||
"Thread's cancel cleanup routine, called upon cancel(), after the cancelation has taken place, but before the thread exits completely. ",
|
||||
"This method should be used to repair parts of the thread's data that may have been damaged by a pre-mature cancel. No-op by default. ");
|
||||
I_Method0(void *, getImplementation,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void_P1__getImplementation,
|
||||
"",
|
||||
"");
|
||||
I_Method1(int, setProcessorAffinity, IN, unsigned int, cpunum,
|
||||
Properties::NON_VIRTUAL,
|
||||
__int__setProcessorAffinity__unsigned_int,
|
||||
"Thread's processor affinity method. ",
|
||||
"This binds a thread to a processor whenever possible. This call must be made before start() or startThread() and has no effect after the thread has been running. In the pthreads implementation, this is only implemented on sgi, through a pthread extension. On other pthread platforms this is ignored. Returns 0 on success, implementation's error on failure, or -1 if ignored. ");
|
||||
I_SimpleProperty(void *, Implementation,
|
||||
__void_P1__getImplementation,
|
||||
0);
|
||||
I_SimpleProperty(size_t, ProcessId,
|
||||
__size_t__getProcessId,
|
||||
0);
|
||||
I_SimpleProperty(unsigned int, ProcessorAffinity,
|
||||
0,
|
||||
__int__setProcessorAffinity__unsigned_int);
|
||||
I_SimpleProperty(OpenThreads::Thread::ThreadPolicy, SchedulePolicy,
|
||||
0,
|
||||
__int__setSchedulePolicy__ThreadPolicy);
|
||||
I_SimpleProperty(OpenThreads::Thread::ThreadPriority, SchedulePriority,
|
||||
0,
|
||||
__int__setSchedulePriority__ThreadPriority);
|
||||
I_SimpleProperty(size_t, StackSize,
|
||||
__size_t__getStackSize,
|
||||
__int__setStackSize__size_t);
|
||||
I_SimpleProperty(int, ThreadId,
|
||||
__int__getThreadId,
|
||||
0);
|
||||
END_REFLECTOR
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ BEGIN_OBJECT_REFLECTOR(osg::AlphaFunc)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -85,7 +85,7 @@ BEGIN_OBJECT_REFLECTOR(osg::AlphaFunc)
|
||||
__int__compare__C5_StateAttribute_R1,
|
||||
"Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, usage,
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, x,
|
||||
Properties::VIRTUAL,
|
||||
__bool__getModeUsage__StateAttribute_ModeUsage_R1,
|
||||
"Return the modes associated with this StateAttribute. ",
|
||||
@@ -115,7 +115,7 @@ BEGIN_OBJECT_REFLECTOR(osg::AlphaFunc)
|
||||
__float__getReferenceValue,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
|
||||
@@ -28,8 +28,6 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(std::map< double COMMA osg::AnimationPath::ControlPoint >, osg::AnimationPath::TimeControlPointMap)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::AnimationPath::LoopMode)
|
||||
I_DeclaringFile("osg/AnimationPath");
|
||||
I_EnumLabel(osg::AnimationPath::SWING);
|
||||
@@ -37,6 +35,8 @@ BEGIN_ENUM_REFLECTOR(osg::AnimationPath::LoopMode)
|
||||
I_EnumLabel(osg::AnimationPath::NO_LOOPING);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(std::map< double COMMA osg::AnimationPath::ControlPoint >, osg::AnimationPath::TimeControlPointMap)
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::AnimationPath)
|
||||
I_DeclaringFile("osg/AnimationPath");
|
||||
I_VirtualBaseType(osg::Object);
|
||||
@@ -52,7 +52,7 @@ BEGIN_OBJECT_REFLECTOR(osg::AnimationPath)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
@@ -288,7 +288,7 @@ BEGIN_OBJECT_REFLECTOR(osg::AnimationPathCallback)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
|
||||
@@ -20,8 +20,6 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(std::map< std::string COMMA std::string >, osg::ApplicationUsage::UsageMap)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::ApplicationUsage::Type)
|
||||
I_DeclaringFile("osg/ApplicationUsage");
|
||||
I_EnumLabel(osg::ApplicationUsage::NO_HELP);
|
||||
@@ -31,9 +29,15 @@ BEGIN_ENUM_REFLECTOR(osg::ApplicationUsage::Type)
|
||||
I_EnumLabel(osg::ApplicationUsage::HELP_ALL);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(std::map< std::string COMMA std::string >, osg::ApplicationUsage::UsageMap)
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::ApplicationUsage)
|
||||
I_DeclaringFile("osg/ApplicationUsage");
|
||||
I_BaseType(osg::Referenced);
|
||||
I_StaticMethod0(osg::ApplicationUsage *, instance,
|
||||
__ApplicationUsage_P1__instance_S,
|
||||
"",
|
||||
"");
|
||||
I_Constructor0(____ApplicationUsage,
|
||||
"",
|
||||
"");
|
||||
@@ -162,10 +166,6 @@ BEGIN_OBJECT_REFLECTOR(osg::ApplicationUsage)
|
||||
__void__writeEnvironmentSettings__std_ostream_R1,
|
||||
"",
|
||||
"");
|
||||
I_StaticMethod0(osg::ApplicationUsage *, instance,
|
||||
__ApplicationUsage_P1__instance_S,
|
||||
"",
|
||||
"");
|
||||
I_SimpleProperty(const std::string &, ApplicationName,
|
||||
__C5_std_string_R1__getApplicationName,
|
||||
__void__setApplicationName__C5_std_string_R1);
|
||||
|
||||
@@ -21,16 +21,32 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(std::map< std::string COMMA osg::ArgumentParser::ErrorSeverity >, osg::ArgumentParser::ErrorMessageMap)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::ArgumentParser::ErrorSeverity)
|
||||
I_DeclaringFile("osg/ArgumentParser");
|
||||
I_EnumLabel(osg::ArgumentParser::BENIGN);
|
||||
I_EnumLabel(osg::ArgumentParser::CRITICAL);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(std::map< std::string COMMA osg::ArgumentParser::ErrorSeverity >, osg::ArgumentParser::ErrorMessageMap)
|
||||
|
||||
BEGIN_VALUE_REFLECTOR(osg::ArgumentParser)
|
||||
I_DeclaringFile("osg/ArgumentParser");
|
||||
I_StaticMethod1(bool, isOption, IN, const char *, str,
|
||||
__bool__isOption__C5_char_P1_S,
|
||||
"Return true if the specified string is an option in the form -option or --option. ",
|
||||
"");
|
||||
I_StaticMethod1(bool, isString, IN, const char *, str,
|
||||
__bool__isString__C5_char_P1_S,
|
||||
"Return true if string is non-NULL and not an option in the form -option or --option. ",
|
||||
"");
|
||||
I_StaticMethod1(bool, isNumber, IN, const char *, str,
|
||||
__bool__isNumber__C5_char_P1_S,
|
||||
"Return true if specified parameter is a number. ",
|
||||
"");
|
||||
I_StaticMethod1(bool, isBool, IN, const char *, str,
|
||||
__bool__isBool__C5_char_P1_S,
|
||||
"Return true if specified parameter is a bool. ",
|
||||
"");
|
||||
I_Constructor2(IN, int *, argc, IN, char **, argv,
|
||||
____ArgumentParser__int_P1__char_P1P1,
|
||||
"",
|
||||
@@ -225,22 +241,6 @@ BEGIN_VALUE_REFLECTOR(osg::ArgumentParser)
|
||||
__ApplicationUsage_Type__readHelpType,
|
||||
"This convinience method handles help requests on the command line. ",
|
||||
"Return the type(s) of help requested. The return value of this function is suitable for passing into getApplicationUsage()->write(). If ApplicationUsage::NO_HELP is returned then no help commandline option was found on the command line. ");
|
||||
I_StaticMethod1(bool, isOption, IN, const char *, str,
|
||||
__bool__isOption__C5_char_P1_S,
|
||||
"Return true if the specified string is an option in the form -option or --option. ",
|
||||
"");
|
||||
I_StaticMethod1(bool, isString, IN, const char *, str,
|
||||
__bool__isString__C5_char_P1_S,
|
||||
"Return true if string is non-NULL and not an option in the form -option or --option. ",
|
||||
"");
|
||||
I_StaticMethod1(bool, isNumber, IN, const char *, str,
|
||||
__bool__isNumber__C5_char_P1_S,
|
||||
"Return true if specified parameter is a number. ",
|
||||
"");
|
||||
I_StaticMethod1(bool, isBool, IN, const char *, str,
|
||||
__bool__isBool__C5_char_P1_S,
|
||||
"Return true if specified parameter is a bool. ",
|
||||
"");
|
||||
I_SimpleProperty(std::string, ApplicationName,
|
||||
__std_string__getApplicationName,
|
||||
0);
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include <osg/NodeVisitor>
|
||||
#include <osg/Object>
|
||||
#include <osg/Quat>
|
||||
#include <osg/Vec3>
|
||||
#include <osg/Vec3d>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
#ifdef IN
|
||||
@@ -84,14 +84,14 @@ BEGIN_OBJECT_REFLECTOR(osg::AutoTransform)
|
||||
__C5_AutoTransform_P1__asAutoTransform,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setPosition, IN, const osg::Vec3 &, pos,
|
||||
I_Method1(void, setPosition, IN, const osg::Vec3d &, pos,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setPosition__C5_Vec3_R1,
|
||||
__void__setPosition__C5_Vec3d_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::Vec3 &, getPosition,
|
||||
I_Method0(const osg::Vec3d &, getPosition,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_Vec3_R1__getPosition,
|
||||
__C5_Vec3d_R1__getPosition,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setRotation, IN, const osg::Quat &, quat,
|
||||
@@ -104,49 +104,49 @@ BEGIN_OBJECT_REFLECTOR(osg::AutoTransform)
|
||||
__C5_Quat_R1__getRotation,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setScale, IN, float, scale,
|
||||
I_Method1(void, setScale, IN, double, scale,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setScale__float,
|
||||
__void__setScale__double,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setScale, IN, const osg::Vec3 &, scale,
|
||||
I_Method1(void, setScale, IN, const osg::Vec3d &, scale,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setScale__C5_Vec3_R1,
|
||||
__void__setScale__C5_Vec3d_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::Vec3 &, getScale,
|
||||
I_Method0(const osg::Vec3d &, getScale,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_Vec3_R1__getScale,
|
||||
__C5_Vec3d_R1__getScale,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setMinimumScale, IN, float, minimumScale,
|
||||
I_Method1(void, setMinimumScale, IN, double, minimumScale,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setMinimumScale__float,
|
||||
__void__setMinimumScale__double,
|
||||
"",
|
||||
"");
|
||||
I_Method0(float, getMinimumScale,
|
||||
I_Method0(double, getMinimumScale,
|
||||
Properties::NON_VIRTUAL,
|
||||
__float__getMinimumScale,
|
||||
__double__getMinimumScale,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setMaximumScale, IN, float, maximumScale,
|
||||
I_Method1(void, setMaximumScale, IN, double, maximumScale,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setMaximumScale__float,
|
||||
__void__setMaximumScale__double,
|
||||
"",
|
||||
"");
|
||||
I_Method0(float, getMaximumScale,
|
||||
I_Method0(double, getMaximumScale,
|
||||
Properties::NON_VIRTUAL,
|
||||
__float__getMaximumScale,
|
||||
__double__getMaximumScale,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setPivotPoint, IN, const osg::Vec3 &, pivot,
|
||||
I_Method1(void, setPivotPoint, IN, const osg::Vec3d &, pivot,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setPivotPoint__C5_Vec3_R1,
|
||||
__void__setPivotPoint__C5_Vec3d_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::Vec3 &, getPivotPoint,
|
||||
I_Method0(const osg::Vec3d &, getPivotPoint,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_Vec3_R1__getPivotPoint,
|
||||
__C5_Vec3d_R1__getPivotPoint,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setAutoUpdateEyeMovementTolerance, IN, float, tolerance,
|
||||
@@ -179,14 +179,14 @@ BEGIN_OBJECT_REFLECTOR(osg::AutoTransform)
|
||||
__bool__getAutoScaleToScreen,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setAutoScaleTransistionWidthRatio, IN, float, ratio,
|
||||
I_Method1(void, setAutoScaleTransitionWidthRatio, IN, float, ratio,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setAutoScaleTransistionWidthRatio__float,
|
||||
__void__setAutoScaleTransitionWidthRatio__float,
|
||||
"",
|
||||
"");
|
||||
I_Method0(float, getAutoScaleTransistionWidthRatio,
|
||||
I_Method0(float, getAutoScaleTransitionWidthRatio,
|
||||
Properties::NON_VIRTUAL,
|
||||
__float__getAutoScaleTransistionWidthRatio,
|
||||
__float__getAutoScaleTransitionWidthRatio,
|
||||
"",
|
||||
"");
|
||||
I_Method2(bool, computeLocalToWorldMatrix, IN, osg::Matrix &, matrix, IN, osg::NodeVisitor *, nv,
|
||||
@@ -216,29 +216,29 @@ BEGIN_OBJECT_REFLECTOR(osg::AutoTransform)
|
||||
I_SimpleProperty(bool, AutoScaleToScreen,
|
||||
__bool__getAutoScaleToScreen,
|
||||
__void__setAutoScaleToScreen__bool);
|
||||
I_SimpleProperty(float, AutoScaleTransistionWidthRatio,
|
||||
__float__getAutoScaleTransistionWidthRatio,
|
||||
__void__setAutoScaleTransistionWidthRatio__float);
|
||||
I_SimpleProperty(float, AutoScaleTransitionWidthRatio,
|
||||
__float__getAutoScaleTransitionWidthRatio,
|
||||
__void__setAutoScaleTransitionWidthRatio__float);
|
||||
I_SimpleProperty(float, AutoUpdateEyeMovementTolerance,
|
||||
__float__getAutoUpdateEyeMovementTolerance,
|
||||
__void__setAutoUpdateEyeMovementTolerance__float);
|
||||
I_SimpleProperty(float, MaximumScale,
|
||||
__float__getMaximumScale,
|
||||
__void__setMaximumScale__float);
|
||||
I_SimpleProperty(float, MinimumScale,
|
||||
__float__getMinimumScale,
|
||||
__void__setMinimumScale__float);
|
||||
I_SimpleProperty(const osg::Vec3 &, PivotPoint,
|
||||
__C5_Vec3_R1__getPivotPoint,
|
||||
__void__setPivotPoint__C5_Vec3_R1);
|
||||
I_SimpleProperty(const osg::Vec3 &, Position,
|
||||
__C5_Vec3_R1__getPosition,
|
||||
__void__setPosition__C5_Vec3_R1);
|
||||
I_SimpleProperty(double, MaximumScale,
|
||||
__double__getMaximumScale,
|
||||
__void__setMaximumScale__double);
|
||||
I_SimpleProperty(double, MinimumScale,
|
||||
__double__getMinimumScale,
|
||||
__void__setMinimumScale__double);
|
||||
I_SimpleProperty(const osg::Vec3d &, PivotPoint,
|
||||
__C5_Vec3d_R1__getPivotPoint,
|
||||
__void__setPivotPoint__C5_Vec3d_R1);
|
||||
I_SimpleProperty(const osg::Vec3d &, Position,
|
||||
__C5_Vec3d_R1__getPosition,
|
||||
__void__setPosition__C5_Vec3d_R1);
|
||||
I_SimpleProperty(const osg::Quat &, Rotation,
|
||||
__C5_Quat_R1__getRotation,
|
||||
__void__setRotation__C5_Quat_R1);
|
||||
I_SimpleProperty(const osg::Vec3 &, Scale,
|
||||
__C5_Vec3_R1__getScale,
|
||||
__void__setScale__C5_Vec3_R1);
|
||||
I_SimpleProperty(const osg::Vec3d &, Scale,
|
||||
__C5_Vec3d_R1__getScale,
|
||||
__void__setScale__C5_Vec3d_R1);
|
||||
END_REFLECTOR
|
||||
|
||||
|
||||
@@ -27,8 +27,6 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::Vec3 >, osg::Billboard::PositionList)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::Billboard::Mode)
|
||||
I_DeclaringFile("osg/Billboard");
|
||||
I_EnumLabel(osg::Billboard::POINT_ROT_EYE);
|
||||
@@ -36,6 +34,8 @@ BEGIN_ENUM_REFLECTOR(osg::Billboard::Mode)
|
||||
I_EnumLabel(osg::Billboard::AXIAL_ROT);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::Vec3 >, osg::Billboard::PositionList)
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::Billboard)
|
||||
I_DeclaringFile("osg/Billboard");
|
||||
I_BaseType(osg::Geode);
|
||||
|
||||
@@ -45,7 +45,7 @@ BEGIN_OBJECT_REFLECTOR(osg::BlendColor)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -75,7 +75,7 @@ BEGIN_OBJECT_REFLECTOR(osg::BlendColor)
|
||||
__int__compare__C5_StateAttribute_R1,
|
||||
"Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, usage,
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, x,
|
||||
Properties::VIRTUAL,
|
||||
__bool__getModeUsage__StateAttribute_ModeUsage_R1,
|
||||
"Return the modes associated with this StateAttribute. ",
|
||||
@@ -95,7 +95,7 @@ BEGIN_OBJECT_REFLECTOR(osg::BlendColor)
|
||||
__C5_osg_Vec4_R1__getConstantColor,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
|
||||
@@ -56,7 +56,7 @@ BEGIN_OBJECT_REFLECTOR(osg::BlendEquation)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -86,7 +86,7 @@ BEGIN_OBJECT_REFLECTOR(osg::BlendEquation)
|
||||
__int__compare__C5_StateAttribute_R1,
|
||||
"Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, usage,
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, x,
|
||||
Properties::VIRTUAL,
|
||||
__bool__getModeUsage__StateAttribute_ModeUsage_R1,
|
||||
"Return the modes associated with this StateAttribute. ",
|
||||
@@ -101,7 +101,7 @@ BEGIN_OBJECT_REFLECTOR(osg::BlendEquation)
|
||||
__Equation__getEquation,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
|
||||
@@ -66,7 +66,7 @@ BEGIN_OBJECT_REFLECTOR(osg::BlendFunc)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -96,7 +96,7 @@ BEGIN_OBJECT_REFLECTOR(osg::BlendFunc)
|
||||
__int__compare__C5_StateAttribute_R1,
|
||||
"Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, usage,
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, x,
|
||||
Properties::VIRTUAL,
|
||||
__bool__getModeUsage__StateAttribute_ModeUsage_R1,
|
||||
"Return the modes associated with this StateAttribute. ",
|
||||
@@ -171,7 +171,7 @@ BEGIN_OBJECT_REFLECTOR(osg::BlendFunc)
|
||||
__GLenum__getDestinationAlpha,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(osg::Vec3f, osg::BoundingBox::vec_type)
|
||||
TYPE_NAME_ALIAS(osg::Vec3d, osg::BoundingBox::vec_type)
|
||||
|
||||
TYPE_NAME_ALIAS(float, osg::BoundingBox::value_type)
|
||||
TYPE_NAME_ALIAS(double, osg::BoundingBox::value_type)
|
||||
|
||||
BEGIN_VALUE_REFLECTOR(osg::BoundingBox)
|
||||
I_DeclaringFile("osg/BoundingBox");
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(osg::Vec3f, osg::BoundingSphere::vec_type)
|
||||
TYPE_NAME_ALIAS(osg::Vec3d, osg::BoundingSphere::vec_type)
|
||||
|
||||
TYPE_NAME_ALIAS(float, osg::BoundingSphere::value_type)
|
||||
TYPE_NAME_ALIAS(double, osg::BoundingSphere::value_type)
|
||||
|
||||
BEGIN_VALUE_REFLECTOR(osg::BoundingSphere)
|
||||
I_DeclaringFile("osg/BoundingSphere");
|
||||
|
||||
@@ -270,7 +270,7 @@ BEGIN_OBJECT_REFLECTOR(osg::ElementBufferObject)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
@@ -355,7 +355,7 @@ BEGIN_OBJECT_REFLECTOR(osg::PixelBufferObject)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
@@ -429,7 +429,7 @@ BEGIN_OBJECT_REFLECTOR(osg::VertexBufferObject)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
|
||||
@@ -43,8 +43,6 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(std::map< osg::Camera::BufferComponent COMMA osg::Camera::Attachment >, osg::Camera::BufferAttachmentMap)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::Camera::TransformOrder)
|
||||
I_DeclaringFile("osg/Camera");
|
||||
I_EnumLabel(osg::Camera::PRE_MULTIPLY);
|
||||
@@ -97,6 +95,8 @@ BEGIN_ENUM_REFLECTOR(osg::Camera::BufferComponent)
|
||||
I_EnumLabel(osg::Camera::COLOR_BUFFER15);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(std::map< osg::Camera::BufferComponent COMMA osg::Camera::Attachment >, osg::Camera::BufferAttachmentMap)
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::Camera)
|
||||
I_DeclaringFile("osg/Camera");
|
||||
I_BaseType(osg::Transform);
|
||||
@@ -786,7 +786,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Camera::DrawCallback)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
|
||||
@@ -43,7 +43,7 @@ BEGIN_OBJECT_REFLECTOR(osg::ClampColor)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -103,7 +103,7 @@ BEGIN_OBJECT_REFLECTOR(osg::ClampColor)
|
||||
__GLenum__getClampReadColor,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
|
||||
@@ -58,7 +58,7 @@ BEGIN_OBJECT_REFLECTOR(osg::ClipPlane)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -93,7 +93,7 @@ BEGIN_OBJECT_REFLECTOR(osg::ClipPlane)
|
||||
__unsigned_int__getMember,
|
||||
"Return the member identifier within the attribute's class type. ",
|
||||
"Used for light number/clip plane number etc. ");
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, usage,
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, x,
|
||||
Properties::VIRTUAL,
|
||||
__bool__getModeUsage__StateAttribute_ModeUsage_R1,
|
||||
"Return the modes associated with this StateAttribute. ",
|
||||
|
||||
@@ -53,7 +53,7 @@ BEGIN_OBJECT_REFLECTOR(osg::ClusterCullingCallback)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
|
||||
@@ -46,17 +46,17 @@ BEGIN_OBJECT_REFLECTOR(osg::CollectOccludersVisitor)
|
||||
__void__reset,
|
||||
"",
|
||||
"");
|
||||
I_Method2(float, getDistanceToEyePoint, IN, const osg::Vec3 &, pos, IN, bool, withLODScale,
|
||||
I_Method2(float, getDistanceToEyePoint, IN, const osg::Vec3 &, x, IN, bool, x,
|
||||
Properties::VIRTUAL,
|
||||
__float__getDistanceToEyePoint__C5_Vec3_R1__bool,
|
||||
"Get the distance from a point to the eye point, distance value in local coordinate system. ",
|
||||
"Note, not all NodeVisitor implement this method, it is mainly cull visitors which will implement. If the getDistanceFromEyePoint(pos) is not implemented then a default value of 0.0 is returned. ");
|
||||
I_Method2(float, getDistanceToViewPoint, IN, const osg::Vec3 &, pos, IN, bool, withLODScale,
|
||||
I_Method2(float, getDistanceToViewPoint, IN, const osg::Vec3 &, x, IN, bool, x,
|
||||
Properties::VIRTUAL,
|
||||
__float__getDistanceToViewPoint__C5_Vec3_R1__bool,
|
||||
"Get the distance from a point to the view point, distance value in local coordinate system. ",
|
||||
"Note, not all NodeVisitor implement this method, it is mainly cull visitors which will implement. If the getDistanceToViewPoint(pos) is not implemented then a default value of 0.0 is returned. ");
|
||||
I_Method2(float, getDistanceFromEyePoint, IN, const osg::Vec3 &, pos, IN, bool, withLODScale,
|
||||
I_Method2(float, getDistanceFromEyePoint, IN, const osg::Vec3 &, x, IN, bool, x,
|
||||
Properties::VIRTUAL,
|
||||
__float__getDistanceFromEyePoint__C5_Vec3_R1__bool,
|
||||
"Get the distance of a point from the eye point, distance value in the eye coordinate system. ",
|
||||
|
||||
@@ -43,7 +43,7 @@ BEGIN_OBJECT_REFLECTOR(osg::ColorMask)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -118,7 +118,7 @@ BEGIN_OBJECT_REFLECTOR(osg::ColorMask)
|
||||
__bool__getAlphaMask,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
|
||||
@@ -40,7 +40,7 @@ BEGIN_OBJECT_REFLECTOR(osg::ColorMatrix)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
|
||||
@@ -40,7 +40,7 @@ BEGIN_OBJECT_REFLECTOR(osg::ConvexPlanarOccluder)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
|
||||
@@ -146,7 +146,7 @@ BEGIN_OBJECT_REFLECTOR(osg::EllipsoidModel)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
|
||||
@@ -32,8 +32,6 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(unsigned int, osg::CopyOp::CopyFlags)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::CopyOp::Options)
|
||||
I_DeclaringFile("osg/CopyOp");
|
||||
I_EnumLabel(osg::CopyOp::SHALLOW_COPY);
|
||||
@@ -51,6 +49,8 @@ BEGIN_ENUM_REFLECTOR(osg::CopyOp::Options)
|
||||
I_EnumLabel(osg::CopyOp::DEEP_COPY_ALL);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(unsigned int, osg::CopyOp::CopyFlags)
|
||||
|
||||
BEGIN_VALUE_REFLECTOR(osg::CopyOp)
|
||||
I_DeclaringFile("osg/CopyOp");
|
||||
I_ConstructorWithDefaults1(IN, osg::CopyOp::CopyFlags, flags, osg::CopyOp::SHALLOW_COPY,
|
||||
|
||||
@@ -48,7 +48,7 @@ BEGIN_OBJECT_REFLECTOR(osg::CullFace)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -78,7 +78,7 @@ BEGIN_OBJECT_REFLECTOR(osg::CullFace)
|
||||
__int__compare__C5_StateAttribute_R1,
|
||||
"return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, usage,
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, x,
|
||||
Properties::VIRTUAL,
|
||||
__bool__getModeUsage__StateAttribute_ModeUsage_R1,
|
||||
"Return the modes associated with this StateAttribute. ",
|
||||
@@ -93,7 +93,7 @@ BEGIN_OBJECT_REFLECTOR(osg::CullFace)
|
||||
__Mode__getMode,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(unsigned int, osg::CullSettings::CullingMode)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::CullSettings::VariablesMask)
|
||||
I_DeclaringFile("osg/CullSettings");
|
||||
I_EnumLabel(osg::CullSettings::COMPUTE_NEAR_FAR_MODE);
|
||||
@@ -75,6 +73,8 @@ BEGIN_ENUM_REFLECTOR(osg::CullSettings::CullingModeValues)
|
||||
I_EnumLabel(osg::CullSettings::ENABLE_ALL_CULLING);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(unsigned int, osg::CullSettings::CullingMode)
|
||||
|
||||
BEGIN_VALUE_REFLECTOR(osg::CullSettings)
|
||||
I_DeclaringFile("osg/CullSettings");
|
||||
I_Constructor0(____CullSettings,
|
||||
|
||||
@@ -30,14 +30,6 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(std::pair< osg::ref_ptr< osg::StateSet > COMMA osg::Polytope >, osg::CullingSet::StateFrustumPair)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::CullingSet::StateFrustumPair >, osg::CullingSet::StateFrustumList)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::ShadowVolumeOccluder >, osg::CullingSet::OccluderList)
|
||||
|
||||
TYPE_NAME_ALIAS(unsigned int, osg::CullingSet::Mask)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::CullingSet::MaskValues)
|
||||
I_DeclaringFile("osg/CullingSet");
|
||||
I_EnumLabel(osg::CullingSet::NO_CULLING);
|
||||
@@ -51,6 +43,14 @@ BEGIN_ENUM_REFLECTOR(osg::CullingSet::MaskValues)
|
||||
I_EnumLabel(osg::CullingSet::ENABLE_ALL_CULLING);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(std::pair< osg::ref_ptr< osg::StateSet > COMMA osg::Polytope >, osg::CullingSet::StateFrustumPair)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::CullingSet::StateFrustumPair >, osg::CullingSet::StateFrustumList)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::ShadowVolumeOccluder >, osg::CullingSet::OccluderList)
|
||||
|
||||
TYPE_NAME_ALIAS(unsigned int, osg::CullingSet::Mask)
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::CullingSet)
|
||||
I_DeclaringFile("osg/CullingSet");
|
||||
I_BaseType(osg::Referenced);
|
||||
|
||||
@@ -52,7 +52,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Depth)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -82,7 +82,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Depth)
|
||||
__int__compare__C5_StateAttribute_R1,
|
||||
"return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, usage,
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, x,
|
||||
Properties::VIRTUAL,
|
||||
__bool__getModeUsage__StateAttribute_ModeUsage_R1,
|
||||
"Return the modes associated with this StateAttribute. ",
|
||||
@@ -132,7 +132,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Depth)
|
||||
__bool__getWriteMask,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
|
||||
@@ -57,6 +57,10 @@ END_REFLECTOR
|
||||
BEGIN_OBJECT_REFLECTOR(osg::DisplaySettings)
|
||||
I_DeclaringFile("osg/DisplaySettings");
|
||||
I_BaseType(osg::Referenced);
|
||||
I_StaticMethod0(osg::DisplaySettings *, instance,
|
||||
__DisplaySettings_P1__instance_S,
|
||||
"Maintain a DisplaySettings singleton for objects to query at runtime. ",
|
||||
"");
|
||||
I_Constructor0(____DisplaySettings,
|
||||
"",
|
||||
"");
|
||||
@@ -350,10 +354,6 @@ BEGIN_OBJECT_REFLECTOR(osg::DisplaySettings)
|
||||
__bool__getSerializeDrawDispatch,
|
||||
"",
|
||||
"");
|
||||
I_StaticMethod0(osg::DisplaySettings *, instance,
|
||||
__DisplaySettings_P1__instance_S,
|
||||
"Maintain a DisplaySettings singleton for objects to query at runtime. ",
|
||||
"");
|
||||
I_SimpleProperty(bool, AccumBuffer,
|
||||
__bool__getAccumBuffer,
|
||||
0);
|
||||
|
||||
@@ -41,7 +41,7 @@ BEGIN_OBJECT_REFLECTOR(osg::DrawPixels)
|
||||
__Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__Object_P1__clone__C5_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
|
||||
@@ -38,10 +38,6 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::Node * >, osg::Drawable::ParentList)
|
||||
|
||||
TYPE_NAME_ALIAS(unsigned int, osg::Drawable::AttributeType)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::Drawable::AttributeTypes)
|
||||
I_DeclaringFile("osg/Drawable");
|
||||
I_EnumLabel(osg::Drawable::VERTICES);
|
||||
@@ -63,6 +59,10 @@ BEGIN_ENUM_REFLECTOR(osg::Drawable::AttributeTypes)
|
||||
I_EnumLabel(osg::Drawable::TEXTURE_COORDS_7);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::Node * >, osg::Drawable::ParentList)
|
||||
|
||||
TYPE_NAME_ALIAS(unsigned int, osg::Drawable::AttributeType)
|
||||
|
||||
BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::Drawable)
|
||||
I_DeclaringFile("osg/Drawable");
|
||||
I_BaseType(osg::Object);
|
||||
@@ -617,7 +617,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Drawable::ComputeBoundingBoxCallback)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
@@ -741,7 +741,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Drawable::CullCallback)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
@@ -788,7 +788,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Drawable::DrawCallback)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
@@ -830,7 +830,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Drawable::EventCallback)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
@@ -1273,7 +1273,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Drawable::UpdateCallback)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
|
||||
@@ -53,7 +53,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Fog)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -83,7 +83,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Fog)
|
||||
__int__compare__C5_StateAttribute_R1,
|
||||
"return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, usage,
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, x,
|
||||
Properties::VIRTUAL,
|
||||
__bool__getModeUsage__StateAttribute_ModeUsage_R1,
|
||||
"Return the modes associated with this StateAttribute. ",
|
||||
@@ -148,7 +148,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Fog)
|
||||
__GLint__getFogCoordinateSource,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
|
||||
@@ -45,7 +45,7 @@ BEGIN_OBJECT_REFLECTOR(osg::FragmentProgram)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -75,7 +75,7 @@ BEGIN_OBJECT_REFLECTOR(osg::FragmentProgram)
|
||||
__int__compare__C5_osg_StateAttribute_R1,
|
||||
"return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, usage,
|
||||
I_Method1(bool, getModeUsage, IN, osg::StateAttribute::ModeUsage &, x,
|
||||
Properties::VIRTUAL,
|
||||
__bool__getModeUsage__StateAttribute_ModeUsage_R1,
|
||||
"Return the modes associated with this StateAttribute. ",
|
||||
@@ -145,12 +145,12 @@ BEGIN_OBJECT_REFLECTOR(osg::FragmentProgram)
|
||||
__void__dirtyFragmentProgramObject,
|
||||
"Force a recompile on next apply() of associated OpenGL vertex program objects. ",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
"The render info for the current OpenGL context is passed in to allow the StateAttribute to obtain details on the the current context and state. ");
|
||||
I_Method1(void, compileGLObjects, IN, osg::State &, state,
|
||||
I_Method1(void, compileGLObjects, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__compileGLObjects__State_R1,
|
||||
"Default to nothing to compile - all state is applied immediately. ",
|
||||
|
||||
@@ -68,6 +68,10 @@ TYPE_NAME_ALIAS(void , osg::FBOExtensions::TglBlitFramebufferEXT)
|
||||
BEGIN_OBJECT_REFLECTOR(osg::FBOExtensions)
|
||||
I_DeclaringFile("osg/FrameBufferObject");
|
||||
I_BaseType(osg::Referenced);
|
||||
I_StaticMethod2(osg::FBOExtensions *, instance, IN, unsigned, contextID, IN, bool, createIfNotInitalized,
|
||||
__FBOExtensions_P1__instance__unsigned__bool_S,
|
||||
"",
|
||||
"");
|
||||
I_Method0(bool, isSupported,
|
||||
Properties::NON_VIRTUAL,
|
||||
__bool__isSupported,
|
||||
@@ -83,10 +87,6 @@ BEGIN_OBJECT_REFLECTOR(osg::FBOExtensions)
|
||||
__bool__isMultisampleCoverageSupported,
|
||||
"",
|
||||
"");
|
||||
I_StaticMethod2(osg::FBOExtensions *, instance, IN, unsigned, contextID, IN, bool, createIfNotInitalized,
|
||||
__FBOExtensions_P1__instance__unsigned__bool_S,
|
||||
"",
|
||||
"");
|
||||
I_ProtectedConstructor1(IN, unsigned int, contextID,
|
||||
Properties::NON_EXPLICIT,
|
||||
____FBOExtensions__unsigned_int,
|
||||
@@ -178,12 +178,6 @@ BEGIN_VALUE_REFLECTOR(osg::FrameBufferAttachment)
|
||||
"");
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(std::map< osg::Camera::BufferComponent COMMA osg::FrameBufferAttachment >, osg::FrameBufferObject::AttachmentMap)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< GLenum >, osg::FrameBufferObject::MultipleRenderingTargets)
|
||||
|
||||
TYPE_NAME_ALIAS(osg::Camera::BufferComponent, osg::FrameBufferObject::BufferComponent)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::FrameBufferObject::BindTarget)
|
||||
I_DeclaringFile("osg/FrameBufferObject");
|
||||
I_EnumLabel(osg::FrameBufferObject::READ_FRAMEBUFFER);
|
||||
@@ -191,6 +185,12 @@ BEGIN_ENUM_REFLECTOR(osg::FrameBufferObject::BindTarget)
|
||||
I_EnumLabel(osg::FrameBufferObject::READ_DRAW_FRAMEBUFFER);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(std::map< osg::Camera::BufferComponent COMMA osg::FrameBufferAttachment >, osg::FrameBufferObject::AttachmentMap)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< GLenum >, osg::FrameBufferObject::MultipleRenderingTargets)
|
||||
|
||||
TYPE_NAME_ALIAS(osg::Camera::BufferComponent, osg::FrameBufferObject::BufferComponent)
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::FrameBufferObject)
|
||||
I_DeclaringFile("osg/FrameBufferObject");
|
||||
I_BaseType(osg::StateAttribute);
|
||||
@@ -206,7 +206,7 @@ BEGIN_OBJECT_REFLECTOR(osg::FrameBufferObject)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -271,7 +271,7 @@ BEGIN_OBJECT_REFLECTOR(osg::FrameBufferObject)
|
||||
__int__compare__C5_StateAttribute_R1,
|
||||
"Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
@@ -345,7 +345,7 @@ BEGIN_OBJECT_REFLECTOR(osg::RenderBuffer)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
|
||||
@@ -47,7 +47,7 @@ BEGIN_OBJECT_REFLECTOR(osg::FrontFace)
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
@@ -87,7 +87,7 @@ BEGIN_OBJECT_REFLECTOR(osg::FrontFace)
|
||||
__Mode__getMode,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
|
||||
@@ -28,14 +28,6 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::Geometry::ArrayData >, osg::Geometry::ArrayDataList)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::ref_ptr< osg::PrimitiveSet > >, osg::Geometry::PrimitiveSetList)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::Array * >, osg::Geometry::ArrayList)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::DrawElements * >, osg::Geometry::DrawElementsList)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::Geometry::AttributeBinding)
|
||||
I_DeclaringFile("osg/Geometry");
|
||||
I_EnumLabel(osg::Geometry::BIND_OFF);
|
||||
@@ -45,6 +37,14 @@ BEGIN_ENUM_REFLECTOR(osg::Geometry::AttributeBinding)
|
||||
I_EnumLabel(osg::Geometry::BIND_PER_VERTEX);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::Geometry::ArrayData >, osg::Geometry::ArrayDataList)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::ref_ptr< osg::PrimitiveSet > >, osg::Geometry::PrimitiveSetList)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::Array * >, osg::Geometry::ArrayList)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::DrawElements * >, osg::Geometry::DrawElementsList)
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::Geometry)
|
||||
I_DeclaringFile("osg/Geometry");
|
||||
I_BaseType(osg::Drawable);
|
||||
@@ -60,7 +60,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Geometry)
|
||||
__Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__Object_P1__clone__C5_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
@@ -635,6 +635,16 @@ BEGIN_OBJECT_REFLECTOR(osg::Geometry)
|
||||
__void__copyToAndOptimize__Geometry_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(bool, containsSharedArrays,
|
||||
Properties::NON_VIRTUAL,
|
||||
__bool__containsSharedArrays,
|
||||
"",
|
||||
"");
|
||||
I_Method0(void, duplicateSharedArrays,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__duplicateSharedArrays,
|
||||
"",
|
||||
"");
|
||||
I_Method0(void, computeInternalOptimizedGeometry,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__computeInternalOptimizedGeometry,
|
||||
|
||||
@@ -37,6 +37,54 @@ TYPE_NAME_ALIAS(std::list< osg::Camera * >, osg::GraphicsContext::Cameras)
|
||||
BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::GraphicsContext)
|
||||
I_DeclaringFile("osg/GraphicsContext");
|
||||
I_BaseType(osg::Object);
|
||||
I_StaticMethod1(void, setWindowingSystemInterface, IN, osg::GraphicsContext::WindowingSystemInterface *, wsInterface,
|
||||
__void__setWindowingSystemInterface__WindowingSystemInterface_P1_S,
|
||||
"Set the query the windowing system for screens and create graphics context - this functor should be supplied by the windows toolkit. ",
|
||||
"");
|
||||
I_StaticMethod0(osg::GraphicsContext::WindowingSystemInterface *, getWindowingSystemInterface,
|
||||
__WindowingSystemInterface_P1__getWindowingSystemInterface_S,
|
||||
"Get the WindowingSystemInterface. ",
|
||||
"");
|
||||
I_StaticMethod1(osg::GraphicsContext *, createGraphicsContext, IN, osg::GraphicsContext::Traits *, traits,
|
||||
__GraphicsContext_P1__createGraphicsContext__Traits_P1_S,
|
||||
"Create a graphics context for a specified set of traits. ",
|
||||
"");
|
||||
I_StaticMethod0(unsigned int, createNewContextID,
|
||||
__unsigned_int__createNewContextID_S,
|
||||
"Create a contextID for a new graphics context, this contextID is used to set up the osg::State associate with context. ",
|
||||
"Automatically increments the usage count of the contextID to 1. ");
|
||||
I_StaticMethod0(unsigned int, getMaxContextID,
|
||||
__unsigned_int__getMaxContextID_S,
|
||||
"Get the current max ContextID. ",
|
||||
"");
|
||||
I_StaticMethod1(void, incrementContextIDUsageCount, IN, unsigned int, contextID,
|
||||
__void__incrementContextIDUsageCount__unsigned_int_S,
|
||||
"Increment the usage count associate with a contextID. ",
|
||||
"The usage count specifies how many graphics contexts a specific contextID is shared between. ");
|
||||
I_StaticMethod1(void, decrementContextIDUsageCount, IN, unsigned int, contextID,
|
||||
__void__decrementContextIDUsageCount__unsigned_int_S,
|
||||
"Decrement the usage count associate with a contextID. ",
|
||||
"Once the contextID goes to 0 the contextID is then free to be reused. ");
|
||||
I_StaticMethod0(osg::GraphicsContext::GraphicsContexts, getAllRegisteredGraphicsContexts,
|
||||
__GraphicsContexts__getAllRegisteredGraphicsContexts_S,
|
||||
"Get all the registered graphics contexts. ",
|
||||
"");
|
||||
I_StaticMethod1(osg::GraphicsContext::GraphicsContexts, getRegisteredGraphicsContexts, IN, unsigned int, contextID,
|
||||
__GraphicsContexts__getRegisteredGraphicsContexts__unsigned_int_S,
|
||||
"Get all the registered graphics contexts associated with a specific contextID. ",
|
||||
"");
|
||||
I_StaticMethod2(void, setCompileContext, IN, unsigned int, contextID, IN, osg::GraphicsContext *, gc,
|
||||
__void__setCompileContext__unsigned_int__GraphicsContext_P1_S,
|
||||
"Get the GraphicsContext for doing background compilation for GraphicsContexts associated with specified contextID. ",
|
||||
"");
|
||||
I_StaticMethod1(osg::GraphicsContext *, getOrCreateCompileContext, IN, unsigned int, contextID,
|
||||
__GraphicsContext_P1__getOrCreateCompileContext__unsigned_int_S,
|
||||
"Get existing or create a new GraphicsContext to do background compilation for GraphicsContexts associated with specified contextID. ",
|
||||
"");
|
||||
I_StaticMethod1(osg::GraphicsContext *, getCompileContext, IN, unsigned int, contextID,
|
||||
__GraphicsContext_P1__getCompileContext__unsigned_int_S,
|
||||
"Get the GraphicsContext for doing background compilation for GraphicsContexts associated with specified contextID. ",
|
||||
"");
|
||||
I_Method1(void, add, IN, osg::Operation *, operation,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__add__Operation_P1,
|
||||
@@ -287,54 +335,6 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::GraphicsContext)
|
||||
__C5_char_P1__className,
|
||||
"return the name of the object's class type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_StaticMethod1(void, setWindowingSystemInterface, IN, osg::GraphicsContext::WindowingSystemInterface *, wsInterface,
|
||||
__void__setWindowingSystemInterface__WindowingSystemInterface_P1_S,
|
||||
"Set the query the windowing system for screens and create graphics context - this functor should be supplied by the windows toolkit. ",
|
||||
"");
|
||||
I_StaticMethod0(osg::GraphicsContext::WindowingSystemInterface *, getWindowingSystemInterface,
|
||||
__WindowingSystemInterface_P1__getWindowingSystemInterface_S,
|
||||
"Get the WindowingSystemInterface. ",
|
||||
"");
|
||||
I_StaticMethod1(osg::GraphicsContext *, createGraphicsContext, IN, osg::GraphicsContext::Traits *, traits,
|
||||
__GraphicsContext_P1__createGraphicsContext__Traits_P1_S,
|
||||
"Create a graphics context for a specified set of traits. ",
|
||||
"");
|
||||
I_StaticMethod0(unsigned int, createNewContextID,
|
||||
__unsigned_int__createNewContextID_S,
|
||||
"Create a contextID for a new graphics context, this contextID is used to set up the osg::State associate with context. ",
|
||||
"Automatically increments the usage count of the contextID to 1. ");
|
||||
I_StaticMethod0(unsigned int, getMaxContextID,
|
||||
__unsigned_int__getMaxContextID_S,
|
||||
"Get the current max ContextID. ",
|
||||
"");
|
||||
I_StaticMethod1(void, incrementContextIDUsageCount, IN, unsigned int, contextID,
|
||||
__void__incrementContextIDUsageCount__unsigned_int_S,
|
||||
"Increment the usage count associate with a contextID. ",
|
||||
"The usage count specifies how many graphics contexts a specific contextID is shared between. ");
|
||||
I_StaticMethod1(void, decrementContextIDUsageCount, IN, unsigned int, contextID,
|
||||
__void__decrementContextIDUsageCount__unsigned_int_S,
|
||||
"Decrement the usage count associate with a contextID. ",
|
||||
"Once the contextID goes to 0 the contextID is then free to be reused. ");
|
||||
I_StaticMethod0(osg::GraphicsContext::GraphicsContexts, getAllRegisteredGraphicsContexts,
|
||||
__GraphicsContexts__getAllRegisteredGraphicsContexts_S,
|
||||
"Get all the registered graphics contexts. ",
|
||||
"");
|
||||
I_StaticMethod1(osg::GraphicsContext::GraphicsContexts, getRegisteredGraphicsContexts, IN, unsigned int, contextID,
|
||||
__GraphicsContexts__getRegisteredGraphicsContexts__unsigned_int_S,
|
||||
"Get all the registered graphics contexts associated with a specific contextID. ",
|
||||
"");
|
||||
I_StaticMethod2(void, setCompileContext, IN, unsigned int, contextID, IN, osg::GraphicsContext *, gc,
|
||||
__void__setCompileContext__unsigned_int__GraphicsContext_P1_S,
|
||||
"Get the GraphicsContext for doing background compilation for GraphicsContexts associated with specified contextID. ",
|
||||
"");
|
||||
I_StaticMethod1(osg::GraphicsContext *, getOrCreateCompileContext, IN, unsigned int, contextID,
|
||||
__GraphicsContext_P1__getOrCreateCompileContext__unsigned_int_S,
|
||||
"Get existing or create a new GraphicsContext to do background compilation for GraphicsContexts associated with specified contextID. ",
|
||||
"");
|
||||
I_StaticMethod1(osg::GraphicsContext *, getCompileContext, IN, unsigned int, contextID,
|
||||
__GraphicsContext_P1__getCompileContext__unsigned_int_S,
|
||||
"Get the GraphicsContext for doing background compilation for GraphicsContexts associated with specified contextID. ",
|
||||
"");
|
||||
I_ProtectedConstructor0(____GraphicsContext,
|
||||
"",
|
||||
"");
|
||||
|
||||
@@ -76,7 +76,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Group)
|
||||
__C5_Group_P1__asGroup,
|
||||
"convert 'const this' into a const Group pointer if Node is a Group, otherwise return 0. ",
|
||||
"Equivalent to dynamic_cast<const Group*>(this). ");
|
||||
I_Method1(void, traverse, IN, osg::NodeVisitor &, nv,
|
||||
I_Method1(void, traverse, IN, osg::NodeVisitor &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__traverse__NodeVisitor_R1,
|
||||
"Traverse downwards : calls children's accept method with NodeVisitor. ",
|
||||
|
||||
@@ -1,119 +1,119 @@
|
||||
// ***************************************************************************
|
||||
//
|
||||
// Generated automatically by genwrapper.
|
||||
// Please DO NOT EDIT this file!
|
||||
//
|
||||
// ***************************************************************************
|
||||
|
||||
#include <osgIntrospection/ReflectionMacros>
|
||||
#include <osgIntrospection/TypedMethodInfo>
|
||||
#include <osgIntrospection/StaticMethodInfo>
|
||||
#include <osgIntrospection/Attributes>
|
||||
|
||||
#include <osg/CopyOp>
|
||||
#include <osg/Hint>
|
||||
#include <osg/Object>
|
||||
#include <osg/State>
|
||||
#include <osg/StateAttribute>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
#ifdef IN
|
||||
#undef IN
|
||||
#endif
|
||||
#ifdef OUT
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::Hint)
|
||||
I_DeclaringFile("osg/Hint");
|
||||
I_BaseType(osg::StateAttribute);
|
||||
I_Constructor0(____Hint,
|
||||
"",
|
||||
"");
|
||||
I_Constructor2(IN, GLenum, target, IN, GLenum, mode,
|
||||
____Hint__GLenum__GLenum,
|
||||
"",
|
||||
"");
|
||||
I_ConstructorWithDefaults2(IN, const osg::Hint &, hint, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
|
||||
____Hint__C5_Hint_R1__C5_CopyOp_R1,
|
||||
"Copy constructor using CopyOp to manage deep vs shallow copy. ",
|
||||
"");
|
||||
I_Method0(osg::Object *, cloneType,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj,
|
||||
Properties::VIRTUAL,
|
||||
__bool__isSameKindAs__C5_osg_Object_P1,
|
||||
"Return true if this and obj are of the same kind of object. ",
|
||||
"");
|
||||
I_Method0(const char *, libraryName,
|
||||
Properties::VIRTUAL,
|
||||
__C5_char_P1__libraryName,
|
||||
"Return the name of the attribute's library. ",
|
||||
"");
|
||||
I_Method0(const char *, className,
|
||||
Properties::VIRTUAL,
|
||||
__C5_char_P1__className,
|
||||
"Return the name of the attribute's class type. ",
|
||||
"");
|
||||
I_Method0(osg::StateAttribute::Type, getType,
|
||||
Properties::VIRTUAL,
|
||||
__Type__getType,
|
||||
"Return the Type identifier of the attribute's class type. ",
|
||||
"");
|
||||
I_Method1(int, compare, IN, const osg::StateAttribute &, sa,
|
||||
Properties::VIRTUAL,
|
||||
__int__compare__C5_StateAttribute_R1,
|
||||
"Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method0(unsigned int, getMember,
|
||||
Properties::VIRTUAL,
|
||||
__unsigned_int__getMember,
|
||||
"Return the member identifier within the attribute's class type. ",
|
||||
"Used for light number/clip plane number etc. ");
|
||||
I_Method1(void, setTarget, IN, GLenum, target,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setTarget__GLenum,
|
||||
"",
|
||||
"");
|
||||
I_Method0(GLenum, getTarget,
|
||||
Properties::NON_VIRTUAL,
|
||||
__GLenum__getTarget,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setMode, IN, GLenum, mode,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setMode__GLenum,
|
||||
"",
|
||||
"");
|
||||
I_Method0(GLenum, getMode,
|
||||
Properties::NON_VIRTUAL,
|
||||
__GLenum__getMode,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, state,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
"The render info for the current OpenGL context is passed in to allow the StateAttribute to obtain details on the the current context and state. ");
|
||||
I_SimpleProperty(unsigned int, Member,
|
||||
__unsigned_int__getMember,
|
||||
0);
|
||||
I_SimpleProperty(GLenum, Mode,
|
||||
__GLenum__getMode,
|
||||
__void__setMode__GLenum);
|
||||
I_SimpleProperty(GLenum, Target,
|
||||
__GLenum__getTarget,
|
||||
__void__setTarget__GLenum);
|
||||
I_SimpleProperty(osg::StateAttribute::Type, Type,
|
||||
__Type__getType,
|
||||
0);
|
||||
END_REFLECTOR
|
||||
|
||||
// ***************************************************************************
|
||||
//
|
||||
// Generated automatically by genwrapper.
|
||||
// Please DO NOT EDIT this file!
|
||||
//
|
||||
// ***************************************************************************
|
||||
|
||||
#include <osgIntrospection/ReflectionMacros>
|
||||
#include <osgIntrospection/TypedMethodInfo>
|
||||
#include <osgIntrospection/StaticMethodInfo>
|
||||
#include <osgIntrospection/Attributes>
|
||||
|
||||
#include <osg/CopyOp>
|
||||
#include <osg/Hint>
|
||||
#include <osg/Object>
|
||||
#include <osg/State>
|
||||
#include <osg/StateAttribute>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
#ifdef IN
|
||||
#undef IN
|
||||
#endif
|
||||
#ifdef OUT
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::Hint)
|
||||
I_DeclaringFile("osg/Hint");
|
||||
I_BaseType(osg::StateAttribute);
|
||||
I_Constructor0(____Hint,
|
||||
"",
|
||||
"");
|
||||
I_Constructor2(IN, GLenum, target, IN, GLenum, mode,
|
||||
____Hint__GLenum__GLenum,
|
||||
"",
|
||||
"");
|
||||
I_ConstructorWithDefaults2(IN, const osg::Hint &, hint, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
|
||||
____Hint__C5_Hint_R1__C5_CopyOp_R1,
|
||||
"Copy constructor using CopyOp to manage deep vs shallow copy. ",
|
||||
"");
|
||||
I_Method0(osg::Object *, cloneType,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__cloneType,
|
||||
"Clone the type of an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__osg_Object_P1__clone__C5_osg_CopyOp_R1,
|
||||
"Clone an attribute, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj,
|
||||
Properties::VIRTUAL,
|
||||
__bool__isSameKindAs__C5_osg_Object_P1,
|
||||
"Return true if this and obj are of the same kind of object. ",
|
||||
"");
|
||||
I_Method0(const char *, libraryName,
|
||||
Properties::VIRTUAL,
|
||||
__C5_char_P1__libraryName,
|
||||
"Return the name of the attribute's library. ",
|
||||
"");
|
||||
I_Method0(const char *, className,
|
||||
Properties::VIRTUAL,
|
||||
__C5_char_P1__className,
|
||||
"Return the name of the attribute's class type. ",
|
||||
"");
|
||||
I_Method0(osg::StateAttribute::Type, getType,
|
||||
Properties::VIRTUAL,
|
||||
__Type__getType,
|
||||
"Return the Type identifier of the attribute's class type. ",
|
||||
"");
|
||||
I_Method1(int, compare, IN, const osg::StateAttribute &, sa,
|
||||
Properties::VIRTUAL,
|
||||
__int__compare__C5_StateAttribute_R1,
|
||||
"Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method0(unsigned int, getMember,
|
||||
Properties::VIRTUAL,
|
||||
__unsigned_int__getMember,
|
||||
"Return the member identifier within the attribute's class type. ",
|
||||
"Used for light number/clip plane number etc. ");
|
||||
I_Method1(void, setTarget, IN, GLenum, target,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setTarget__GLenum,
|
||||
"",
|
||||
"");
|
||||
I_Method0(GLenum, getTarget,
|
||||
Properties::NON_VIRTUAL,
|
||||
__GLenum__getTarget,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setMode, IN, GLenum, mode,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setMode__GLenum,
|
||||
"",
|
||||
"");
|
||||
I_Method0(GLenum, getMode,
|
||||
Properties::NON_VIRTUAL,
|
||||
__GLenum__getMode,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, apply, IN, osg::State &, x,
|
||||
Properties::VIRTUAL,
|
||||
__void__apply__State_R1,
|
||||
"apply the OpenGL state attributes. ",
|
||||
"The render info for the current OpenGL context is passed in to allow the StateAttribute to obtain details on the the current context and state. ");
|
||||
I_SimpleProperty(unsigned int, Member,
|
||||
__unsigned_int__getMember,
|
||||
0);
|
||||
I_SimpleProperty(GLenum, Mode,
|
||||
__GLenum__getMode,
|
||||
__void__setMode__GLenum);
|
||||
I_SimpleProperty(GLenum, Target,
|
||||
__GLenum__getTarget,
|
||||
__void__setTarget__GLenum);
|
||||
I_SimpleProperty(osg::StateAttribute::Type, Type,
|
||||
__Type__getType,
|
||||
0);
|
||||
END_REFLECTOR
|
||||
|
||||
|
||||
@@ -27,8 +27,6 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< unsigned int >, osg::Image::MipmapDataType)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::Image::AllocationMode)
|
||||
I_DeclaringFile("osg/Image");
|
||||
I_EnumLabel(osg::Image::NO_DELETE);
|
||||
@@ -42,6 +40,8 @@ BEGIN_ENUM_REFLECTOR(osg::Image::Origin)
|
||||
I_EnumLabel(osg::Image::TOP_LEFT);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< unsigned int >, osg::Image::MipmapDataType)
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::Image)
|
||||
I_DeclaringFile("osg/Image");
|
||||
I_BaseType(osg::Object);
|
||||
@@ -57,7 +57,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Image)
|
||||
__Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__Object_P1__clone__C5_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
|
||||
@@ -1,237 +1,237 @@
|
||||
// ***************************************************************************
|
||||
//
|
||||
// Generated automatically by genwrapper.
|
||||
// Please DO NOT EDIT this file!
|
||||
//
|
||||
// ***************************************************************************
|
||||
|
||||
#include <osgIntrospection/ReflectionMacros>
|
||||
#include <osgIntrospection/TypedMethodInfo>
|
||||
#include <osgIntrospection/StaticMethodInfo>
|
||||
#include <osgIntrospection/Attributes>
|
||||
|
||||
#include <osg/CopyOp>
|
||||
#include <osg/Image>
|
||||
#include <osg/ImageSequence>
|
||||
#include <osg/NodeVisitor>
|
||||
#include <osg/Object>
|
||||
#include <osg/StateAttribute>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
#ifdef IN
|
||||
#undef IN
|
||||
#endif
|
||||
#ifdef OUT
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
TYPE_NAME_ALIAS(std::list< osg::ref_ptr< osg::Image > >, osg::ImageSequence::Images)
|
||||
|
||||
TYPE_NAME_ALIAS(std::list< std::string >, osg::ImageSequence::FileNames)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::ImageSequence::Mode)
|
||||
I_DeclaringFile("osg/ImageSequence");
|
||||
I_EnumLabel(osg::ImageSequence::PRE_LOAD_ALL_IMAGES);
|
||||
I_EnumLabel(osg::ImageSequence::PAGE_AND_RETAIN_IMAGES);
|
||||
I_EnumLabel(osg::ImageSequence::PAGE_AND_DISCARD_USED_IMAGES);
|
||||
END_REFLECTOR
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::ImageSequence)
|
||||
I_DeclaringFile("osg/ImageSequence");
|
||||
I_BaseType(osg::ImageStream);
|
||||
I_Constructor0(____ImageSequence,
|
||||
"",
|
||||
"");
|
||||
I_ConstructorWithDefaults2(IN, const osg::ImageSequence &, ImageSequence, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
|
||||
____ImageSequence__C5_ImageSequence_R1__C5_CopyOp_R1,
|
||||
"Copy constructor using CopyOp to manage deep vs shallow copy. ",
|
||||
"");
|
||||
I_Method0(osg::Object *, cloneType,
|
||||
Properties::VIRTUAL,
|
||||
__Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
|
||||
Properties::VIRTUAL,
|
||||
__Object_P1__clone__C5_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj,
|
||||
Properties::VIRTUAL,
|
||||
__bool__isSameKindAs__C5_Object_P1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const char *, libraryName,
|
||||
Properties::VIRTUAL,
|
||||
__C5_char_P1__libraryName,
|
||||
"return the name of the object's library. ",
|
||||
"Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. ");
|
||||
I_Method0(const char *, className,
|
||||
Properties::VIRTUAL,
|
||||
__C5_char_P1__className,
|
||||
"return the name of the object's class type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(int, compare, IN, const osg::Image &, rhs,
|
||||
Properties::VIRTUAL,
|
||||
__int__compare__C5_Image_R1,
|
||||
"Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method1(void, setReferenceTime, IN, double, t,
|
||||
Properties::VIRTUAL,
|
||||
__void__setReferenceTime__double,
|
||||
"",
|
||||
"");
|
||||
I_Method0(double, getReferenceTime,
|
||||
Properties::VIRTUAL,
|
||||
__double__getReferenceTime,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setTimeMultiplier, IN, double, tm,
|
||||
Properties::VIRTUAL,
|
||||
__void__setTimeMultiplier__double,
|
||||
"",
|
||||
"");
|
||||
I_Method0(double, getTimeMultiplier,
|
||||
Properties::VIRTUAL,
|
||||
__double__getTimeMultiplier,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setMode, IN, osg::ImageSequence::Mode, mode,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setMode__Mode,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::ImageSequence::Mode, getMode,
|
||||
Properties::NON_VIRTUAL,
|
||||
__Mode__getMode,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setDuration, IN, double, duration,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setDuration__double,
|
||||
"",
|
||||
"");
|
||||
I_Method0(double, getDuration,
|
||||
Properties::NON_VIRTUAL,
|
||||
__double__getDuration,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, addImageFile, IN, const std::string &, fileName,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__addImageFile__C5_std_string_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::ImageSequence::FileNames &, getFileNames,
|
||||
Properties::NON_VIRTUAL,
|
||||
__FileNames_R1__getFileNames,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::ImageSequence::FileNames &, getFileNames,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_FileNames_R1__getFileNames,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, addImage, IN, osg::Image *, image,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__addImage__osg_Image_P1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::ImageSequence::Images &, getImages,
|
||||
Properties::NON_VIRTUAL,
|
||||
__Images_R1__getImages,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::ImageSequence::Images &, getImages,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_Images_R1__getImages,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, update, IN, osg::NodeVisitor *, nv,
|
||||
Properties::VIRTUAL,
|
||||
__void__update__NodeVisitor_P1,
|
||||
"",
|
||||
"");
|
||||
I_ProtectedMethod1(void, setImageToChild, IN, const osg::Image *, image,
|
||||
Properties::NON_VIRTUAL,
|
||||
Properties::NON_CONST,
|
||||
__void__setImageToChild__C5_osg_Image_P1,
|
||||
"",
|
||||
"");
|
||||
I_ProtectedMethod0(void, computeTimePerImage,
|
||||
Properties::NON_VIRTUAL,
|
||||
Properties::NON_CONST,
|
||||
__void__computeTimePerImage,
|
||||
"",
|
||||
"");
|
||||
I_SimpleProperty(double, Duration,
|
||||
__double__getDuration,
|
||||
__void__setDuration__double);
|
||||
I_SimpleProperty(osg::ImageSequence::FileNames &, FileNames,
|
||||
__FileNames_R1__getFileNames,
|
||||
0);
|
||||
I_SimpleProperty(osg::ImageSequence::Images &, Images,
|
||||
__Images_R1__getImages,
|
||||
0);
|
||||
I_SimpleProperty(osg::ImageSequence::Mode, Mode,
|
||||
__Mode__getMode,
|
||||
__void__setMode__Mode);
|
||||
I_SimpleProperty(double, ReferenceTime,
|
||||
__double__getReferenceTime,
|
||||
__void__setReferenceTime__double);
|
||||
I_SimpleProperty(double, TimeMultiplier,
|
||||
__double__getTimeMultiplier,
|
||||
__void__setTimeMultiplier__double);
|
||||
END_REFLECTOR
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::ImageSequence::UpdateCallback)
|
||||
I_DeclaringFile("osg/ImageSequence");
|
||||
I_BaseType(osg::StateAttribute::Callback);
|
||||
I_Constructor0(____UpdateCallback,
|
||||
"",
|
||||
"");
|
||||
END_REFLECTOR
|
||||
|
||||
BEGIN_VALUE_REFLECTOR(osg::ref_ptr< osg::Image >)
|
||||
I_DeclaringFile("osg/ref_ptr");
|
||||
I_Constructor0(____ref_ptr,
|
||||
"",
|
||||
"");
|
||||
I_Constructor1(IN, osg::Image *, ptr,
|
||||
Properties::NON_EXPLICIT,
|
||||
____ref_ptr__T_P1,
|
||||
"",
|
||||
"");
|
||||
I_Constructor1(IN, const osg::ref_ptr< osg::Image > &, rp,
|
||||
Properties::NON_EXPLICIT,
|
||||
____ref_ptr__C5_ref_ptr_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::Image *, get,
|
||||
Properties::NON_VIRTUAL,
|
||||
__T_P1__get,
|
||||
"",
|
||||
"");
|
||||
I_Method0(bool, valid,
|
||||
Properties::NON_VIRTUAL,
|
||||
__bool__valid,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::Image *, release,
|
||||
Properties::NON_VIRTUAL,
|
||||
__T_P1__release,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, swap, IN, osg::ref_ptr< osg::Image > &, rp,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__swap__ref_ptr_R1,
|
||||
"",
|
||||
"");
|
||||
I_SimpleProperty(osg::Image *, ,
|
||||
__T_P1__get,
|
||||
0);
|
||||
END_REFLECTOR
|
||||
|
||||
STD_LIST_REFLECTOR(std::list< osg::ref_ptr< osg::Image > >)
|
||||
|
||||
STD_LIST_REFLECTOR(std::list< std::string >)
|
||||
|
||||
// ***************************************************************************
|
||||
//
|
||||
// Generated automatically by genwrapper.
|
||||
// Please DO NOT EDIT this file!
|
||||
//
|
||||
// ***************************************************************************
|
||||
|
||||
#include <osgIntrospection/ReflectionMacros>
|
||||
#include <osgIntrospection/TypedMethodInfo>
|
||||
#include <osgIntrospection/StaticMethodInfo>
|
||||
#include <osgIntrospection/Attributes>
|
||||
|
||||
#include <osg/CopyOp>
|
||||
#include <osg/Image>
|
||||
#include <osg/ImageSequence>
|
||||
#include <osg/NodeVisitor>
|
||||
#include <osg/Object>
|
||||
#include <osg/StateAttribute>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
#ifdef IN
|
||||
#undef IN
|
||||
#endif
|
||||
#ifdef OUT
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::ImageSequence::Mode)
|
||||
I_DeclaringFile("osg/ImageSequence");
|
||||
I_EnumLabel(osg::ImageSequence::PRE_LOAD_ALL_IMAGES);
|
||||
I_EnumLabel(osg::ImageSequence::PAGE_AND_RETAIN_IMAGES);
|
||||
I_EnumLabel(osg::ImageSequence::PAGE_AND_DISCARD_USED_IMAGES);
|
||||
END_REFLECTOR
|
||||
|
||||
TYPE_NAME_ALIAS(std::list< osg::ref_ptr< osg::Image > >, osg::ImageSequence::Images)
|
||||
|
||||
TYPE_NAME_ALIAS(std::list< std::string >, osg::ImageSequence::FileNames)
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::ImageSequence)
|
||||
I_DeclaringFile("osg/ImageSequence");
|
||||
I_BaseType(osg::ImageStream);
|
||||
I_Constructor0(____ImageSequence,
|
||||
"",
|
||||
"");
|
||||
I_ConstructorWithDefaults2(IN, const osg::ImageSequence &, ImageSequence, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
|
||||
____ImageSequence__C5_ImageSequence_R1__C5_CopyOp_R1,
|
||||
"Copy constructor using CopyOp to manage deep vs shallow copy. ",
|
||||
"");
|
||||
I_Method0(osg::Object *, cloneType,
|
||||
Properties::VIRTUAL,
|
||||
__Object_P1__cloneType,
|
||||
"Clone the type of an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
|
||||
Properties::VIRTUAL,
|
||||
__Object_P1__clone__C5_CopyOp_R1,
|
||||
"Clone an object, with Object* return type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj,
|
||||
Properties::VIRTUAL,
|
||||
__bool__isSameKindAs__C5_Object_P1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const char *, libraryName,
|
||||
Properties::VIRTUAL,
|
||||
__C5_char_P1__libraryName,
|
||||
"return the name of the object's library. ",
|
||||
"Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. ");
|
||||
I_Method0(const char *, className,
|
||||
Properties::VIRTUAL,
|
||||
__C5_char_P1__className,
|
||||
"return the name of the object's class type. ",
|
||||
"Must be defined by derived classes. ");
|
||||
I_Method1(int, compare, IN, const osg::Image &, rhs,
|
||||
Properties::VIRTUAL,
|
||||
__int__compare__C5_Image_R1,
|
||||
"Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
|
||||
"");
|
||||
I_Method1(void, setReferenceTime, IN, double, t,
|
||||
Properties::VIRTUAL,
|
||||
__void__setReferenceTime__double,
|
||||
"",
|
||||
"");
|
||||
I_Method0(double, getReferenceTime,
|
||||
Properties::VIRTUAL,
|
||||
__double__getReferenceTime,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setTimeMultiplier, IN, double, tm,
|
||||
Properties::VIRTUAL,
|
||||
__void__setTimeMultiplier__double,
|
||||
"",
|
||||
"");
|
||||
I_Method0(double, getTimeMultiplier,
|
||||
Properties::VIRTUAL,
|
||||
__double__getTimeMultiplier,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setMode, IN, osg::ImageSequence::Mode, mode,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setMode__Mode,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::ImageSequence::Mode, getMode,
|
||||
Properties::NON_VIRTUAL,
|
||||
__Mode__getMode,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setDuration, IN, double, duration,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setDuration__double,
|
||||
"",
|
||||
"");
|
||||
I_Method0(double, getDuration,
|
||||
Properties::NON_VIRTUAL,
|
||||
__double__getDuration,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, addImageFile, IN, const std::string &, fileName,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__addImageFile__C5_std_string_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::ImageSequence::FileNames &, getFileNames,
|
||||
Properties::NON_VIRTUAL,
|
||||
__FileNames_R1__getFileNames,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::ImageSequence::FileNames &, getFileNames,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_FileNames_R1__getFileNames,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, addImage, IN, osg::Image *, image,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__addImage__osg_Image_P1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::ImageSequence::Images &, getImages,
|
||||
Properties::NON_VIRTUAL,
|
||||
__Images_R1__getImages,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::ImageSequence::Images &, getImages,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_Images_R1__getImages,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, update, IN, osg::NodeVisitor *, nv,
|
||||
Properties::VIRTUAL,
|
||||
__void__update__NodeVisitor_P1,
|
||||
"",
|
||||
"");
|
||||
I_ProtectedMethod1(void, setImageToChild, IN, const osg::Image *, image,
|
||||
Properties::NON_VIRTUAL,
|
||||
Properties::NON_CONST,
|
||||
__void__setImageToChild__C5_osg_Image_P1,
|
||||
"",
|
||||
"");
|
||||
I_ProtectedMethod0(void, computeTimePerImage,
|
||||
Properties::NON_VIRTUAL,
|
||||
Properties::NON_CONST,
|
||||
__void__computeTimePerImage,
|
||||
"",
|
||||
"");
|
||||
I_SimpleProperty(double, Duration,
|
||||
__double__getDuration,
|
||||
__void__setDuration__double);
|
||||
I_SimpleProperty(osg::ImageSequence::FileNames &, FileNames,
|
||||
__FileNames_R1__getFileNames,
|
||||
0);
|
||||
I_SimpleProperty(osg::ImageSequence::Images &, Images,
|
||||
__Images_R1__getImages,
|
||||
0);
|
||||
I_SimpleProperty(osg::ImageSequence::Mode, Mode,
|
||||
__Mode__getMode,
|
||||
__void__setMode__Mode);
|
||||
I_SimpleProperty(double, ReferenceTime,
|
||||
__double__getReferenceTime,
|
||||
__void__setReferenceTime__double);
|
||||
I_SimpleProperty(double, TimeMultiplier,
|
||||
__double__getTimeMultiplier,
|
||||
__void__setTimeMultiplier__double);
|
||||
END_REFLECTOR
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::ImageSequence::UpdateCallback)
|
||||
I_DeclaringFile("osg/ImageSequence");
|
||||
I_BaseType(osg::StateAttribute::Callback);
|
||||
I_Constructor0(____UpdateCallback,
|
||||
"",
|
||||
"");
|
||||
END_REFLECTOR
|
||||
|
||||
BEGIN_VALUE_REFLECTOR(osg::ref_ptr< osg::Image >)
|
||||
I_DeclaringFile("osg/ref_ptr");
|
||||
I_Constructor0(____ref_ptr,
|
||||
"",
|
||||
"");
|
||||
I_Constructor1(IN, osg::Image *, ptr,
|
||||
Properties::NON_EXPLICIT,
|
||||
____ref_ptr__T_P1,
|
||||
"",
|
||||
"");
|
||||
I_Constructor1(IN, const osg::ref_ptr< osg::Image > &, rp,
|
||||
Properties::NON_EXPLICIT,
|
||||
____ref_ptr__C5_ref_ptr_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::Image *, get,
|
||||
Properties::NON_VIRTUAL,
|
||||
__T_P1__get,
|
||||
"",
|
||||
"");
|
||||
I_Method0(bool, valid,
|
||||
Properties::NON_VIRTUAL,
|
||||
__bool__valid,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::Image *, release,
|
||||
Properties::NON_VIRTUAL,
|
||||
__T_P1__release,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, swap, IN, osg::ref_ptr< osg::Image > &, rp,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__swap__ref_ptr_R1,
|
||||
"",
|
||||
"");
|
||||
I_SimpleProperty(osg::Image *, ,
|
||||
__T_P1__get,
|
||||
0);
|
||||
END_REFLECTOR
|
||||
|
||||
STD_LIST_REFLECTOR(std::list< osg::ref_ptr< osg::Image > >)
|
||||
|
||||
STD_LIST_REFLECTOR(std::list< std::string >)
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user