Changeset 8829

Show
Ignore:
Timestamp:
09/04/08 00:55:49 (10 months ago)
Author:
jeremymoles
Message:

Merging osgWidget-dev branch with OSG trunk.

Location:
OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev
Files:
1 removed
140 modified
26 copied

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/AUTHORS.txt

    r8697 r8829  
    1 OpenSceneGraph Library 2.6.0 
     1OpenSceneGraph Library 2.7.1 
    22 
    3 323 Contributors: 
     3330 Contributors: 
    44 
    55Firstname Surname 
     
    4949Chris Hanson 
    5050Adrian Egli 
     51Sherman Wilcox 
    5152Per Fahlberg 
     53Jason Beverage 
    5254J.P. Delport 
    5355David Spilling 
    54 Sherman Wilcox 
     56Philip Lowman 
    5557Melchior Franz 
     58Joakim Simonsson 
    5659Joran Jessurun 
    57 Joakim Simonsson 
    58 Jason Beverage 
    59 Philip Lowman 
    6060Jason Daly 
    6161Frederic Marmond 
     
    6464Yefei He 
    6565Terry Welsh 
     66Stephane Lamoliatte 
    6667Sondra Iverson 
    6768Serge Lages 
     
    7374Ben Discoe 
    7475Andreas Ekstrand 
    75 Stephane Lamoliatte 
    7676Sasa Bistrovic 
    7777Martin Naylor 
     
    110110Roland Smeenk 
    111111Paul de Repentigny 
     112Liang Aibin 
    112113Leandro Motta Barros 
    113114John Kelso 
     
    136137Garrett Potts 
    137138Gabor Dorka 
     139Doug McCorkle 
    138140Donn Mielcarek 
    139141Donald Cipperly 
     
    175177Igor Kravtchenko 
    176178Gustavo Wagner 
     179Guillaume Chouvenc 
    177180Gerrick Bivins 
    178181George Tarantilis 
    179182Fabio Mierlo 
    180183Edgar Ellis 
    181 Doug McCorkle 
    182184David Ergo 
    183185Daniel Trstenjak 
     
    212214Shuxing Xiao 
    213215Shane Arnott 
     216Sergey Leontyev 
    214217Sebastien Kuntz 
    215218Ruth Lang 
     
    224227Philipp Siemoleit 
    225228Philipp Mächler 
     229Paul Palumbo 
    226230Paul Obermeier 
    227231Paul Fredrikson 
     
    241245Michael Morrison 
    242246Michael Logan 
     247Michael Guerrero 
    243248Max Rhiener 
    244249Mauricio Hofmam 
     
    253258Marin Lavery 
    254259Marco Lehmann 
     260Maceij Krol 
    255261Louis Hamilton 
    256262Lilin Xiong 
     
    260266Karsten Weiss 
    261267Karl Heijdenberg 
     268Jutta Sauer 
    262269Josh Portway 
    263270John Vidar Larring 
     
    267274John Davis 
    268275Joan Abadie 
     276Jeoen den Dekker 
    269277Jean-Christophe Lombardo 
    270278Jay Zuckerman 
     
    282290Galen Faidley 
    283291Frederic Bouvier 
    284 Frashid Lashkari 
    285292Frank Warmerdam 
    286293Frank Lindeman 
     
    288295Ferdinand Cornelissen 
    289296Fabien Dachicourt 
     297Erik den Dekker 
    290298Emmanuel Roche 
    291299Edmond Gheury 
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/CMakeLists.txt

    r8696 r8829  
    2525 
    2626SET(OPENSCENEGRAPH_MAJOR_VERSION 2) 
    27 SET(OPENSCENEGRAPH_MINOR_VERSION 6) 
    28 SET(OPENSCENEGRAPH_PATCH_VERSION 0) 
    29 SET(OPENSCENEGRAPH_SOVERSION 43) 
     27SET(OPENSCENEGRAPH_MINOR_VERSION 7) 
     28SET(OPENSCENEGRAPH_PATCH_VERSION 2) 
     29SET(OPENSCENEGRAPH_SOVERSION 46) 
     30 
     31# set to 0 when not a release candidate, non zero means that any generated  
     32# svn tags will be treated as release candidates of given number 
     33SET(OPENSCENEGRAPH_RELEASE_CANDIDATE 0) 
    3034 
    3135SET(OPENSCENEGRAPH_VERSION ${OPENSCENEGRAPH_MAJOR_VERSION}.${OPENSCENEGRAPH_MINOR_VERSION}.${OPENSCENEGRAPH_PATCH_VERSION}) 
     
    8185    SET(CMAKE_THREAD_LIBS_INIT "" CACHE INTERNAL "") 
    8286ENDIF(CMAKE_SYSTEM MATCHES IRIX) 
     87 
     88OPTION(OSG_MAINTAINER "Enable OpenSceneGraph maintainer build methods, such as making svn branches, tags, updating ChangeLog." OFF) 
     89IF (OSG_MAINTAINER) 
     90 
     91    SET(OPENSCENEGRAPH_SVN "trunk") 
     92    #SET(OPENSCENEGRAPH_SVN "branches") 
     93    SET(OPENSCENEGRAPH_BRANCH OpenSceneGraph-${OPENSCENEGRAPH_MAJOR_VERSION}.${OPENSCENEGRAPH_MINOR_VERSION}) 
     94 
     95    # 
     96    # Provide target for tagging a release 
     97    # 
     98    SET(SVNCOMMAND svn) 
     99    SET(SVNTRUNKDIR     http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk) 
     100    SET(SVNTAGDIR       http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags) 
     101    SET(SVNBRANCHDIR    http://www.openscenegraph.org/svn/osg/OpenSceneGraph/branch) 
     102 
     103    IF   (OPENSCENEGRAPH_SVN STREQUAL "trunk") 
     104        SET(SVNSOURCEDIR ${SVNTRUNKDIR}) 
     105    ELSE (OPENSCENEGRAPH_SVN STREQUAL "trunk") 
     106        SET(SVNSOURCEDIR ${SVNBRANCH_DIR}/${OPENSCENEGRAPH_BRANCH}) 
     107    ENDIF(OPENSCENEGRAPH_SVN STREQUAL "trunk") 
     108 
     109 
     110    IF   (OPENSCENEGRAPH_RELEASE_CANDIDATE EQUAL 0) 
     111        SET(RELEASE_NAME OpenSceneGraph-${OPENSCENEGRAPH_VERSION}) 
     112    ELSE (OPENSCENEGRAPH_RELEASE_CANDIDATE EQUAL 0) 
     113        SET(RELEASE_NAME OpenSceneGraph-${OPENSCENEGRAPH_VERSION}-rc${OPENSCENEGRAPH_RELEASE_CANDIDATE}) 
     114    ENDIF(OPENSCENEGRAPH_RELEASE_CANDIDATE EQUAL 0) 
     115 
     116 
     117    ADD_CUSTOM_TARGET(tag-test 
     118        COMMAND echo ${SVNCOMMAND} copy ${SVNSOURCEDIR} ${SVNTAGDIR}/${RELEASE_NAME} -m "Release ${RELEASE_NAME}" 
     119    ) 
     120 
     121    ADD_CUSTOM_TARGET(tag-run 
     122        COMMAND ${SVNCOMMAND} copy ${SVNSOURCEDIR} ${SVNTAGDIR}/${RELEASE_NAME} -m "Release ${RELEASE_NAME}" 
     123    ) 
     124 
     125    ADD_CUSTOM_TARGET(branch-test 
     126        COMMAND echo ${SVNCOMMAND} copy ${SVNSOURCEDIR} ${SVNBRANCHDIR}/${OPENSCENEGRAPH_BRANCH} -m "Branch ${OPENSCENEGRAPH_BRANCH}" 
     127    ) 
     128 
     129    ADD_CUSTOM_TARGET(branch-run 
     130        COMMAND ${SVNCOMMAND} copy ${SVNSOURCEDIR} ${SVNBRANCHDIR}/${OPENSCENEGRAPH_BRANCH} -m "Branch ${OPENSCENEGRAPH_BRANCH}" 
     131    ) 
     132 
     133    # 
     134    # Provide target for generating ChangeLog 
     135    # 
     136    SET(SVN2LOG ~/bin/svn2log.py) 
     137    SET(GENERATELOGS svn log -v --xml | python ${SVN2LOG} -L -H) 
     138 
     139    ADD_CUSTOM_TARGET(ChangeLog 
     140        COMMAND ${GENERATELOGS} 
     141    ) 
     142     
     143ENDIF(OSG_MAINTAINER) 
     144 
    83145 
    84146# Find OpenGL 
     
    226288FIND_PACKAGE(GDAL) 
    227289FIND_PACKAGE(CURL) 
     290FIND_PACKAGE(ITK) 
    228291 
    229292SET(wxWidgets_USE_LIBS base core gl net) 
     
    269332 
    270333ENDIF(PKG_CONFIG_FOUND) 
     334 
     335 
     336# 
     337# Enable workaround for OpenGL driver crash with occlusion query 
     338# 
     339OPTION(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) 
     340IF(OSG_FORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL) 
     341    ADD_DEFINITIONS(-DFORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL) 
     342ENDIF(OSG_FORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL) 
     343 
     344 
    271345 
    272346# 
     
    303377ENDIF(NOT DEFAULT_GLU_TESS_CALLBACK_TRIPLEDOT) 
    304378 
    305 OPTION(OSG_GLU_TESS_CALLBACK_TRIPLEDOT "Set to ON to build build with variable parameter (...) version of GLU tesselator callback" ${DEFAULT_GLU_TESS_CALLBACK_TRIPLEDOT}) 
     379OPTION(OSG_GLU_TESS_CALLBACK_TRIPLEDOT "Set to ON to build with variable parameter (...) version of GLU tesselator callback" ${DEFAULT_GLU_TESS_CALLBACK_TRIPLEDOT}) 
    306380IF(OSG_GLU_TESS_CALLBACK_TRIPLEDOT) 
    307381    ADD_DEFINITIONS(-DGLU_TESS_CALLBACK_TRIPLEDOT) 
     
    530604        # It does look like CMake handles the CMAKE_OSX_SYSROOT automatically. 
    531605        IF(EXISTS /Developer/SDKs/MacOSX10.5.sdk) 
    532             SET(CMAKE_OSX_ARCHITECTURES "ppc;i386;ppc64;x86_64" CACHE STRING "Build architectures for OSX" FORCE) 
     606            # 64-bit compiles are not supported with Carbon. We should enable  
     607            # 64-bit compilation by default once osgviewer has been  
     608            # rewritten with Cocoa. 
     609            #SET(CMAKE_OSX_ARCHITECTURES "ppc;i386;ppc64;x86_64" CACHE STRING "Build architectures for OSX" FORCE) 
     610            SET(CMAKE_OSX_ARCHITECTURES "ppc;i386" CACHE STRING "Build architectures for OSX" FORCE) 
    533611            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) 
    534612        ELSE(EXISTS /Developer/SDKs/MacOSX10.5.sdk) 
     
    547625 
    548626ENDIF(APPLE) 
     627 
     628 
     629# 
     630# Provide target for generating wrappers 
     631# 
     632SET(GENWRAPPER genwrapper) 
     633 
     634ADD_CUSTOM_TARGET(wrappers 
     635    COMMAND ${GENWRAPPER} -c ${OpenSceneGraph_SOURCE_DIR}/src/osgWrappers/genwrapper.conf -t ${OpenSceneGraph_SOURCE_DIR}/src/osgWrappers/Doxyfile.template -d ${OpenSceneGraph_SOURCE_DIR} | doxygen - 
     636    COMMAND ${GENWRAPPER} -c ${OpenSceneGraph_SOURCE_DIR}/src/osgWrappers/genwrapper.conf -l ${OpenSceneGraph_SOURCE_DIR} 
     637) 
     638 
    549639 
    550640OPTION(BUILD_REF_DOCS "Build OpenSceneGraph reference documentation using doxygen (use: make DoxygenDoc)" OFF) 
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/ChangeLog

    r8697 r8829  
     12008-09-01 15:29 +0000 [r8821-8822]  robert: 
     2 
     3        * Replaced uint with unsigned int 
     4 
     5        * Introduced a OSG_MAINTAINER section of cmake build to help 
     6          support making tags and branches 
     7 
     82008-09-01 14:05 +0000 [r8818-8819]  robert: 
     9 
     10        * Updated wrappers 
     11 
     12        * Changed curr and min to current and minimum respectively, to 
     13          avoid compile problems under Windows 
     14 
     152008-09-01 12:40 +0000 [r8816-8817]  robert: 
     16 
     17        * Implemented support for ShapeAttributeList, used John Vidar 
     18          Larring's initial submission as a base, but implementing the user 
     19          data functionality in a different way to facilitate more flexible 
     20          user data support 
     21 
     22        * From John Vidar Larring, initial cut of .ive support for 
     23          ShapeAttributeList user data 
     24 
     252008-09-01 11:09 +0000 [r8815]  robert: 
     26 
     27        * Updated version for 2.7.2 dev release 
     28 
     292008-09-01 10:49 +0000 [r8812-8814]  robert: 
     30 
     31        * Updated wrappers 
     32 
     33        * Added call to free in setValue methods to prevent potential 
     34          memory leak 
     35 
     36        * From Mathias Froehilch,"Current include/osgSim/ShapeAttribute 
     37          also misses string.h include because of strdup. Attached is the 
     38          changed file." 
     39 
     402008-09-01 10:22 +0000 [r8811]  robert: 
     41 
     42        * From He Sicong, "I found a bug here in VERTICAL_SPLIT stereo 
     43          type: The vertical separation not actually displayed as it is 
     44          set. So some display the up and down stereo images style will not 
     45          be correct. Someone may forget to change the "Horizontal" to 
     46          "Vertical" after copying and pasting the code from above 
     47          HORIZONTAL_SPLIT code segment. I've attached the file. By 
     48          replacing the incorrect "Horizontal" to "Vertical", the bug is 
     49          gone. " 
     50 
     512008-09-01 10:19 +0000 [r8810]  robert: 
     52 
     53        * Removed std:: from in front of strcmp and added a string.h 
     54 
     552008-09-01 10:06 +0000 [r8809]  robert: 
     56 
     57        * From Wojciech Lewandowski, "Most recent changes to 
     58          CameraPathEventHandler change path writing method. Now control 
     59          points are written on the fly. But default stream precision is 
     60          not adjusted as it used to and remains set to 6 digits (at least 
     61          with VS 2008) so larger coordinates like positions on Earth 
     62          Ellipsoid loose lots of fidelity. This patch fixes this issue. " 
     63 
     642008-09-01 09:57 +0000 [r8808]  robert: 
     65 
     66        * Build fixes for Windows 
     67 
     682008-08-29 09:28 +0000 [r8806-8807]  robert: 
     69 
     70        * Added CompositeLayer::addLayer(setname,filename) convinience 
     71          function 
     72 
     73        * From Michael Guerrero, "I've attached the files with the new 
     74          addition of the "registered = true" flag set." 
     75 
     762008-08-28 16:15 +0000 [r8805]  robert: 
     77 
     78        * Introduce the concept of layer set name, using the 
     79          osg::Object::s/getName() to store the setname, and using a 
     80          compound string (set:setname:filename) in place of standard 
     81          filename when reading and writing files. 
     82 
     832008-08-28 09:43 +0000 [r8804]  robert: 
     84 
     85        * Converted AutoTransform to use doubles. 
     86 
     872008-08-27 10:13 +0000 [r8803]  robert: 
     88 
     89        * Introduced SwitchLayer which will form the basis of provided 
     90          support for varients 
     91 
     922008-08-26 17:40 +0000 [r8802]  robert: 
     93 
     94        * Improved the GLSL implementation. 
     95 
     962008-08-26 12:55 +0000 [r8800]  robert: 
     97 
     98        * Added ChangeLog target for updating the ChangeLog, and updated 
     99          the ChangeLog and AUTHORS files 
     100 
     1012008-08-26 12:05 +0000 [r8799]  robert: 
     102 
     103        * Added wrapper build target for generating the osgWrappers 
     104 
     1052008-08-26 09:39 +0000 [r8798]  robert: 
     106 
     107        * Added provisional block in computePositions() 
     108 
     1092008-08-26 08:41 +0000 [r8797]  robert: 
     110 
     111        * From Ulrich Hertlein, attached is a small fix for a mismatched 
     112          function signature 
     113 
     1142008-08-25 16:44 +0000 [r8795-8796]  robert: 
     115 
     116        * Updated version number for 2.7.1 release, and added 
     117          OSG_FORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL Cmake option 
     118          that enables the occlusion query workaround for an OpenGL driver 
     119          crash 
     120 
     121        * From Doug McCorkle, via Paul Martz who writes : "Summary: Some 
     122          platforms/configurations cause application crashes if the 
     123          occlusion query result is not ready for retrieval when the app 
     124          tries to retrieve it. This fix adds an application-level wait 
     125          loop to ensure the result is ready for retrieval. This code is 
     126          not compiled by default; add "-D 
     127          FORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL" to get this code. 
     128          Full, gory details, to the best of my recollection: The 
     129          conditions under which we encountered this issue are as follows: 
     130          64-bit processor, Mac/Linux OS, multiple NVIDIA GPUs, multiple 
     131          concurrent draw threads, VRJuggler/SceneView-based viewer, and a 
     132          scene graph containing OcclusionQueryNodes. Todd wrote a small 
     133          test program that produces an almost instant crash in this 
     134          environment. We verified the crash does not occur in a similar 
     135          environment with a 32-bit processor, but we have not yet tested 
     136          on Windows and have not yet tested with osgViewer. The OpenGL 
     137          spec states clearly that, if an occlusion query result is not yet 
     138          ready, an app can go ahead and attempt to retrieve it, and OpenGL 
     139          will simply block until the result is ready. Indeed, this is how 
     140          OcclusionQueryNode is written, and this has worked fine on 
     141          several platforms and configurations until Todd's test program. 
     142          By trial and error and dumb luck, we were able to workaround the 
     143          crash by inserting a wait loop that forces the app to only 
     144          retrieve the query after OpenGL says it is available. As this 
     145          should not be required (OpenGL should do this implicitly, and 
     146          more efficiently), the wait loop code is not compiled by default. 
     147          Developers requiring this work around must explicitly add "-D 
     148          FORCE_QUERY_RESULT_AVAILABLE_BEFORE_RETRIEVAL" to the compile 
     149          options to include the wait loop." 
     150 
     1512008-08-25 15:57 +0000 [r8794]  robert: 
     152 
     153        * From Liang Aibin, added support for : osgFX::Effect 
     154          osgFX::AnisotropicLighting osgFX::BumpMapping osgFX::Cartoon 
     155          osgFX::Scribe osgFX::SpecularHighlights. 
     156 
     1572008-08-25 15:37 +0000 [r8793]  robert: 
     158 
     159        * From Liang Aibin, removed redundent spaces 
     160 
     1612008-08-25 15:20 +0000 [r8792]  robert: 
     162 
     163        * From Michael Guerrero, Fixed crash that occurred when openning an 
     164          new movie file after all previous movie ImageStream had been 
     165          closed. Also add a missing close of the movie file. 
     166 
     1672008-08-25 15:03 +0000 [r8791]  robert: 
     168 
     169        * From Paul Martz, "This change fixes a problem with PAT nodes 
     170          during FLT export." Note, Paul Martz has merged this patch into 
     171          OpenSceneGraph-2.6. 
     172 
     1732008-08-25 14:59 +0000 [r8790]  robert: 
     174 
     175        * From Guillaume Chouvenc, "I have added the file 
     176          StateAttribute.cpp in src/osgPlugins/osg to support the reading 
     177          and writing of StateAttribute Callback in osg files. " 
     178 
     1792008-08-25 14:54 +0000 [r8789]  robert: 
     180 
     181        * From Guillaume Chouvenc, "I have modified Uniform.cpp and 
     182          StateSet.cpp in src/osgPlugins/osg to support the reading and 
     183          writing of Uniform Callback and StateSet Callback in osg files." 
     184 
     1852008-08-25 11:37 +0000 [r8788]  robert: 
     186 
     187        * Added testing of max texture size using a realize operation 
     188 
     1892008-08-25 10:38 +0000 [r8786-8787]  robert: 
     190 
     191        * Added support for event handler for non shader path, enable alpha 
     192          func 
     193 
     194        * Removed debug info 
     195 
     1962008-08-25 10:20 +0000 [r8785]  robert: 
     197 
     198        * Moved _stateset = new StateSet instances to setStateSet(new 
     199          StateSet) to make sure the wiring up of the StateSet parents is 
     200          done consistently 
     201 
     2022008-08-25 09:53 +0000 [r8784]  robert: 
     203 
     204        * Added command line arguments to Viewer constructor, and added 
     205          meaningful error message when no 3d image is provided 
     206 
     2072008-08-22 16:39 +0000 [r8780-8782]  robert: 
     208 
     209        * Introduced initial cut of a dicom loader, which uses ITK to do 
     210          the loading. 
     211 
     212        * Added warning message 
     213 
     214        * Added support for reading the image transform from UserData in 
     215          the form of a Matrix. 
     216 
     2172008-08-19 17:41 +0000 [r8779]  robert: 
     218 
     219        * Added checked against an empty _kdNodes list before commensing 
     220          with intersection 
     221 
     2222008-08-18 15:08 +0000 [r8776-8777]  robert: 
     223 
     224        * Added --mip command line option which enables Maximum Intensity 
     225          Projection filtering 
     226 
     227        * Added .ive support for BlendEquation 
     228 
     2292008-08-18 14:49 +0000 [r8775]  robert: 
     230 
     231        * Added BlendEquation .osg support 
     232 
     2332008-08-18 12:39 +0000 [r8773]  robert: 
     234 
     235        * Updated AUTHORS file for 2.7.0 release 
     236 
     2372008-08-18 11:55 +0000 [r8772]  robert: 
     238 
     239        * Updated ChangeLog for 2.7.0 release 
     240 
     2412008-08-18 11:48 +0000 [r8771]  robert: 
     242 
     243        * Updated wrappers 
     244 
     2452008-08-18 11:21 +0000 [r8770]  robert: 
     246 
     247        * From Sergey Leontyev, "1. In StyleManager when applying styles to 
     248          a Label element the code below runs in a infinite loop. The 
     249          reason for this is that nothing increments the Reader "r" in the 
     250          case when applying a style to label, so I advance the reader when 
     251          no match was found. ( To replicate the error apply style to any 
     252          label) replaced this: while(!r.eof()) 
     253          if(_styles[style]->applyStyle(t, r)) inc = true; with this: 
     254          while(!r.eof()) { if(_styles[style]->applyStyle(t, r)) inc = 
     255          true; else r.advanceOverCurrentFieldOrBlock(); } I tested it and 
     256          it works well for me, I did not find any problems with it. 2. 
     257          Added style support for Canvas element, event though there is no 
     258          styles to apply yet. It is usefull for someone who inherits from 
     259          Canvas class to develop another element. If applyStyle(Canvas) 
     260          does not exist there is no way to apply style to the element that 
     261          inherited from Canvas element. Added virtual bool 
     262          applyStyle(Canvas). and in added call to apply style if the 
     263          Object is of type Canvas: 
     264          StyleManager::_applyStyleToObject(osg::Object* obj, const 
     265          std::string& style) { ... else 
     266          if(!std::string("Canvas").compare(c)) return 
     267          _coerceAndApply<Canvas>(obj,style,c); " 
     268 
     2692008-08-18 11:17 +0000 [r8769]  robert: 
     270 
     271        * Ran fixtabs to enforce four space tabs 
     272 
     2732008-08-18 11:00 +0000 [r8768]  robert: 
     274 
     275        * From Erik van Dekker, "I made several modifications: * The cause 
     276          of my errors was that my OSG source directory path contains 
     277          spaces. To fix this issue I wrapped all paths with quotes, as 
     278          stated in doxygen documentation. * I also received some warning 
     279          messages about deprecated doxygen settings, which I fixed by 
     280          updating the doxygen file, i.e. running \u2018doxygen \u2013u 
     281          doxygen.cmake\u2018. By running this command deprecated doxygen 
     282          options are removed, some option comments have changed and quite 
     283          some options have been added (I kept their default settings 
     284          unless mentioned). * I was surprised to find that the doxygen 
     285          OUTPUT_DIRECTORY was set to 
     286          \u201c${OpenSceneGraph_SOURCE_DIR}/doc\u201d, which does not seem 
     287          appropriate for out of source builds; I changed this to 
     288          \u201c${OpenSceneGraph_BINARY_DIR}/doc\u201d. (On the other hand, 
     289          maybe a cmake selectable option should be given to the user?) * 
     290          Fixed two warnings I received about unexpected 
     291          end-of-list-markers in \u2018osg\AnimationPath and 
     292          \u2018osgUtil\CullVisitor due to excess trailing points in 
     293          comments. * Fixed a warning in osgWidget\StyleInterface due to an 
     294          #include directive (strangely) placed inside a namespace. * Fixed 
     295          a warning in osg\Camera due to the META_Object macro that 
     296          confused doxygen. Adding a semi-colon fixed this. * Removed 
     297          auto_Mainpage from the INCLUDE option, because I am positive that 
     298          this file does not belong there; It never generated useful 
     299          documentation anyway. * I added the OSG version number 
     300          environment variable to the PROJECT_NUMBER option so that the 
     301          version number is now shown on the main page of generated 
     302          documentation (e.g. index.html). * Changed option FULL_PATH_NAMES 
     303          to YES, but made sure STRIP_FROM_PATH stripped the absolute path 
     304          until the include dir. This fixed an issue that created mangled 
     305          names for identical filenames in different directories. E.g. 
     306          osg/Export and osgDB/Export are now correctly named. * Changed 
     307          option SHOW_DIRECTORIES to yes, which is a case of preference I 
     308          guess. " 
     309 
     3102008-08-18 10:47 +0000 [r8767]  robert: 
     311 
     312        * Removed todo entry 
     313 
     3142008-08-17 16:52 +0000 [r8766]  robert: 
     315 
     316        * From Maceij Krol, "I have implement frame based expiration of 
     317          PagedLOD children. New attribute DatabasePager::_expiryFrames 
     318          sets number of frames a PagedLOD child is kept in memory. The 
     319          attribute is set with DatabasePager::setExpiryFrames method or 
     320          OSG_EXPIRY_FRAMES environmental variable. New attribute 
     321          PagedLOD::PerRangeData::_ frameNumber contains frame number of 
     322          last cull traversal. Children of PagedLOD are expired when time 
     323          _AND_ number of frames since last cull traversal exceed 
     324          OSG_EXPIRY_DELAY _AND_ OSG_EXPIRY_FRAMES respectively. By default 
     325          OSG_EXPIRY_FRAMES = 1 which means that nodes from last 
     326          cull/rendering traversal will not be expired even if last cull 
     327          time exceeds OSG_EXPIRY_DELAY. Setting OSG_EXPIRY_FRAMES = 0 
     328          revokes previous behaviour of PagedLOD. Setting OSG_EXPIRY_FRAMES 
     329          > 0 fixes problems of children reloading in lazy rendering 
     330          applications. Required behaviour is achieved by manipulating 
     331          OSG_EXPIRY_DELAY and OSG_EXPIRY_FRAMES together. Two interface 
     332          changes are made: DatabasePager::updateSceneGraph(double 
     333          currentFrameTime) is replaced by 
     334          DatabasePager::updateSceneGraph(const osg::FrameStamp 
     335          &frameStamp). The previous method is in #if 0 clause in the 
     336          header file. Robert, decide if You want to include it. 
     337          PagedLOD::removeExpiredChildren(double expiryTime, NodeList 
     338          &removedChildren) is deprecated (warning is printed), when 
     339          subclassing use PagedLOD::removeExpiredChildren(double 
     340          expiryTime, int expiryFrame, NodeList &removedChildren) instead. 
     341          " 
     342 
     3432008-08-17 16:45 +0000 [r8765]  robert: 
     344 
     345        * From Jason Beverage, "I've got a few machines that OSG 
     346          incorrectly believes support FRAME_BUFFER_OBJECTS so I am 
     347          manually trying to set the renderTargetImplementation to 
     348          PIXEL_BUFFER or PIXEL_BUFFER_RTT. I noticed that this call wasn't 
     349          setting the camera's overlay data properly because the 
     350          setRenderTargetImplementation simply calls init() which only does 
     351          anything for OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY. Any 
     352          subsequent calls to getOverlayData will simply return the cached 
     353          OverlayData instead of setting it up. My fix updates the camera's 
     354          render target implementation for all OverlayData objects in the 
     355          OverlayDataMap." 
     356 
     3572008-08-15 17:35 +0000 [r8763-8764]  robert: 
     358 
     359        * From Paul Palumbo, "Fixes a typo in coverage antialiasing code... 
     360          Without this fix, get incorrect antialiasing results. " 
     361 
     362        * From Jutta Sauer, "We added a raise window method to 
     363          GraphicsWindow. And added two implementations for Win32 and X11. 
     364          " 
     365 
     3662008-08-15 17:26 +0000 [r8761-8762]  robert: 
     367 
     368        * Updated version numbers in prep for next dev release 
     369 
     370        * From Frashid Larshkari, "I modified the vertical/horizontal 
     371          interlace stereo modes so that they use the osg::State::applyMode 
     372          for enabling/disabling certain while rendering the stencil mask. 
     373          Previously some of these calls were overriding the scene graph 
     374          states because the global state was not aware of this change. " 
     375 
     3762008-08-15 17:18 +0000 [r8760]  robert: 
     377 
     378        * Added support for geometry shader attributes 
     379 
     3802008-08-15 16:43 +0000 [r8759]  robert: 
     381 
     382        * From Stephane Lamoliatte, "I added the osg::Program parameters 
     383          support for the osg plug'in. Now we could correctly configure 
     384          geometry shaders in osg files." Notes from Robert Osfield, 
     385          renamed the names of the parameters to be less GL centric and 
     386          more human readable. 
     387 
     3882008-08-15 16:21 +0000 [r8758]  robert: 
     389 
     390        * Changed osg::ImageSequence::set/getDuration to set/getLength() to 
     391          be in keeping with the osg::ImageStream's getLength(). 
     392 
     3932008-08-15 13:07 +0000 [r8756-8757]  robert: 
     394 
     395        * Fixed the name of _playToggle 
     396 
     397        * Updated wrappers 
     398 
     3992008-08-15 12:45 +0000 [r8755]  robert: 
     400 
     401        * Further work on osg::ImageSequence, improving pause 
     402          functionality, and introducing new seek(double time) method 
     403 
     4042008-08-14 16:29 +0000 [r8753-8754]  robert: 
     405 
     406        * Added initial looping and pause play support 
     407 
     408        * Added event handler to toggling looping and play/pause 
     409 
     4102008-08-14 14:22 +0000 [r8752]  robert: 
     411 
     412        * Implemented a reference eye point and associated methods in 
     413          support of intersecting billboards 
     414 
     4152008-08-05 20:05 +0000 [r8747-8748]  robert: 
     416 
     417        * From Eric Sokolowski, added OSX release notes to READEME 
     418 
     419        * Added osgWidget to doc building 
     420 
     4212008-08-05 19:17 +0000 [r8744]  robert: 
     422 
     423        * Improved the doxygen docs over the various namespaces 
     424 
     4252008-08-05 16:05 +0000 [r8742]  robert: 
     426 
     427        * From Eric Sokolowki, disabled default build of 64bit under OSX to 
     428          prevent build problems 
     429 
     4302008-08-05 15:27 +0000 [r8739]  robert: 
     431 
     432        * Merged from OpenSceneGraph-2.6 branch 
     433 
     4342008-08-05 15:11 +0000 [r8738]  robert: 
     435 
     436        * Added NullStream class that automatically creates and delete the 
     437          NullStreamBuffer, thus fixing a memory leak 
     438 
     4392008-08-05 15:06 +0000 [r8737]  robert: 
     440 
     441        * From Eric Sokolowski, "Fixed the build of the osgViewer library 
     442          to get GL/glx.h from the right place, when building on OSX with 
     443          X11" 
     444 
     4452008-08-05 11:17 +0000 [r8734]  robert: 
     446 
     447        * Merged changes to OpenSceneGraph-2.6 into trunk using : svn merge 
     448          -r 8729:8734 
     449          http://www.openscenegraph.org/svn/osg/OpenSceneGraph/branches/OpenSceneGraph-2.6 
     450          . 
     451 
     4522008-08-04 20:48 +0000 [r8728]  robert: 
     453 
     454        * Added -losgWidget to the list of libs 
     455 
     4562008-08-04 17:08 +0000 [r8726]  robert: 
     457 
     458        * From Sherman Wilcox, "Minor change to bool 
     459          setGLExtensionFuncPtr(T& t, const char* str1) and 
     460          setGLExtensionFuncPtr(T& t, const char* str1, const char* str2) - 
     461          functions returned false even on success." 
     462 
     4632008-08-04 15:09 +0000 [r8720-8722]  robert: 
     464 
     465        * Updated AUTHORS file 
     466 
     467        * Updated ChangeLog 
     468 
     469        * Updated news for 2.6.0 release rc2 
     470 
     4712008-08-04 14:01 +0000 [r8718]  robert: 
     472 
     473        * From Philip Lowman, workaround of Centos 5's missing definition 
     474          of GL_MAX_SAMPLES_EXT. 
     475 
     4762008-08-04 12:47 +0000 [r8716]  robert: 
     477 
     478        * Moved initial drawable setup to within the mutex locked section 
     479          to avoid multi-threaded crash on startup. 
     480 
     4812008-08-04 12:27 +0000 [r8714]  robert: 
     482 
     483        * Removed debug info 
     484 
     4852008-08-04 09:05 +0000 [r8712]  robert: 
     486 
     487        * From Ulrich Hertlien, "attached is a patch to 
     488          src/osgPlugins/quicktime/QTImportExport.cpp that fixes loading 
     489          images using the quicktime loader. Also fixes some minor bugs 
     490          like uninitialized variables and incorrect deletes. I'm a bit 
     491          puzzled why this didn't pop up for more people as it's quite 
     492          severe: basically the filename was never set!"" 
     493 
     4942008-08-04 08:45 +0000 [r8711]  robert: 
     495 
     496        * Added a small epsilon expansion of the bounding box being 
     497          clipped/intersected against, to avoid numberic errors causing 
     498          problems. 
     499 
     5002008-08-03 20:35 +0000 [r8710]  robert: 
     501 
     502        * Improved the terrain intersection code so that it produces more 
     503          stable terrain movements. 
     504 
     5052008-08-03 16:57 +0000 [r8708]  robert: 
     506 
     507        * merged 2.6 branch changes back into trunk using : svn merge -r 
     508          8699:8706 
     509          http://www.openscenegraph.org/svn/osg/OpenSceneGraph/branches/OpenSceneGraph-2.6 
     510          . 
     511 
     5122008-08-03 16:48 +0000 [r8707]  robert: 
     513 
     514        * Moved bb expansion out of loop. 
     515 
     5162008-07-25 21:09 +0000 [r8697]  robert: 
     517 
     518        * Updated ChangeLog and AUTHORS.txt file for relese candidate 
     519 
     5202008-07-25 21:01 +0000 [r8695-8696]  robert: 
     521 
     522        * Updated version numbers to 2.6.0 
     523 
     524        * Updated REAME and NEWS for 2.6 branch 
     525 
    15262008-07-25 20:50 +0000 [r8692-8694]  robert: 
    2527 
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/NEWS.txt

    r8695 r8829  
    44= !OpenSceneGraph 2.6 release adds osgWidget library, KdTree intersections, Anti-aliased FBOsand much more. = 
    55 
    6 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. 
     6PERTHSHIRE, 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. 
    77 
    88=== Open-source development delivers industry-leading features and performance === 
     
    1111=== Updates include: === 
    1212 
    13  * New osgWidget library (still in beta status) 
    14  * New KdTree support, with automatic building of KdTrees and intersections with them for high performance intersection testing 
    15  * New Anti-aliased FrameBufferObject support 
    16  * Improved precision of intersections and camera manipulation 
    17  * Improved Alias Wavefront .obj support 
    18  * A wide range of build and bug fixes 
    19    
     13    * New osgWidget library for scene graph based graphics user interface elements (beta release). 
     14    * KdTree support, with automatic KdTree generation on load and use of KdTree during line intersections which massively improves intersection speeds. 
     15    * Precision improvements to line intersections, provide accurate whole earth intersection. 
     16    * OpenGL Multi-sample FrameBufferObject support. 
     17    * New osg::ImageSequence class for doing texture animation of a series of image files. 
     18    * New database optimizer that is able to remove static transforms by duplicating shared geometries. 
     19    * Use glGenerateMipmap to speed up mipmap generation in non power-of-two textures. 
     20    * New osgViewer::ScreenCaptureHandler for adding screen shot support to osgViewer applications. 
     21    * New osgscreencapture example that demonstrates use of double buffer PixelBufferObject's for streaming of imagery from the screen. 
     22    * New utility application osgfilecache which can be used to populate the local cache for given lat/lon ranges and levels. 
     23    * 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. 
     24    * Support for a file cache for locally caching paged databases hosted over HTTP. 
     25    * Support for http authentication in osgDB and the libcurl plugin 
     26    * New osgconv --format <fmt>, --formats and --plugins command line options for listing available plugins and the file formats/options they support. 
     27    * Performance improvements in handling TerraPage. 
     28    * Animated GIF support. 
     29    * New SVG image loader. 
     30    * Improvements to the .obj loader to support a wider range of .obj files and material properties. 
     31    * Support for thread safe Atomic reference counting. 
     32    * Support for COLLADA DOM 2.x 
     33    * Support for Philips WOWvx 3D auto-stereoscopic displays 
     34    * 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. 
     35    * Support for CMake 2.6 
     36    * A wide range of build and bug fixes  
     37 
     38  
    2039=== Downloads and Licensing === 
    2140!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. 
     
    3857The 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.  
    3958 
    40 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.  
     59The !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.  
    4160 
    4261---- 
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/README.txt

    r8695 r8829  
    1616Robert Osfield. 
    1717Project Lead. 
    18 25th July 2008. 
     1826th August 2008. 
    1919 
    2020-- 
     
    6767Under OSX you can either use the CMake build system above, or use the  
    6868Xcode projects that you will find in the OpenSceneGraph/Xcode  
    69 directory. 
     69directory. See release notes on OSX CMake build below. 
    7070 
    7171For further details on compilation, installation and platform-specific  
     
    7373 
    7474    http://www.openscenegraph.org/projects/osg/wiki/Support/GettingStarted 
     75    
     76    
     77-- Release notes on OSX build, by Eric Sokolowsky, August 5, 2008 
     78 
     79There are several ways to compile OpenSceneGraph under OSX.  The 
     80recommended way is to use CMake 2.6 to generate Xcode projects, then use 
     81Xcode to build the library. The default project will be able to build 
     82Debug or Release libraries, examples, and sample applications. Here are 
     83some key settings to consider when using CMake: 
     84 
     85BUILD_OSG_EXAMPLES - By default this is turned off. Turn this setting on 
     86to compile many great example programs. 
     87 
     88CMAKE_OSX_ARCHITECTURES - Xcode can create applications, executables, 
     89libraries, and frameworks that can be run on more than one architecture. 
     90Use this setting to indicate the architectures on which to build OSG. 
     91Possibilities include ppc, ppc64, i386, and x86_64. Building OSG using 
     92either of the 64-bit options (ppc64 and x86_64) has its own caveats 
     93below. 
     94 
     95OSG_BUILD_APPLICATION_BUNDLES - Normally only executable binaries are 
     96created for the examples and sample applications. Turn this option on if 
     97you want to create real OSX .app bundles. There are caveats to creating 
     98.app bundles, see below. 
     99 
     100OSG_WINDOWING_SYSTEM - You have the choice to use Carbon or X11 when 
     101building applications on OSX. Under Leopard and later, X11 applications, 
     102when started, will automatically launch X11 when needed. However, 
     103full-screen X11 applications will still show the menu bar at the top of 
     104the screen. Since many parts of the Carbon user interface are not 
     10564-bit, X11 is the only supported option for OSX applications compiled 
     106for ppc64 or x86_64. 
     107 
     108There is an Xcode directory in the base of the OSG software 
     109distribution, but its future is limited, and will be discontinued once 
     110the CMake project generator completely implements its functionality. 
     111 
     112 
     113APPLICATION BUNDLES (.app bundles) 
     114 
     115The example programs when built as application bundles only contain the 
     116executable file. They do not contain the dependent libraries as would a 
     117normal bundle, so they are not generally portable to other machines. 
     118They also do not know where to find plugins. An environmental variable 
     119OSG_LIBRARY_PATH may be set to point to the location where the plugin 
     120.so files are located. OSG_FILE_PATH may be set to point to the location 
     121where data files are located. Setting OSG_FILE_PATH to the 
     122OpenSceneGraph-Data directory is very useful when testing OSG by running 
     123the example programs. 
     124 
     125Many of the example programs use command-line arguments. When 
     126double-clicking on an application (or using the equivalent "open" 
     127command on the command line) only those examples and applications that 
     128do not require command-line arguments will successfully run. The 
     129executable file within the .app bundle can be run from the command-line 
     130if command-line arguments are needed. 
     131 
     132 
     13364-BIT APPLICATION SUPPORT 
     134 
     135OpenSceneGraph will not compile successfully when OSG_WINDOWING_SYSTEM is 
     136Carbon and either x86_64 or ppc64 is selected under CMAKE_OSX_ARCHITECTURES, 
     137as Carbon is a 32bit only API. A version of the osgviewer library written in 
     138Cocoa is needed. However, OSG may be compiled under 64-bits if the X11 
     139windowing system is selected. However, Two parts of the OSG default 
     140distribution will not work with 64-bit X11: the osgviewerWX example 
     141program and the osgdb_qt (Quicktime) plugin. These must be removed from 
     142the Xcode project after Cmake generates it in order to compile with 
     14364-bit architectures. The lack of the latter means that images such as 
     144jpeg, tiff, png, and gif will not work, nor will animations dependent on 
     145Quicktime. A new ImageIO-based plugin is being developed to handle the 
     146still images, and a QTKit plugin will need to be developed to handle 
     147animations. 
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/applications/osgversion/osgversion.cpp

    r8697 r8829  
     1#include <osg/Notify> 
    12#include <osg/Version> 
    23#include <osg/ArgumentParser> 
     
    3536{ 
    3637    if (first=="de") return true; 
     38    if (first=="den") return true; 
     39    if (first=="van") return true; 
    3740 
    3841 
     
    220223    if (first=="GeometryTechnique") return false; 
    221224    if (first=="GeoemtryTechnique") return false; 
     225    if (first=="KdTree") return false; 
     226    if (first=="LineSegment") return false; 
     227    if (first=="Canvas") return false; 
     228    if (first=="OpenSceneGraph-2") return false; 
    222229    return true; 
    223230} 
     
    231238    if (name=="") return ""; 
    232239#endif 
    233     if (name=="Weidemann") return "Wiedemann"; 
    234     if (name=="Martsz") return "Martz"; 
    235     if (name=="Matz")  return "Martz"; 
    236     if (name=="Froenlich") return "Fröhlich"; 
    237     if (name=="Froechlich") return "Fröhlich"; 
    238     if (name=="Froelich") return "Fröhlich";     
    239     if (name=="Fruciel") return "Frauciel"; 
    240     if (name=="Hebelin") return "Herbelin"; 
    241     if (name=="Jea-Sebastien") return "Jean-Sebastien"; 
    242     if (name=="Jean-Sebastian") return "Jean-Sebastien"; 
    243     if (name=="Robet") return "Robert"; 
    244     if (name=="Morné") return "Morné"; 
     240    if (name=="Aderian")  return "Adrian"; 
    245241    if (name=="Adndre") return "Andre"; 
    246     if (name=="Mellis") return "Melis"; 
    247     if (name=="Rajce") return "Trajce"; 
    248     if (name=="Trastenjak") return "Trstenjak"; 
     242    if (name=="Adrain") return "Adrian"; 
     243    if (name=="Andew") return "Andrew"; 
     244    if (name=="André") return "André"; 
     245    if (name=="Antione") return "Antoine"; 
     246    if (name=="Antonoine") return "Antoine"; 
     247    if (name=="Atr")  return "Art"; 
    249248    if (name=="Baverage") return "Beverage"; 
    250249    if (name=="Bistroviae") return "Bistrovic"; 
     250    if (name=="Callue")  return "Callu"; 
    251251    if (name=="Christaiansen") return "Christiansen"; 
    252252    if (name=="Cobin") return "Corbin"; 
     253    if (name=="Comporesi") return "Camporesi"; 
    253254    if (name=="Connel") return "Connell"; 
     255    if (name=="Cullu") return "Callu"; 
     256    if (name=="Daneil") return "Daniel"; 
    254257    if (name=="Daust") return "Daoust"; 
    255     if (name=="Lugi") return "Luigi"; 
    256258    if (name=="Daved") return "David"; 
     259    if (name=="Drederic") return "Frederic"; 
     260    if (name=="Eileman") return "Eilemann"; 
     261    if (name=="Elgi") return "Egli"; 
    257262    if (name=="Fred") return "Frederic"; 
    258     if (name=="Drederic") return "Frederic"; 
    259263    if (name=="Fredrick") return "Frederic"; 
    260264    if (name=="Fredric") return "Frederic"; 
     265    if (name=="Froechlich") return "Fröhlich"; 
     266    if (name=="Froehlich") return "Fröhlich"; 
     267    if (name=="Froelich") return "Fröhlich";     
     268    if (name=="Froenlich") return "Fröhlich"; 
     269    if (name=="Fröhlich") return "Fröhlich"; 
     270    if (name=="Fruciel") return "Frauciel"; 
     271    if (name=="García") return "Garcea"; 
    261272    if (name=="Garrat") return "Garrett"; 
     273    if (name=="Garret") return "Garrett"; 
    262274    if (name=="Geof") return "Geoff"; 
     275    if (name=="Giatan") return "Gaitan"; 
    263276    if (name=="Gronenger") return "Gronager"; 
    264277    if (name=="Gronger") return "Gronager"; 
     278    if (name=="Hebelin") return "Herbelin"; 
    265279    if (name=="Heirtlein") return "Hertlein"; 
    266280    if (name=="Heirtlein") return "Hertlein"; 
    267281    if (name=="Heirtlein") return "Hertlein"; 
    268282    if (name=="Hertlien") return "Hertlein"; 
    269     if (name=="Narache") return "Marache"; 
    270283    if (name=="Hi") return "He"; 
    271284    if (name=="Hooper") return "Hopper"; 
    272285    if (name=="Inverson") return "Iverson"; 
    273286    if (name=="Iversion") return "Iverson"; 
    274     if (name=="Jeoen") return "Joran"; 
     287    if (name=="Jean-Sebastian") return "Jean-Sebastien"; 
     288    if (name=="Jea-Sebastien") return "Jean-Sebastien"; 
    275289    if (name=="Johhansen") return "Johansen"; 
    276290    if (name=="Johnansen") return "Johansen"; 
     
    278292    if (name=="Jolly") return "Jolley"; 
    279293    if (name=="Jose") return "José"; 
     294    if (name=="José") return "José"; 
    280295    if (name=="Joson") return "Jason"; 
    281296    if (name=="J") return "José"; 
    282297    if (name=="Keuhne") return "Kuehne"; 
    283298    if (name=="Kheune") return "Kuehne"; 
     299    if (name=="Larshkari") return "Lashkari"; 
    284300    if (name=="Lashakari") return "Lashkari"; 
    285301    if (name=="Lashari") return "Lashkari"; 
    286302    if (name=="Lasharki") return "Lashkari"; 
    287303    if (name=="Laskari") return "Lashkari"; 
     304    if (name=="Leandowski" || name=="Lawandowski")  return "Lewandowski"; 
     305    if (name=="Lugi") return "Luigi"; 
     306    if (name=="Machler") return "Mächler"; 
    288307    if (name=="Macro") return "Marco"; 
     308    if (name=="Maechler") return "Mächler"; 
     309    if (name=="Mahai")  return "Mihai"; 
    289310    if (name=="Mammond") return "Marmond"; 
    290311    if (name=="March") return "Marco"; 
     312    if (name=="Martsz") return "Martz"; 
    291313    if (name=="Marz") return "Martz"; 
     314    if (name=="Matz")  return "Martz"; 
     315    if (name=="Melchoir") return "Melchior"; 
     316    if (name=="Mellis") return "Melis"; 
     317    if (name=="Messerschimdt") return "Messerschmidt"; 
    292318    if (name=="Micheal") return "Michael"; 
     319    if (name=="Mihair")  return "Mihai"; 
    293320    if (name=="Molishtan") return "Moloshtan"; 
    294321    if (name=="Molishtan") return "Moloshtan"; 
    295322    if (name=="Moloshton") return "Moloshtan"; 
     323    if (name=="Morné") return "Morné"; 
    296324    if (name=="Moule") return "Moiule"; 
     325    if (name=="Narache") return "Marache"; 
    297326    if (name=="Nicklov") return "Nikolov"; 
    298327    if (name=="Nickolov") return "Nikolov"; 
     
    302331    if (name=="Osfied") return "Osfield"; 
    303332    if (name=="Pail") return "Paul"; 
     333    if (name=="Rajce") return "Trajce"; 
    304334    if (name=="Randal") return "Randall"; 
     335    if (name=="Robet") return "Robert"; 
    305336    if (name=="Rodger") return "Roger"; 
    306337    if (name=="Sewel") return "Sewell"; 
     338    if (name=="Simmonson") return "Simonsson"; 
     339    if (name=="Simmonsson") return "Simonsson"; 
    307340    if (name=="Sjolie") return "Sjölie"; 
     341    if (name=="Sjölie") return "Sjölie"; 
     342    if (name=="Skinnder") return "Skinner"; 
    308343    if (name=="Sokolosky") return "Sokolowsky"; 
     344    if (name=="Sokolowki") return "Sokolowsky"; 
    309345    if (name=="Sokolowski") return "Sokolowsky"; 
    310346    if (name=="Sokolsky") return "Sokolowsky"; 
     347    if (name=="Sokolwsky") return "Sokolowsky"; 
    311348    if (name=="Sonda") return "Sondra"; 
    312349    if (name=="Stansilav") return "Stanislav"; 
    313350    if (name=="Stefan") return "Stephan"; 
    314351    if (name=="Stell") return "Steel"; 
     352    if (name=="Sylvan") return "Sylvain"; 
    315353    if (name=="Takeahei") return "Takahei"; 
    316354    if (name=="Takehei") return "Takahei"; 
    317355    if (name=="Tarantilils") return "Tarantilis"; 
     356    if (name=="Trastenjak") return "Trstenjak"; 
    318357    if (name=="Vines") return "Vine"; 
     358    if (name=="Waldrom")  return "Waldron"; 
     359    if (name=="Weidemann") return "Wiedemann"; 
    319360    if (name=="Wieblen") return "Weiblen"; 
     361    if (name=="Wojiech" || name=="Wojchiech")  return "Wojciech"; 
    320362    if (name=="Xennon") return "Hanson"; 
    321363    if (name=="Yefrei") return "Yefei"; 
    322364    if (name=="Yfei") return "Yefei"; 
    323     if (name=="Antonoine") return "Antoine"; 
    324     if (name=="Antione") return "Antoine"; 
    325     if (name=="Andew") return "Andrew"; 
    326     if (name=="Daneil") return "Daniel"; 
    327     if (name=="André") return "André"; 
    328     if (name=="García") return "Garcea"; 
    329     if (name=="Sjölie") return "Sjölie"; 
    330     if (name=="José") return "José"; 
    331     if (name=="Fröhlich") return "Fröhlich"; 
    332     if (name=="Froehlich") return "Fröhlich"; 
    333     if (name=="Eileman") return "Eilemann"; 
    334     if (name=="Skinnder") return "Skinner"; 
    335     if (name=="Mihair")  return "Mihai"; 
    336     if (name=="Mahai")  return "Mihai"; 
    337     if (name=="Wojiech" || name=="Wojchiech")  return "Wojciech"; 
    338     if (name=="Leandowski" || name=="Lawandowski")  return "Lewandowski"; 
    339     if (name=="Aderian")  return "Adrian"; 
    340     if (name=="Callue")  return "Callu"; 
    341     if (name=="Waldrom")  return "Waldron"; 
    342     if (name=="Atr")  return "Art"; 
    343     if (name=="Sylvan") return "Sylvain"; 
    344     if (name=="Giatan") return "Gaitan"; 
    345     if (name=="Melchoir") return "Melchior"; 
    346     if (name=="Simmonsson") return "Simonsson"; 
    347     if (name=="Simmonson") return "Simonsson"; 
    348     if (name=="Sokolwsky") return "Sokolowsky"; 
    349     if (name=="Cullu") return "Callu"; 
    350     if (name=="Comporesi") return "Camporesi"; 
    351     if (name=="Machler") return "Mächler"; 
    352     if (name=="Maechler") return "Mächler"; 
    353     if (name=="Messerschimdt") return "Messerschmidt"; 
    354     if (name=="Garret") return "Garrett"; 
    355     if (name=="Adrain") return "Adrian"; 
    356     if (name=="Elgi") return "Egli"; 
     365    if (name=="Frashid") return "Farshid"; 
     366     
    357367    return name; 
    358368} 
     
    360370void nameCorrection(NamePair& name) 
    361371{ 
     372    if (name.first=="Erik" && name.second=="van") 
     373    { 
     374        name.first = "Erik"; 
     375        name.second = "den Dekker"; 
     376    } 
     377     
     378    if (name.first=="Jeoen" && name.second=="den") 
     379    { 
     380        name.first = "Jeoen"; 
     381        name.second = "den Dekker"; 
     382    } 
     383     
    362384    if (name.first=="John" && name.second=="Vidar") 
    363385    { 
     
    397419        name.second = "Cipperly"; 
    398420    } 
    399     if (name.first=="Gino" && name.second=="") 
     421    if (name.first=="Gino" && name.second=="van") 
    400422    { 
    401423        name.first = "Gino"; 
     
    540562{ 
    541563    if (first.empty()) return EmptyNamePair; 
     564     
     565    // osg::notify(osg::NOTICE)<<"first = "<<first<<" second = "<<second<<std::endl; 
    542566     
    543567    unsigned int last = first.size(); 
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/doc/Doxyfiles/auto_Doxyfile

    r6782 r8829  
    324324                         $(OSGHOME)/include/osgParticle \ 
    325325                         $(OSGHOME)/include/osgViewer \ 
     326                         $(OSGHOME)/include/osgWidget \ 
    326327                         $(OSGHOME)/include/osgShadow \ 
    327328                         $(OSGHOME)/include/osgManipulator \ 
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/doc/Doxyfiles/core_Doxyfile

    r6782 r8829  
    399399                         $(OSGHOME)/include/osgParticle \ 
    400400                         $(OSGHOME)/include/osgViewer \ 
     401                         $(OSGHOME)/include/osgWidget \ 
    401402                         $(OSGHOME)/include/osgManipulator \ 
    402403                         $(OSGHOME)/include/osgShadow \ 
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/doc/Doxyfiles/doxyfile.cmake

    r7843 r8829  
    1 # Doxyfile 1.3.6 
     1# Doxyfile 1.5.6 
    22 
    33# This file describes the settings to be used by the documentation system 
     
    1515#--------------------------------------------------------------------------- 
    1616 
     17# This tag specifies the encoding used for all characters in the config file  
     18# that follow. The default is UTF-8 which is also the encoding used for all  
     19# text before the first occurrence of this tag. Doxygen uses libiconv (or the  
     20# iconv built into libc) for the transcoding. See  
     21# http://www.gnu.org/software/libiconv for the list of possible encodings. 
     22 
     23DOXYFILE_ENCODING      = UTF-8 
     24 
    1725# The PROJECT_NAME tag is a single word (or a sequence of words surrounded  
    1826# by quotes) that should identify the project. 
     
    2432# if some version control system is used. 
    2533 
    26 PROJECT_NUMBER         =  
     34PROJECT_NUMBER         = ${OPENSCENEGRAPH_VERSION} 
    2735 
    2836# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)  
     
    3139# where doxygen was started. If left blank the current directory will be used. 
    3240 
    33 OUTPUT_DIRECTORY       = ${OpenSceneGraph_SOURCE_DIR}/doc/ 
     41OUTPUT_DIRECTORY       = "${PROJECT_BINARY_DIR}/doc/" 
     42 
     43# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create  
     44# 4096 sub-directories (in 2 levels) under the output directory of each output  
     45# format and will distribute the generated files over these directories.  
     46# Enabling this option can be useful when feeding doxygen a huge amount of  
     47# source files, where putting all generated files in the same directory would  
     48# otherwise cause performance problems for the file system. 
     49 
     50CREATE_SUBDIRS         = NO 
    3451 
    3552# The OUTPUT_LANGUAGE tag is used to specify the language in which all  
     
    3754# information to generate all constant output in the proper language.  
    3855# The default language is English, other supported languages are:  
    39 # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch,  
    40 # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en  
    41 # (Japanese with English messages), Korean, Korean-en, Norwegian, Polish, Portuguese,  
    42 # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. 
     56# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,  
     57# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek,  
     58# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages),  
     59# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish,  
     60# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish,  
     61# and Ukrainian. 
    4362 
    4463OUTPUT_LANGUAGE        = English 
     
    7190# that is used to form the text in various listings. Each string  
    7291# in this list, if found as the leading text of the brief description, will be  
    73 # stripped from the text and the result after processing the whole list, is used  
    74 # as the annotated text. Otherwise, the brief description is used as-is. If left  
    75 # blank, the following values are used ("$name" is automatically replaced with the  
    76 # name of the entity): "The $name class" "The $name widget" "The $name file"  
    77 # "is" "provides" "specifies" "contains" "represents" "a" "an" "the" 
     92# stripped from the text and the result after processing the whole list, is  
     93# used as the annotated text. Otherwise, the brief description is used as-is.  
     94# If left blank, the following values are used ("$name" is automatically  
     95# replaced with the name of the entity): "The $name class" "The $name widget"  
     96# "The $name file" "is" "provides" "specifies" "contains"  
     97# "represents" "a" "an" "the" 
    7898 
    7999ABBREVIATE_BRIEF       =  
     
    85105ALWAYS_DETAILED_SEC    = NO 
    86106 
    87 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited  
    88 # members of a class in the documentation of that class as if those members were  
    89 # ordinary class members. Constructors, destructors and assignment operators of  
    90 # the base classes will not be shown. 
     107# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all  
     108# inherited members of a class in the documentation of that class as if those  
     109# members were ordinary class members. Constructors, destructors and assignment  
     110# operators of the base classes will not be shown. 
    91111 
    92112INLINE_INHERITED_MEMB  = NO 
     
    96116# to NO the shortest path that makes the file name unique will be used. 
    97117 
    98 FULL_PATH_NAMES        = NO 
     118FULL_PATH_NAMES        = YES 
    99119 
    100120# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag  
    101121# can be used to strip a user-defined part of the path. Stripping is  
    102122# only done if one of the specified strings matches the left-hand part of  
    103 # the path. It is allowed to use relative paths in the argument list.  
     123# the path. The tag can be used to show relative paths in the file list.  
    104124# If left blank the directory from which doxygen is run is used as the  
    105125# path to strip. 
    106126 
    107 STRIP_FROM_PATH        =  
     127STRIP_FROM_PATH        = "${OpenSceneGraph_SOURCE_DIR}/include/" 
     128 
     129# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of  
     130# the path mentioned in the documentation of a class, which tells  
     131# the reader which header file to include in order to use a class.  
     132# If left blank only the name of the header file containing the class  
     133# definition is used. Otherwise one should specify the include paths that  
     134# are normally passed to the compiler using the -I flag. 
     135 
     136STRIP_FROM_INC_PATH    =  
    108137 
    109138# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter  
     
    116145# will interpret the first line (until the first dot) of a JavaDoc-style  
    117146# comment as the brief description. If set to NO, the JavaDoc  
    118 # comments will behave just like the Qt-style comments (thus requiring an  
    119 # explicit @brief command for a brief description. 
     147# comments will behave just like regular Qt-style comments  
     148# (thus requiring an explicit @brief command for a brief description.) 
    120149 
    121150JAVADOC_AUTOBRIEF      = YES 
     151 
     152# If the QT_AUTOBRIEF tag is set to YES then Doxygen will  
     153# interpret the first line (until the first dot) of a Qt-style  
     154# comment as the brief description. If set to NO, the comments  
     155# will behave just like regular Qt-style comments (thus requiring  
     156# an explicit \brief command for a brief description.) 
     157 
     158QT_AUTOBRIEF           = NO 
    122159 
    123160# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen  
     
    142179INHERIT_DOCS           = YES 
    143180 
    144 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC  
    145 # tag is set to YES, then doxygen will reuse the documentation of the first  
    146 # member in the group (if any) for the other members of the group. By default  
    147 # all members of a group must be documented explicitly. 
    148  
    149 DISTRIBUTE_GROUP_DOC   = NO 
     181# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce  
     182# a new page for each member. If set to NO, the documentation of a member will  
     183# be part of the file/class/namespace that contains it. 
     184 
     185SEPARATE_MEMBER_PAGES  = NO 
    150186 
    151187# The TAB_SIZE tag can be used to set the number of spaces in a tab.  
     
    163199ALIASES                =  
    164200 
    165 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources  
    166 # only. Doxygen will then generate output that is more tailored for C.  
     201# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C  
     202# sources only. Doxygen will then generate output that is more tailored for C.  
    167203# For instance, some of the names that are used will be different. The list  
    168204# of all members will be omitted, etc. 
     
    170206OPTIMIZE_OUTPUT_FOR_C  = NO 
    171207 
    172 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources  
    173 # only. Doxygen will then generate output that is more tailored for Java.  
    174 # For instance, namespaces will be presented as packages, qualified scopes  
    175 # will look different, etc. 
     208# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java  
     209# sources only. Doxygen will then generate output that is more tailored for  
     210# Java. For instance, namespaces will be presented as packages, qualified  
     211# scopes will look different, etc. 
    176212 
    177213OPTIMIZE_OUTPUT_JAVA   = NO 
     214 
     215# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran  
     216# sources only. Doxygen will then generate output that is more tailored for  
     217# Fortran. 
     218 
     219OPTIMIZE_FOR_FORTRAN   = NO 
     220 
     221# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL  
     222# sources. Doxygen will then generate output that is tailored for  
     223# VHDL. 
     224 
     225OPTIMIZE_OUTPUT_VHDL   = NO 
     226 
     227# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want  
     228# to include (a tag file for) the STL sources as input, then you should  
     229# set this tag to YES in order to let doxygen match functions declarations and  
     230# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.  
     231# func(std::string) {}). This also make the inheritance and collaboration  
     232# diagrams that involve STL classes more complete and accurate. 
     233 
     234BUILTIN_STL_SUPPORT    = NO 
     235 
     236# If you use Microsoft's C++/CLI language, you should set this option to YES to 
     237# enable parsing support. 
     238 
     239CPP_CLI_SUPPORT        = NO 
     240 
     241# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.  
     242# Doxygen will parse them like normal C++ but will assume all classes use public  
     243# instead of private inheritance when no explicit protection keyword is present. 
     244 
     245SIP_SUPPORT            = NO 
     246 
     247# For Microsoft's IDL there are propget and propput attributes to indicate getter  
     248# and setter methods for a property. Setting this option to YES (the default)  
     249# will make doxygen to replace the get and set methods by a property in the  
     250# documentation. This will only work if the methods are indeed getting or  
     251# setting a simple type. If this is not the case, or you want to show the  
     252# methods anyway, you should set this option to NO. 
     253 
     254IDL_PROPERTY_SUPPORT   = YES 
     255 
     256# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC  
     257# tag is set to YES, then doxygen will reuse the documentation of the first  
     258# member in the group (if any) for the other members of the group. By default  
     259# all members of a group must be documented explicitly. 
     260 
     261DISTRIBUTE_GROUP_DOC   = NO 
    178262 
    179263# Set the SUBGROUPING tag to YES (the default) to allow class member groups of  
     
    185269SUBGROUPING            = YES 
    186270 
     271# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum  
     272# is documented as struct, union, or enum with the name of the typedef. So  
     273# typedef struct TypeS {} TypeT, will appear in the documentation as a struct  
     274# with name TypeT. When disabled the typedef will appear as a member of a file,  
     275# namespace, or class. And the struct will be named TypeS. This can typically  
     276# be useful for C code in case the coding convention dictates that all compound  
     277# types are typedef'ed and only the typedef is referenced, never the tag name. 
     278 
     279TYPEDEF_HIDES_STRUCT   = NO 
     280 
    187281#--------------------------------------------------------------------------- 
    188282# Build related configuration options 
     
    211305 
    212306EXTRACT_LOCAL_CLASSES  = NO 
     307 
     308# This flag is only useful for Objective-C code. When set to YES local  
     309# methods, which are defined in the implementation section but not in  
     310# the interface are included in the documentation.  
     311# If set to NO (the default) only methods in the interface are included. 
     312 
     313EXTRACT_LOCAL_METHODS  = NO 
     314 
     315# If this flag is set to YES, the members of anonymous namespaces will be  
     316# extracted and appear in the documentation as a namespace called  
     317# 'anonymous_namespace{file}', where file will be replaced with the base  
     318# name of the file that contains the anonymous namespace. By default  
     319# anonymous namespace are hidden. 
     320 
     321EXTRACT_ANON_NSPACES   = NO 
    213322 
    214323# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all  
     
    252361# allowed. This is useful if you have classes or files whose names only differ  
    253362# in case and if your file system supports case sensitive file names. Windows  
    254 # users are advised to set this option to NO. 
     363# and Mac users are advised to set this option to NO. 
    255364 
    256365CASE_SENSE_NAMES       = YES 
     
    286395 
    287396SORT_BRIEF_DOCS        = NO 
     397 
     398# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the  
     399# hierarchy of group names into alphabetical order. If set to NO (the default)  
     400# the group names will appear in their defined order. 
     401 
     402SORT_GROUP_NAMES       = NO 
    288403 
    289404# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be  
     
    342457SHOW_USED_FILES        = YES 
    343458 
     459# If the sources in your project are distributed over multiple directories  
     460# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy  
     461# in the documentation. The default is NO. 
     462 
     463SHOW_DIRECTORIES       = YES 
     464 
     465# Set the SHOW_FILES tag to NO to disable the generation of the Files page. 
     466# This will remove the Files entry from the Quick Index and from the  
     467# Folder Tree View (if specified). The default is YES. 
     468 
     469SHOW_FILES             = YES 
     470 
     471# Set the SHOW_NAMESPACES tag to NO to disable the generation of the  
     472# Namespaces page.  This will remove the Namespaces entry from the Quick Index 
     473# and from the Folder Tree View (if specified). The default is YES. 
     474 
     475SHOW_NAMESPACES        = YES 
     476 
     477# The FILE_VERSION_FILTER tag can be used to specify a program or script that  
     478# doxygen should invoke to get the current version for each file (typically from  
     479# the version control system). Doxygen will invoke the program by executing (via  
     480# popen()) the command <command> <input-file>, where <command> is the value of  
     481# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file  
     482# provided by doxygen. Whatever the program writes to standard output  
     483# is used as the file version. See the manual for examples. 
     484 
     485FILE_VERSION_FILTER    =  
     486 
    344487#--------------------------------------------------------------------------- 
    345488# configuration options related to warning and progress messages 
     
    370513WARN_IF_DOC_ERROR      = YES 
    371514 
     515# This WARN_NO_PARAMDOC option can be abled to get warnings for  
     516# functions that are documented, but have no documentation for their parameters  
     517# or return value. If set to NO (the default) doxygen will only warn about  
     518# wrong or incomplete parameter documentation, but not about the absence of  
     519# documentation. 
     520 
     521WARN_NO_PARAMDOC       = NO 
     522 
    372523# The WARN_FORMAT tag determines the format of the warning messages that  
    373524# doxygen can produce. The string should contain the $file, $line, and $text  
    374525# tags, which will be replaced by the file and line number from which the  
    375 # warning originated and the warning text. 
     526# warning originated and the warning text. Optionally the format may contain  
     527# $version, which will be replaced by the version of the file (if it could  
     528# be obtained via FILE_VERSION_FILTER) 
    376529 
    377530WARN_FORMAT            = "$file:$line: $text" 
     
    392545# with spaces. 
    393546 
    394 INPUT                  = ${OpenSceneGraph_SOURCE_DIR}/include/osg \ 
    395                          ${OpenSceneGraph_SOURCE_DIR}/include/osgDB \ 
    396                          ${OpenSceneGraph_SOURCE_DIR}/include/osgFX \ 
    397                          ${OpenSceneGraph_SOURCE_DIR}/include/osgGA \ 
    398                          ${OpenSceneGraph_SOURCE_DIR}/include/osgIntrospection \ 
    399                          ${OpenSceneGraph_SOURCE_DIR}/include/osgParticle \ 
    400                          ${OpenSceneGraph_SOURCE_DIR}/include/osgViewer \ 
    401                          ${OpenSceneGraph_SOURCE_DIR}/include/osgManipulator \ 
    402                          ${OpenSceneGraph_SOURCE_DIR}/include/osgShadow \ 
    403                          ${OpenSceneGraph_SOURCE_DIR}/include/osgSim \ 
    404                          ${OpenSceneGraph_SOURCE_DIR}/include/osgTerrain \ 
    405                          ${OpenSceneGraph_SOURCE_DIR}/include/osgText \ 
    406                          ${OpenSceneGraph_SOURCE_DIR}/include/osgUtil \ 
    407                          ${OpenSceneGraph_SOURCE_DIR}/doc/Doxyfiles/auto_Mainpage 
     547INPUT                  = "${OpenSceneGraph_SOURCE_DIR}/include/osg" \ 
     548                         "${OpenSceneGraph_SOURCE_DIR}/include/osgDB" \ 
     549                         "${OpenSceneGraph_SOURCE_DIR}/include/osgFX" \ 
     550                         "${OpenSceneGraph_SOURCE_DIR}/include/osgGA" \ 
     551                         "${OpenSceneGraph_SOURCE_DIR}/include/osgIntrospection" \ 
     552                         "${OpenSceneGraph_SOURCE_DIR}/include/osgManipulator" \ 
     553                         "${OpenSceneGraph_SOURCE_DIR}/include/osgParticle" \ 
     554                         "${OpenSceneGraph_SOURCE_DIR}/include/osgShadow" \ 
     555                         "${OpenSceneGraph_SOURCE_DIR}/include/osgSim" \ 
     556                         "${OpenSceneGraph_SOURCE_DIR}/include/osgTerrain" \ 
     557                         "${OpenSceneGraph_SOURCE_DIR}/include/osgText" \ 
     558                         "${OpenSceneGraph_SOURCE_DIR}/include/osgUtil" \ 
     559                         "${OpenSceneGraph_SOURCE_DIR}/include/osgViewer" \ 
     560                         "${OpenSceneGraph_SOURCE_DIR}/include/osgWidget" 
     561 
     562# This tag can be used to specify the character encoding of the source files  
     563# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is  
     564# also the default input encoding. Doxygen uses libiconv (or the iconv built  
     565# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for  
     566# the list of possible encodings. 
     567 
     568INPUT_ENCODING         = UTF-8 
    408569 
    409570# If the value of the INPUT tag contains directories, you can use the  
     
    411572# and *.h) to filter out the source-files in the directories. If left  
    412573# blank the following patterns are tested:  
    413 # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp  
    414 # *.h++ *.idl *.odl *.cs *.php *.php3 *.inc 
     574# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx  
     575# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 
    415576 
    416577FILE_PATTERNS          = *include* \ 
     
    429590EXCLUDE                =  
    430591 
    431 # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories  
    432 # that are symbolic links (a Unix filesystem feature) are excluded from the input. 
     592# The EXCLUDE_SYMLINKS tag can be used select whether or not files or  
     593# directories that are symbolic links (a Unix filesystem feature) are excluded  
     594# from the input. 
    433595 
    434596EXCLUDE_SYMLINKS       = NO 
     
    436598# If the value of the INPUT tag contains directories, you can use the  
    437599# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude  
    438 # certain files from those directories. 
     600# certain files from those directories. Note that the wildcards are matched  
     601# against the file with absolute path, so to exclude all test directories  
     602# for example use the pattern */test/* 
    439603 
    440604EXCLUDE_PATTERNS       = */.svn/* 
     605 
     606# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names  
     607# (namespaces, classes, functions, etc.) that should be excluded from the  
     608# output. The symbol name can be a fully qualified name, a word, or if the  
     609# wildcard * is used, a substring. Examples: ANamespace, AClass,  
     610# AClass::ANamespace, ANamespace::*Test 
     611 
     612EXCLUDE_SYMBOLS        =  
    441613 
    442614# The EXAMPLE_PATH tag can be used to specify one or more files or  
     
    471643# is the value of the INPUT_FILTER tag, and <input-file> is the name of an  
    472644# input file. Doxygen will then use the output that the filter program writes  
    473 # to standard output. 
     645# to standard output.  If FILTER_PATTERNS is specified, this tag will be  
     646# ignored. 
    474647 
    475648INPUT_FILTER           =  
     649 
     650# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern  
     651# basis.  Doxygen will compare the file name with each pattern and apply the  
     652# filter if there is a match.  The filters are a list of the form:  
     653# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further  
     654# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER  
     655# is applied to all files. 
     656 
     657FILTER_PATTERNS        =  
    476658 
    477659# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using  
     
    503685STRIP_CODE_COMMENTS    = YES 
    504686 
    505 # If the REFERENCED_BY_RELATION tag is set to YES (the default)  
     687# If the REFERENCED_BY_RELATION tag is set to YES  
    506688# then for each documented function all documented  
    507689# functions referencing it will be listed. 
     
    509691REFERENCED_BY_RELATION = YES 
    510692 
    511 # If the REFERENCES_RELATION tag is set to YES (the default)  
     693# If the REFERENCES_RELATION tag is set to YES  
    512694# then for each documented function all documented entities  
    513695# called/used by that function will be listed. 
    514696 
    515697REFERENCES_RELATION    = YES 
     698 
     699# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) 
     700# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from 
     701# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will 
     702# link to the source code.  Otherwise they will link to the documentstion. 
     703 
     704REFERENCES_LINK_SOURCE = YES 
     705 
     706# If the USE_HTAGS tag is set to YES then the references to source code  
     707# will point to the HTML generated by the htags(1) tool instead of doxygen  
     708# built-in source browser. The htags tool is part of GNU's global source  
     709# tagging system (see http://www.gnu.org/software/global/global.html). You  
     710# will need version 4.8.6 or higher. 
     711 
     712USE_HTAGS              = NO 
    516713 
    517714# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen  
     
    575772# standard footer. 
    576773 
    577 HTML_FOOTER            = ${OpenSceneGraph_SOURCE_DIR}/doc/Doxyfiles/custom_Footer.html 
     774HTML_FOOTER            = "${OpenSceneGraph_SOURCE_DIR}/doc/Doxyfiles/custom_Footer.html" 
    578775 
    579776# The HTML_STYLESHEET tag can be used to specify a user-defined cascading  
     
    594791# If the GENERATE_HTMLHELP tag is set to YES, additional index files  
    595792# will be generated that can be used as input for tools like the  
    596 # Microsoft HTML help workshop to generate a compressed HTML help file (.chm)  
     793# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)  
    597794# of the generated HTML documentation. 
    598795 
    599796GENERATE_HTMLHELP      = NO 
     797 
     798# If the GENERATE_DOCSET tag is set to YES, additional index files  
     799# will be generated that can be used as input for Apple's Xcode 3  
     800# integrated development environment, introduced with OSX 10.5 (Leopard).  
     801# To create a documentation set, doxygen will generate a Makefile in the  
     802# HTML output directory. Running make will produce the docset in that  
     803# directory and running "make install" will install the docset in  
     804# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find  
     805# it at startup. 
     806 
     807GENERATE_DOCSET        = NO 
     808 
     809# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the  
     810# feed. A documentation feed provides an umbrella under which multiple  
     811# documentation sets from a single provider (such as a company or product suite)  
     812# can be grouped. 
     813 
     814DOCSET_FEEDNAME        = "Doxygen generated docs" 
     815 
     816# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that  
     817# should uniquely identify the documentation set bundle. This should be a  
     818# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen  
     819# will append .docset to the name. 
     820 
     821DOCSET_BUNDLE_ID       = org.doxygen.Project 
     822 
     823# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML  
     824# documentation will contain sections that can be hidden and shown after the  
     825# page has loaded. For this to work a browser that supports  
     826# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox  
     827# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). 
     828 
     829HTML_DYNAMIC_SECTIONS  = NO 
    600830 
    601831# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can  
     
    619849GENERATE_CHI           = NO 
    620850 
     851# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING 
     852# is used to encode HtmlHelp index (hhk), content (hhc) and project file 
     853# content. 
     854 
     855CHM_INDEX_ENCODING     =  
     856 
    621857# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag  
    622858# controls whether a binary table of contents is generated (YES) or a  
     
    641877ENUM_VALUES_PER_LINE   = 4 
    642878 
    643 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be 
    644 # generated containing a tree-like index structure (just like the one that  
     879# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index 
     880# structure should be generated to display hierarchical information. 
     881# If the tag value is set to FRAME, a side panel will be generated 
     882# containing a tree-like index structure (just like the one that  
    645883# is generated for HTML Help). For this to work a browser that supports  
    646884# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,  
    647885# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are  
    648 # probably better off using the HTML help feature. 
     886# probably better off using the HTML help feature. Other possible values  
     887# for this tag are: HIERARCHIES, which will generate the Groups, Directories, 
     888# and Class Hiererachy pages using a tree view instead of an ordered list; 
     889# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which 
     890# disables this behavior completely. For backwards compatibility with previous 
     891# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE 
     892# respectively. 
    649893 
    650894GENERATE_TREEVIEW      = NO 
     
    655899 
    656900TREEVIEW_WIDTH         = 250 
     901 
     902# Use this tag to change the font size of Latex formulas included  
     903# as images in the HTML documentation. The default is 10. Note that  
     904# when you change the font size after a successful doxygen run you need  
     905# to manually remove any form_*.png images from the HTML output directory  
     906# to force them to be regenerated. 
     907 
     908FORMULA_FONTSIZE       = 10 
    657909 
    658910#--------------------------------------------------------------------------- 
     
    9011153# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES  
    9021154# then the macro expansion is limited to the macros specified with the  
    903 # PREDEFINED and EXPAND_AS_PREDEFINED tags. 
     1155# PREDEFINED and EXPAND_AS_DEFINED tags. 
    9041156 
    9051157EXPAND_ONLY_PREDEF     = NO 
     
    9271179# gcc). The argument of the tag is a list of macros of the form: name  
    9281180# or name=definition (no spaces). If the definition and the = are  
    929 # omitted =1 is assumed. 
     1181# omitted =1 is assumed. To prevent a macro definition from being  
     1182# undefined via #undef or recursively expanded use the := operator  
     1183# instead of the = operator. 
    9301184 
    9311185PREDEFINED             = DOXYGEN_SHOULD_SKIP_THIS 
     
    9411195# doxygen's preprocessor will remove all function-like macros that are alone  
    9421196# on a line, have an all uppercase name, and do not end with a semicolon. Such  
    943 # function macros are typically used for boiler-plate code, and will confuse the  
    944 # parser if not removed. 
     1197# function macros are typically used for boiler-plate code, and will confuse  
     1198# the parser if not removed. 
    9451199 
    9461200SKIP_FUNCTION_MACROS   = YES 
     
    9941248 
    9951249# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will  
    996 # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or  
    997 # super classes. Setting the tag to NO turns the diagrams off. Note that this  
    998 # option is superseded by the HAVE_DOT option below. This is only a fallback. It is  
    999 # recommended to install and use dot, since it yields more powerful graphs. 
     1250# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base  
     1251# or super classes. Setting the tag to NO turns the diagrams off. Note that  
     1252# this option is superseded by the HAVE_DOT option below. This is only a  
     1253# fallback. It is recommended to install and use dot, since it yields more  
     1254# powerful graphs. 
    10001255 
    10011256CLASS_DIAGRAMS         = YES 
     1257 
     1258# You can define message sequence charts within doxygen comments using the \msc  
     1259# command. Doxygen will then run the mscgen tool (see  
     1260# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the  
     1261# documentation. The MSCGEN_PATH tag allows you to specify the directory where  
     1262# the mscgen tool resides. If left empty the tool is assumed to be found in the  
     1263# default search path. 
     1264 
     1265MSCGEN_PATH            =  
    10021266 
    10031267# If set to YES, the inheritance and collaboration graphs will hide  
     
    10141278HAVE_DOT               = YES 
    10151279 
     1280# By default doxygen will write a font called FreeSans.ttf to the output  
     1281# directory and reference it in all dot files that doxygen generates. This  
     1282# font does not include all possible unicode characters however, so when you need  
     1283# these (or just want a differently looking font) you can specify the font name  
     1284# using DOT_FONTNAME. You need need to make sure dot is able to find the font,  
     1285# which can be done by putting it in a standard location or by setting the  
     1286# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory  
     1287# containing the font. 
     1288 
     1289DOT_FONTNAME           = FreeSans 
     1290 
     1291# By default doxygen will tell dot to use the output directory to look for the  
     1292# FreeSans.ttf font (which doxygen will put there itself). If you specify a  
     1293# different font using DOT_FONTNAME you can set the path where dot  
     1294# can find it using this tag. 
     1295 
     1296DOT_FONTPATH           =  
     1297 
    10161298# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen  
    10171299# will generate a graph for each documented class showing the direct and  
     
    10281310COLLABORATION_GRAPH    = NO 
    10291311 
     1312# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen  
     1313# will generate a graph for groups, showing the direct groups dependencies 
     1314 
     1315GROUP_GRAPHS           = YES 
     1316 
    10301317# If the UML_LOOK tag is set to YES doxygen will generate inheritance and  
    10311318# collaboration diagrams in a style similar to the OMG's Unified Modeling  
     
    10531340INCLUDED_BY_GRAPH      = NO 
    10541341 
    1055 # If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will  
    1056 # generate a call dependency graph for every global function or class method.  
    1057 # Note that enabling this option will significantly increase the time of a run.  
    1058 # So in most cases it will be better to enable call graphs for selected  
    1059 # functions only using the \callgraph command. 
     1342# If the CALL_GRAPH and HAVE_DOT options are set to YES then  
     1343# doxygen will generate a call dependency graph for every global function  
     1344# or class method. Note that enabling this option will significantly increase  
     1345# the time of a run. So in most cases it will be better to enable call graphs  
     1346# for selected functions only using the \callgraph command. 
    10601347 
    10611348CALL_GRAPH             = NO 
     1349 
     1350# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then  
     1351# doxygen will generate a caller dependency graph for every global function  
     1352# or class method. Note that enabling this option will significantly increase  
     1353# the time of a run. So in most cases it will be better to enable caller  
     1354# graphs for selected functions only using the \callergraph command. 
     1355 
     1356CALLER_GRAPH           = NO 
    10621357 
    10631358# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen  
     
    10651360 
    10661361GRAPHICAL_HIERARCHY    = YES 
     1362 
     1363# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES  
     1364# then doxygen will show the dependencies a directory has on other directories  
     1365# in a graphical way. The dependency relations are determined by the #include 
     1366# relations between the files in the directories. 
     1367 
     1368DIRECTORY_GRAPH        = YES 
    10671369 
    10681370# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images  
     
    10731375 
    10741376# The tag DOT_PATH can be used to specify the path where the dot tool can be  
    1075 # found. If left blank, it is assumed the dot tool can be found on the path. 
     1377# found. If left blank, it is assumed the dot tool can be found in the path. 
    10761378 
    10771379DOT_PATH               =  
     
    10831385DOTFILE_DIRS           =  
    10841386 
    1085 # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width  
    1086 # (in pixels) of the graphs generated by dot. If a graph becomes larger than  
    1087 # this value, doxygen will try to truncate the graph, so that it fits within  
    1088 # the specified constraint. Beware that most browsers cannot cope with very  
    1089 # large images. 
    1090  
    1091 MAX_DOT_GRAPH_WIDTH    = 1024 
    1092  
    1093 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height  
    1094 # (in pixels) of the graphs generated by dot. If a graph becomes larger than  
    1095 # this value, doxygen will try to truncate the graph, so that it fits within  
    1096 # the specified constraint. Beware that most browsers cannot cope with very  
    1097 # large images. 
    1098  
    1099 MAX_DOT_GRAPH_HEIGHT   = 1024 
     1387# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of  
     1388# nodes that will be shown in the graph. If the number of nodes in a graph  
     1389# becomes larger than this value, doxygen will truncate the graph, which is  
     1390# visualized by representing a node as a red box. Note that doxygen if the  
     1391# number of direct children of the root node in a graph is already larger than  
     1392# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note  
     1393# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. 
     1394 
     1395DOT_GRAPH_MAX_NODES    = 50 
    11001396 
    11011397# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the  
    11021398# graphs generated by dot. A depth value of 3 means that only nodes reachable  
    1103 # from the root by following a path via at most 3 edges will be shown. Nodes that  
    1104 # lay further from the root node will be omitted. Note that setting this option to  
    1105 # 1 or 2 may greatly reduce the computation time needed for large code bases. Also  
    1106 # note that a graph may be further truncated if the graph's image dimensions are  
    1107 # not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT).  
    1108 # If 0 is used for the depth value (the default), the graph is not depth-constrained. 
     1399# from the root by following a path via at most 3 edges will be shown. Nodes  
     1400# that lay further from the root node will be omitted. Note that setting this  
     1401# option to 1 or 2 may greatly reduce the computation time needed for large  
     1402# code bases. Also note that the size of a graph can be further restricted by  
     1403# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. 
    11091404 
    11101405MAX_DOT_GRAPH_DEPTH    = 0 
     1406 
     1407# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent  
     1408# background. This is enabled by default, which results in a transparent  
     1409# background. Warning: Depending on the platform used, enabling this option  
     1410# may lead to badly anti-aliased labels on the edges of a graph (i.e. they  
     1411# become hard to read). 
     1412 
     1413DOT_TRANSPARENT        = YES 
     1414 
     1415# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output  
     1416# files in one run (i.e. multiple -o and -T options on the command line). This  
     1417# makes dot run faster, but since only newer versions of dot (>1.8.10)  
     1418# support this, this feature is disabled by default. 
     1419 
     1420DOT_MULTI_TARGETS      = NO 
    11111421 
    11121422# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will  
     
    11301440 
    11311441SEARCHENGINE           = ${SEARCHENGINE} 
    1132  
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/examples/osgimagesequence/osgimagesequence.cpp

    r8660 r8829  
    3535#include <iostream> 
    3636 
     37 
     38 
     39 
    3740// 
    3841// A simple demo demonstrating how to set on an animated texture using an osg::ImageSequence 
     
    4346    osg::ref_ptr<osg::ImageSequence> imageSequence = new osg::ImageSequence; 
    4447 
    45     imageSequence->setDuration(2.0); 
     48    imageSequence->setLength(4.0); 
    4649    imageSequence->addImage(osgDB::readImageFile("Cubemap_axis/posx.png")); 
    4750    imageSequence->addImage(osgDB::readImageFile("Cubemap_axis/negx.png")); 
     
    9598 
    9699 
     100osg::ImageStream* s_imageStream = 0; 
     101class MovieEventHandler : public osgGA::GUIEventHandler 
     102{ 
     103public: 
     104 
     105    MovieEventHandler():_trackMouse(false),_playToggle(true) {} 
     106     
     107    void setMouseTracking(bool track) { _trackMouse = track; } 
     108    bool getMouseTracking() const { return _trackMouse; } 
     109     
     110    void set(osg::Node* node); 
     111 
     112    virtual bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& aa, osg::Object*, osg::NodeVisitor* nv); 
     113     
     114    virtual void getUsage(osg::ApplicationUsage& usage) const; 
     115 
     116    typedef std::vector< osg::observer_ptr<osg::ImageStream> > ImageStreamList; 
     117 
     118protected: 
     119 
     120    virtual ~MovieEventHandler() {} 
     121 
     122    class FindImageStreamsVisitor : public osg::NodeVisitor 
     123    { 
     124    public: 
     125        FindImageStreamsVisitor(ImageStreamList& imageStreamList): 
     126            _imageStreamList(imageStreamList) {} 
     127             
     128        virtual void apply(osg::Geode& geode) 
     129        { 
     130            apply(geode.getStateSet()); 
     131 
     132            for(unsigned int i=0;i<geode.getNumDrawables();++i) 
     133            { 
     134                apply(geode.getDrawable(i)->getStateSet()); 
     135            } 
     136         
     137            traverse(geode); 
     138        } 
     139 
     140        virtual void apply(osg::Node& node) 
     141        { 
     142            apply(node.getStateSet()); 
     143            traverse(node); 
     144        } 
     145         
     146        inline void apply(osg::StateSet* stateset) 
     147        { 
     148            if (!stateset) return; 
     149             
     150            osg::StateAttribute* attr = stateset->getTextureAttribute(0,osg::StateAttribute::TEXTURE); 
     151            if (attr) 
     152            { 
     153                osg::Texture2D* texture2D = dynamic_cast<osg::Texture2D*>(attr); 
     154                if (texture2D) apply(dynamic_cast<osg::ImageStream*>(texture2D->getImage())); 
     155 
     156                osg::TextureRectangle* textureRec = dynamic_cast<osg::TextureRectangle*>(attr); 
     157                if (textureRec) apply(dynamic_cast<osg::ImageStream*>(textureRec->getImage())); 
     158            } 
     159        } 
     160         
     161        inline void apply(osg::ImageStream* imagestream) 
     162        { 
     163            if (imagestream) 
     164            { 
     165                _imageStreamList.push_back(imagestream);  
     166                s_imageStream = imagestream; 
     167            } 
     168        } 
     169         
     170        ImageStreamList& _imageStreamList; 
     171    }; 
     172 
     173 
     174    bool            _playToggle; 
     175    bool            _trackMouse; 
     176    ImageStreamList _imageStreamList; 
     177     
     178}; 
     179 
     180 
     181 
     182void MovieEventHandler::set(osg::Node* node) 
     183{ 
     184    _imageStreamList.clear(); 
     185    if (node) 
     186    { 
     187        FindImageStreamsVisitor fisv(_imageStreamList); 
     188        node->accept(fisv); 
     189    } 
     190} 
     191 
     192 
     193bool MovieEventHandler::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& aa, osg::Object*, osg::NodeVisitor* nv) 
     194{ 
     195    switch(ea.getEventType()) 
     196    { 
     197        case(osgGA::GUIEventAdapter::KEYDOWN): 
     198        { 
     199            if (ea.getKey()=='p') 
     200            { 
     201                for(ImageStreamList::iterator itr=_imageStreamList.begin(); 
     202                    itr!=_imageStreamList.end(); 
     203                    ++itr) 
     204                { 
     205                    if ((*itr)->getStatus()==osg::ImageStream::PLAYING) 
     206                    { 
     207                        // playing, so pause 
     208                        std::cout<<"Pause"<<std::endl; 
     209                        (*itr)->pause(); 
     210                    } 
     211                    else 
     212                    { 
     213                        // playing, so pause 
     214                        std::cout<<"Play"<<std::endl; 
     215                        (*itr)->play(); 
     216                    } 
     217                } 
     218                return true; 
     219            } 
     220            else if (ea.getKey()=='r') 
     221            { 
     222                for(ImageStreamList::iterator itr=_imageStreamList.begin(); 
     223                    itr!=_imageStreamList.end(); 
     224                    ++itr) 
     225                { 
     226                    std::cout<<"Restart"<<std::endl; 
     227                    (*itr)->rewind(); 
     228                } 
     229                return true; 
     230            } 
     231            else if (ea.getKey()=='L') 
     232            { 
     233                for(ImageStreamList::iterator itr=_imageStreamList.begin(); 
     234                    itr!=_imageStreamList.end(); 
     235                    ++itr) 
     236                { 
     237                    if ( (*itr)->getLoopingMode() == osg::ImageStream::LOOPING) 
     238                    { 
     239                        std::cout<<"Toggle Looping Off"<<std::endl; 
     240                        (*itr)->setLoopingMode( osg::ImageStream::NO_LOOPING ); 
     241                    } 
     242                    else 
     243                    { 
     244                        std::cout<<"Toggle Looping On"<<std::endl; 
     245                        (*itr)->setLoopingMode( osg::ImageStream::LOOPING ); 
     246                    } 
     247                } 
     248                return true; 
     249            } 
     250            return false; 
     251        } 
     252 
     253        default: 
     254            return false; 
     255    } 
     256    return false; 
     257} 
     258 
     259void MovieEventHandler::getUsage(osg::ApplicationUsage& usage) const 
     260{ 
     261    usage.addKeyboardMouseBinding("p","Play/Pause movie"); 
     262    usage.addKeyboardMouseBinding("r","Restart movie"); 
     263    usage.addKeyboardMouseBinding("l","Toggle looping of movie"); 
     264} 
     265 
     266 
     267 
     268 
    97269int main(int argc, char **argv) 
    98270{ 
     
    105277    viewer.setSceneData(createModel()); 
    106278 
     279    // pass the model to the MovieEventHandler so it can pick out ImageStream's to manipulate. 
     280    MovieEventHandler* meh = new MovieEventHandler(); 
     281    meh->set( viewer.getSceneData() ); 
     282    viewer.addEventHandler( meh ); 
     283 
     284 
    107285    std::string filename; 
    108286    if (arguments.read("-o",filename)) 
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/examples/osgmovie/osgmovie.cpp

    r8659 r8829  
    4545public: 
    4646 
    47     MovieEventHandler():_trackMouse(false),playToggle_(true) {} 
     47    MovieEventHandler():_trackMouse(false),_playToggle(true) {} 
    4848     
    4949    void setMouseTracking(bool track) { _trackMouse = track; } 
     
    114114 
    115115 
    116     bool            playToggle_; 
     116    bool            _playToggle; 
    117117    bool            _trackMouse; 
    118118    ImageStreamList _imageStreamList; 
     
    209209                    ++itr) 
    210210                { 
    211                     playToggle_ = !playToggle_; 
    212                     if ( playToggle_ ) 
     211                    _playToggle = !_playToggle; 
     212                    if ( _playToggle ) 
    213213                    { 
    214214                        // playing, so pause 
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/examples/osgviewerGTK/osgviewerGTK.cpp

    r8294 r8829  
     1#include <string.h> 
     2 
    13#include <iostream> 
    24#include <string> 
     
    5153        ); 
    5254 
    53         if(not std::strncmp(text, "Close", 5)) gtk_main_quit(); 
     55        if(not strncmp(text, "Close", 5)) gtk_main_quit(); 
    5456     
    55         else if(not std::strncmp(text, "Open File", 9)) { 
     57        else if(not strncmp(text, "Open File", 9)) { 
    5658            GtkWidget* of = gtk_file_chooser_dialog_new( 
    5759                "Please select an OSG file...", 
  • OpenSceneGraph/branches/OpenSceneGraph-osgWidget-dev/examples/osgvolume/osgvolume.cpp

    r7892 r8829  
    3333#include <osg/PrimitiveSet> 
    3434#include <osg/Endian> 
     35#include <osg/BlendFunc> 
     36#include <osg/BlendEquation> 
    3537 
    3638#include <osgDB/Registry> 
     
    4547 
    4648#include <osgViewer/Viewer> 
     49#include <osgViewer/ViewerEventHandlers> 
     50 
     51#include <osg/io_utils> 
    4752 
    4853#include <iostream> 
     
    630635    float halfSize = size*0.5f; 
    631636    float y = halfSize; 
    632     float dy =-size*1.4/(float)(numSlices-1)*sliceEnd; 
     637    float dy =-size/(float)(numSlices-1)*sliceEnd; 
    633638 
    634639    //y = -halfSize; 
     
    669674    public: 
    670675     
    671         FollowMouseCallback() 
     676        FollowMouseCallback(bool shader = false): 
     677            _shader(shader) 
    672678        { 
    673679            _updateTransparency = false; 
     
    709715                case(osgGA::GUIEventAdapter::DRAG): 
    710716                { 
    711                     float v = ea.getY()*0.5f+0.5f; 
    712                     osg::Uniform* uniform = 0; 
    713                     if (_updateTransparency && (uniform = stateset->getUniform("transparency"))) uniform->set(v); 
    714                     if (_updateAlphaCutOff && (uniform = stateset->getUniform("alphaCutOff"))) uniform->set(v); 
    715                     if (_updateSampleDensity && (uniform = stateset->getUniform("sampleDensity"))) uniform->set(powf(v,5)); 
     717                    float v = (ea.getY()-ea.getYmin())/(ea.getYmax()-ea.getYmin()); 
     718                    if (_shader) 
     719                    { 
     720                        osg::Uniform* uniform = 0; 
     721                        if (_updateTransparency && (uniform = stateset->getUniform("transparency"))) uniform->set(v); 
     722                        if (_updateAlphaCutOff && (uniform = stateset->getUniform("alphaCutOff"))) uniform->set(v); 
     723                        if (_updateSampleDensity && (uniform = stateset->getUniform("sampleDensity"))) uniform->set(powf(v,5)); 
     724                    } 
     725                    else 
     726                    {                     
     727                        if (_updateAlphaCutOff) 
     728                        { 
     729                            osg::AlphaFunc* alphaFunc = dynamic_cast<osg::AlphaFunc*>(stateset->getAttribute(osg::StateAttribute::ALPHAFUNC)); 
     730                            if (alphaFunc)  
     731                            { 
     732                                alphaFunc->setReferenceValue(v); 
     733                            } 
     734                        } 
     735                         
     736                        if (_updateTransparency) 
     737                        { 
     738                            osg::Material* material = dynamic_cast<osg::Material*>(stateset->getAttribute(osg::StateAttribute::MATERIAL)); 
     739                            if (material) 
     740                            { 
     741                                material->setAlpha(osg::Material::FRONT_AND_BACK,v); 
     742                            } 
     743                        } 
     744                    } 
     745 
    716746                    break; 
    717747                } 
     
    736766        } 
    737767         
     768        bool _shader; 
    738769        bool _updateTransparency; 
    739770        bool _updateAlphaCutOff; 
     
    744775osg::Node* createShaderModel(osg::ref_ptr<osg::Image>& image_3d, osg::ref_ptr<osg::Image>& /*normalmap_3d*/, 
    745776                       osg::Texture::InternalFormatMode internalFormatMode, 
    746                        float /*xSize*/, float /*ySize*/, float /*zSize*/, 
     777                       float xSize, float ySize, float zSize, 
    747778                       float /*xMultiplier*/, float /*yMultiplier*/, float /*zMultiplier*/, 
    748                        unsigned int /*numSlices*/=500, float /*sliceEnd*/=1.0f, float alphaFuncValue=0.02f) 
    749 { 
     779                       unsigned int /*numSlices*/=500, float /*sliceEnd*/=1.0f, float alphaFuncValue=0.02f, bool maximumIntensityProjection = false) 
     780{ 
     781 
     782    osg::Group* root = new osg::Group; 
     783     
    750784    osg::Geode* geode = new osg::Geode; 
     785    root->addChild(geode); 
     786     
    751787    osg::StateSet* stateset = geode->getOrCreateStateSet(); 
    752788     
    753     stateset->setEventCallback(new FollowMouseCallback); 
     789    stateset->setEventCallback(new FollowMouseCallback(true)); 
    754790     
    755791    stateset->setMode(GL_ALPHA_TEST,osg::StateAttribute::ON); 
     
    760796    // imbalanced dimensions of the 256x256x4 texture. 
    761797    osg::Texture3D* texture3D = new osg::Texture3D; 
     798    texture3D->setResizeNonPowerOfTwoHint(false); 
    762799    texture3D->setFilter(osg::Texture3D::MIN_FILTER,osg::Texture3D::LINEAR); 
    763800    texture3D->setFilter(osg::Texture3D::MAG_FILTER,osg::Texture3D::LINEAR); 
     
    792829    { 
    793830        char vertexShaderSource[] =  
    794             "varying vec3 texcoord;\n" 
    795             "varying vec3 cameraPos;\n" 
     831            "varying vec4 cameraPos;\n" 
     832            "varying vec4 vertexPos;\n" 
     833            "varying mat4 texgen;\n" 
    796834            "\n" 
    797835            "void main(void)\n" 
    798836            "{\n" 
    799             "        texcoord = gl_MultiTexCoord0.xyz;\n" 
    800             "        gl_Position     = ftransform();\n" 
    801             "        cameraPos=vec4(gl_ModelViewMatrixInverse*vec4(0,0,0,1)).xyz;\n" 
     837            "        gl_Position = ftransform();\n" 
     838            "\n" 
     839            "        cameraPos = gl_ModelViewMatrixInverse*vec4(0,0,0,1);\n" 
     840            "        vertexPos = gl_Vertex;\n" 
     841            "\n" 
     842            "        texgen = mat4(gl_ObjectPlaneS[0], \n" 
     843            "                      gl_ObjectPlaneT[0],\n" 
     844            "                      gl_ObjectPlaneR[0],\n" 
     845            "                      gl_ObjectPlaneQ[0]);\n" 
    802846            "}\n"; 
    803847 
     
    823867            "uniform float alphaCutOff;\n" 
    824868            "\n"