From 16e3a3c1829dd5d1c510046816db20fc90b0ab5b Mon Sep 17 00:00:00 2001 From: Don BURNS Date: Tue, 8 Oct 2002 07:39:38 +0000 Subject: [PATCH] Added AnimationPathManipulator to osgGA and modified sgv to use it. --- Make/makerules | 3 +- dist/RPM/OpenSceneGraph.spec | 25 ++++- dist/RPM/OpenSceneGraph_dev.spec | 140 +++++++++++++++++++------ include/osgGA/AnimationPathManipulator | 111 ++++++++++++++++++++ src/Demos/sgv/sgv.cpp | 34 +++++- src/osgGLUT/Viewer.cpp | 2 +- 6 files changed, 273 insertions(+), 42 deletions(-) create mode 100644 include/osgGA/AnimationPathManipulator diff --git a/Make/makerules b/Make/makerules index 5c684d15f..5a525c395 100644 --- a/Make/makerules +++ b/Make/makerules @@ -137,8 +137,7 @@ Makedepend : $(CXXFILES) $(CFILES) ifeq ($(OS),IRIX) touch $@ else - echo HELLO... Dont forget to reset Makedpeend in makerules -# $(C++) $(INC) $(DEPARG) $^ > $(MAKEDEPEND) + $(C++) $(INC) $(DEPARG) $^ > $(MAKEDEPEND) endif diff --git a/dist/RPM/OpenSceneGraph.spec b/dist/RPM/OpenSceneGraph.spec index 4d7ea99b5..02ad69e16 100644 --- a/dist/RPM/OpenSceneGraph.spec +++ b/dist/RPM/OpenSceneGraph.spec @@ -1,11 +1,11 @@ Summary: A C++ scene graph API on OpenGL for real time graphics Name: OpenSceneGraph -Version: 0.8.44 +Version: 0.9.1 Release: 1 Copyright: LGPL Group: Graphics -Source: OpenSceneGraph-0.8.44.tar.gz +Source: OpenSceneGraph-0.9.1.tar.gz URL: http://www.openscenegraph.org Packager: Don Burns @@ -26,7 +26,7 @@ graphics rendering, protability, and extensibility %install -cd /usr/src/redhat/BUILD/OpenSceneGraph-0.8.44 +cd /usr/src/redhat/BUILD/OpenSceneGraph-0.9.1 tar cvf - . | tar xvfC - / # --------------------- @@ -34,7 +34,9 @@ tar cvf - . | tar xvfC - / %files %attr(755, root, root) /usr/local/lib/libosgDB.so +%attr(755, root, root) /usr/local/lib/libosgGA.so %attr(755, root, root) /usr/local/lib/libosgGLUT.so +%attr(755, root, root) /usr/local/lib/libosgParticle.so %attr(755, root, root) /usr/local/lib/libosg.so %attr(755, root, root) /usr/local/lib/libosgText.so %attr(755, root, root) /usr/local/lib/libosgUtil.so @@ -44,10 +46,14 @@ tar cvf - . | tar xvfC - / %attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_dx.so %attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_flt.so %attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_gif.so +%attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_iv.so %attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_jpeg.so +%attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_logo.so %attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_lwo.so %attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_obj.so +%attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_osgParticle.so %attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_osg.so +%attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_osgText.so %attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_osgtgz.so %attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_pfb.so %attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_pic.so @@ -59,18 +65,31 @@ tar cvf - . | tar xvfC - / %attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_txp.so %attr(755, root, root) /usr/local/lib/osgPlugins/osgdb_zip.so %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgbillboard +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgcallback +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgclip %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgcluster %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgconv %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgcopy %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgcube +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osggeometry %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osghangglide %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osghud %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgimpostor +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osglight +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgmultitexture +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgoccluder +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgparticle +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgprerender %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgreflect %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgscribe +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgsequence %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgstereoimage %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgtext %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgtexture +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgtexture1D +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgtexture2D +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgtexture3D +%attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgunittests %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgversion %attr(755, root, root) /usr/share/OpenSceneGraph/bin/osgviews %attr(755, root, root) /usr/share/OpenSceneGraph/bin/sgv diff --git a/dist/RPM/OpenSceneGraph_dev.spec b/dist/RPM/OpenSceneGraph_dev.spec index d921a4fc8..69f7043f8 100644 --- a/dist/RPM/OpenSceneGraph_dev.spec +++ b/dist/RPM/OpenSceneGraph_dev.spec @@ -1,11 +1,11 @@ Summary: A C++ scene graph API on OpenGL for real time graphics Name: OpenSceneGraph_dev -Version: 0.8.44 +Version: 0.9.1 Release: 1 Copyright: LGPL Group: Graphics -Source: OpenSceneGraph_dev-0.8.44.tar.gz +Source: OpenSceneGraph_dev-0.9.1.tar.gz URL: http://www.openscenegraph.org Packager: Don Burns @@ -26,7 +26,7 @@ graphics rendering, protability, and extensibility %install -cd /usr/src/redhat/BUILD/OpenSceneGraph_dev-0.8.44 +cd /usr/src/redhat/BUILD/OpenSceneGraph_dev-0.9.1 tar cvf - . | tar xvfC - / # --------------------- @@ -35,27 +35,37 @@ tar cvf - . | tar xvfC - / %attr(755, root, root) /usr/local/include/osg/AlphaFunc %attr(755, root, root) /usr/local/include/osg/AnimationPath +%attr(755, root, root) /usr/local/include/osg/Array %attr(755, root, root) /usr/local/include/osg/Billboard +%attr(755, root, root) /usr/local/include/osg/BlendFunc %attr(755, root, root) /usr/local/include/osg/BoundingBox %attr(755, root, root) /usr/local/include/osg/BoundingSphere %attr(755, root, root) /usr/local/include/osg/BoundsChecking %attr(755, root, root) /usr/local/include/osg/Camera -%attr(755, root, root) /usr/local/include/osg/ClippingVolume +%attr(755, root, root) /usr/local/include/osg/ClearNode +%attr(755, root, root) /usr/local/include/osg/ClipNode %attr(755, root, root) /usr/local/include/osg/ClipPlane +%attr(755, root, root) /usr/local/include/osg/CollectOccludersVisitor %attr(755, root, root) /usr/local/include/osg/ColorMask %attr(755, root, root) /usr/local/include/osg/ColorMatrix +%attr(755, root, root) /usr/local/include/osg/ConvexPlanarOccluder +%attr(755, root, root) /usr/local/include/osg/ConvexPlanarPolygon %attr(755, root, root) /usr/local/include/osg/CopyOp %attr(755, root, root) /usr/local/include/osg/CullFace +%attr(755, root, root) /usr/local/include/osg/CullingSet +%attr(755, root, root) /usr/local/include/osg/CullStack %attr(755, root, root) /usr/local/include/osg/Depth %attr(755, root, root) /usr/local/include/osg/DisplaySettings +%attr(755, root, root) /usr/local/include/osg/DOFTransform %attr(755, root, root) /usr/local/include/osg/Drawable %attr(755, root, root) /usr/local/include/osg/DrawPixels -%attr(755, root, root) /usr/local/include/osg/EarthSky %attr(755, root, root) /usr/local/include/osg/Export +%attr(755, root, root) /usr/local/include/osg/fast_back_stack %attr(755, root, root) /usr/local/include/osg/Fog %attr(755, root, root) /usr/local/include/osg/FrameStamp %attr(755, root, root) /usr/local/include/osg/FrontFace %attr(755, root, root) /usr/local/include/osg/Geode +%attr(755, root, root) /usr/local/include/osg/Geometry %attr(755, root, root) /usr/local/include/osg/GeoSet %attr(755, root, root) /usr/local/include/osg/GL %attr(755, root, root) /usr/local/include/osg/GLExtensions @@ -74,22 +84,28 @@ tar cvf - . | tar xvfC - / %attr(755, root, root) /usr/local/include/osg/Material %attr(755, root, root) /usr/local/include/osg/Math %attr(755, root, root) /usr/local/include/osg/Matrix +%attr(755, root, root) /usr/local/include/osg/MatrixTransform %attr(755, root, root) /usr/local/include/osg/MemoryManager %attr(755, root, root) /usr/local/include/osg/Node %attr(755, root, root) /usr/local/include/osg/NodeCallback %attr(755, root, root) /usr/local/include/osg/NodeVisitor %attr(755, root, root) /usr/local/include/osg/Notify %attr(755, root, root) /usr/local/include/osg/Object +%attr(755, root, root) /usr/local/include/osg/OccluderNode %attr(755, root, root) /usr/local/include/osg/Plane %attr(755, root, root) /usr/local/include/osg/Point %attr(755, root, root) /usr/local/include/osg/PolygonMode %attr(755, root, root) /usr/local/include/osg/PolygonOffset +%attr(755, root, root) /usr/local/include/osg/Polytope %attr(755, root, root) /usr/local/include/osg/PositionAttitudeTransform +%attr(755, root, root) /usr/local/include/osg/Primitive %attr(755, root, root) /usr/local/include/osg/Projection %attr(755, root, root) /usr/local/include/osg/Quat %attr(755, root, root) /usr/local/include/osg/Referenced %attr(755, root, root) /usr/local/include/osg/ref_ptr +%attr(755, root, root) /usr/local/include/osg/Sequence %attr(755, root, root) /usr/local/include/osg/ShadeModel +%attr(755, root, root) /usr/local/include/osg/ShadowVolumeOccluder %attr(755, root, root) /usr/local/include/osg/State %attr(755, root, root) /usr/local/include/osg/StateAttribute %attr(755, root, root) /usr/local/include/osg/StateSet @@ -97,14 +113,19 @@ tar cvf - . | tar xvfC - / %attr(755, root, root) /usr/local/include/osg/Stencil %attr(755, root, root) /usr/local/include/osg/Switch %attr(755, root, root) /usr/local/include/osg/TexEnv +%attr(755, root, root) /usr/local/include/osg/TexEnvCombine %attr(755, root, root) /usr/local/include/osg/TexGen %attr(755, root, root) /usr/local/include/osg/TexMat %attr(755, root, root) /usr/local/include/osg/Texture +%attr(755, root, root) /usr/local/include/osg/Texture1D +%attr(755, root, root) /usr/local/include/osg/Texture2D +%attr(755, root, root) /usr/local/include/osg/Texture3D %attr(755, root, root) /usr/local/include/osg/TextureCubeMap %attr(755, root, root) /usr/local/include/osg/Timer %attr(755, root, root) /usr/local/include/osg/Transform -%attr(755, root, root) /usr/local/include/osg/Transparency %attr(755, root, root) /usr/local/include/osg/Types +%attr(755, root, root) /usr/local/include/osg/UByte4 +%attr(755, root, root) /usr/local/include/osg/UnitTestFramework %attr(755, root, root) /usr/local/include/osg/Vec2 %attr(755, root, root) /usr/local/include/osg/Vec3 %attr(755, root, root) /usr/local/include/osg/Vec4 @@ -125,30 +146,64 @@ tar cvf - . | tar xvfC - / %attr(755, root, root) /usr/local/include/osgDB/Registry %attr(755, root, root) /usr/local/include/osgDB/Version %attr(755, root, root) /usr/local/include/osgDB/WriteFile +%attr(755, root, root) /usr/local/include/osgGA/CameraManipulator +%attr(755, root, root) /usr/local/include/osgGA/DriveManipulator +%attr(755, root, root) /usr/local/include/osgGA/Export +%attr(755, root, root) /usr/local/include/osgGA/FlightManipulator +%attr(755, root, root) /usr/local/include/osgGA/GUIActionAdapter +%attr(755, root, root) /usr/local/include/osgGA/GUIEventAdapter +%attr(755, root, root) /usr/local/include/osgGA/GUIEventHandler +%attr(755, root, root) /usr/local/include/osgGA/GUIEventHandlerVisitor +%attr(755, root, root) /usr/local/include/osgGA/KeySwitchCameraManipulator +%attr(755, root, root) /usr/local/include/osgGA/SetSceneViewVisitor +%attr(755, root, root) /usr/local/include/osgGA/StateSetManipulator +%attr(755, root, root) /usr/local/include/osgGA/TrackballManipulator +%attr(755, root, root) /usr/local/include/osgGA/Version %attr(755, root, root) /usr/local/include/osgGLUT/Export %attr(755, root, root) /usr/local/include/osgGLUT/glut %attr(755, root, root) /usr/local/include/osgGLUT/GLUTEventAdapter %attr(755, root, root) /usr/local/include/osgGLUT/Version %attr(755, root, root) /usr/local/include/osgGLUT/Viewer %attr(755, root, root) /usr/local/include/osgGLUT/Window +%attr(755, root, root) /usr/local/include/osgParticle/AccelOperator +%attr(755, root, root) /usr/local/include/osgParticle/CenteredPlacer +%attr(755, root, root) /usr/local/include/osgParticle/Counter +%attr(755, root, root) /usr/local/include/osgParticle/Emitter +%attr(755, root, root) /usr/local/include/osgParticle/Export +%attr(755, root, root) /usr/local/include/osgParticle/FluidFrictionOperator +%attr(755, root, root) /usr/local/include/osgParticle/ForceOperator +%attr(755, root, root) /usr/local/include/osgParticle/Interpolator +%attr(755, root, root) /usr/local/include/osgParticle/LinearInterpolator +%attr(755, root, root) /usr/local/include/osgParticle/ModularEmitter +%attr(755, root, root) /usr/local/include/osgParticle/ModularProgram +%attr(755, root, root) /usr/local/include/osgParticle/MultiSegmentPlacer +%attr(755, root, root) /usr/local/include/osgParticle/Operator +%attr(755, root, root) /usr/local/include/osgParticle/Particle +%attr(755, root, root) /usr/local/include/osgParticle/ParticleProcessor +%attr(755, root, root) /usr/local/include/osgParticle/ParticleSystem +%attr(755, root, root) /usr/local/include/osgParticle/ParticleSystemUpdater +%attr(755, root, root) /usr/local/include/osgParticle/Placer +%attr(755, root, root) /usr/local/include/osgParticle/PointPlacer +%attr(755, root, root) /usr/local/include/osgParticle/Program +%attr(755, root, root) /usr/local/include/osgParticle/RadialShooter +%attr(755, root, root) /usr/local/include/osgParticle/RandomRateCounter +%attr(755, root, root) /usr/local/include/osgParticle/range +%attr(755, root, root) /usr/local/include/osgParticle/SectorPlacer +%attr(755, root, root) /usr/local/include/osgParticle/SegmentPlacer +%attr(755, root, root) /usr/local/include/osgParticle/Shooter +%attr(755, root, root) /usr/local/include/osgParticle/VariableRateCounter +%attr(755, root, root) /usr/local/include/osgParticle/Version %attr(755, root, root) /usr/local/include/osgText/Export %attr(755, root, root) /usr/local/include/osgText/Font %attr(755, root, root) /usr/local/include/osgText/Paragraph %attr(755, root, root) /usr/local/include/osgText/Text %attr(755, root, root) /usr/local/include/osgText/Version %attr(755, root, root) /usr/local/include/osgUtil/AppVisitor -%attr(755, root, root) /usr/local/include/osgUtil/CameraManipulator -%attr(755, root, root) /usr/local/include/osgUtil/CullViewState %attr(755, root, root) /usr/local/include/osgUtil/CullVisitor %attr(755, root, root) /usr/local/include/osgUtil/DepthSortedBin %attr(755, root, root) /usr/local/include/osgUtil/DisplayListVisitor %attr(755, root, root) /usr/local/include/osgUtil/DisplayRequirementsVisitor -%attr(755, root, root) /usr/local/include/osgUtil/DriveManipulator %attr(755, root, root) /usr/local/include/osgUtil/Export -%attr(755, root, root) /usr/local/include/osgUtil/FlightManipulator -%attr(755, root, root) /usr/local/include/osgUtil/GUIActionAdapter -%attr(755, root, root) /usr/local/include/osgUtil/GUIEventAdapter -%attr(755, root, root) /usr/local/include/osgUtil/GUIEventHandler %attr(755, root, root) /usr/local/include/osgUtil/InsertImpostorsVisitor %attr(755, root, root) /usr/local/include/osgUtil/IntersectVisitor %attr(755, root, root) /usr/local/include/osgUtil/Optimizer @@ -159,29 +214,17 @@ tar cvf - . | tar xvfC - / %attr(755, root, root) /usr/local/include/osgUtil/RenderStageLighting %attr(755, root, root) /usr/local/include/osgUtil/RenderToTextureStage %attr(755, root, root) /usr/local/include/osgUtil/SceneView -%attr(755, root, root) /usr/local/include/osgUtil/SceneViewManipulator %attr(755, root, root) /usr/local/include/osgUtil/SmoothingVisitor -%attr(755, root, root) /usr/local/include/osgUtil/StateSetManipulator %attr(755, root, root) /usr/local/include/osgUtil/Tesselator -%attr(755, root, root) /usr/local/include/osgUtil/TrackballManipulator %attr(755, root, root) /usr/local/include/osgUtil/TransformCallback %attr(755, root, root) /usr/local/include/osgUtil/TriStripVisitor %attr(755, root, root) /usr/local/include/osgUtil/Version -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/base.cpp -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/GliderManipulator.cpp -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/GliderManipulator.h -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/hangglide.cpp -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/hat.cpp -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/hat.h -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/Makefile -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/ReaderWriterFLY.cpp -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/sky.cpp -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/tank.cpp -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/terrain.cpp -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/terrain_data.h -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/hangglide/trees.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgbillboard/Makefile %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgbillboard/osgbillboard.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgcallback/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgcallback/osgcallback.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgclip/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgclip/osgclip.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgcluster/broadcaster.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgcluster/broadcaster.h %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgcluster/Makefile @@ -196,20 +239,55 @@ tar cvf - . | tar xvfC - / %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgcopy/osgcopy.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgcube/Makefile %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgcube/osgcube.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osggeometry/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osggeometry/osggeometry.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/base.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/GliderManipulator.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/GliderManipulator.h +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/hat.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/hat.h +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/osghangglide.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/ReaderWriterFLY.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/sky.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/tank.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/terrain_coords.h +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/terrain.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/terrain_normals.h +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/terrain_texcoords.h +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghangglide/trees.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghud/Makefile %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osghud/osghud.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgimpostor/Makefile %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgimpostor/osgimpostor.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osglight/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osglight/osglight.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgmultitexture/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgmultitexture/osgmultitexture.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgoccluder/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgoccluder/osgoccluder.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgparticle/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgparticle/osgparticle.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgprerender/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgprerender/osgprerender.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgreflect/Makefile %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgreflect/osgreflect.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgscribe/Makefile %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgscribe/osgscribe.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgsequence/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgsequence/osgsequence.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgstereoimage/Makefile %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgstereoimage/osgstereoimage.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgtext/main.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgtext/Makefile -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgtexture/Makefile -%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgtexture/osgtexture.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgtexture1D/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgtexture1D/osgtexture1D.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgtexture2D/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgtexture2D/osgtexture2D.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgtexture3D/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgtexture3D/osgtexture3D.cpp +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgunittests/Makefile +%attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgunittests/osgunittests.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgversion/Makefile %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgversion/osgversion.cpp %attr(755, root, root) /usr/share/OpenSceneGraph/src/demos/osgviews/Makefile diff --git a/include/osgGA/AnimationPathManipulator b/include/osgGA/AnimationPathManipulator new file mode 100644 index 000000000..e98859e33 --- /dev/null +++ b/include/osgGA/AnimationPathManipulator @@ -0,0 +1,111 @@ +//C++ header - Open Scene Graph - Copyright (C) 1998-2002 Robert Osfield +//Distributed under the terms of the GNU Library General Public License (LGPL) +//as published by the Free Software Foundation. + +#ifndef OSGGA_ANIMATION_PATH_MANIPULATOR +#define OSGGA_ANIMATION_PATH_MANIPULATOR 1 + +#include +#include +#include + +namespace osgGA{ + +// +// The AnimationPathManipulator is a Camera Manipulator that reads an +// animation path from a file and plays it back. The file is expected +// to be ascii and a succession of lines with 8 floating point values +// per line. The succession of values are: +// time px py pz ax ay az aw +// where: +// time = elapsed time in seconds from the begining of the animation +// px py pz = World position in catesian coordinates +// ax ay az aw = Orientation (attitude) defined as a quaternion + +class AnimationPathManipulator : public osgGA::CameraManipulator +{ + public: + AnimationPathManipulator( std::string filename ) + { + _animationPath = new osg::AnimationPath; + _animationPath->setLoopMode(osg::AnimationPath::LOOP); + + filebuf fb; + fb.open( filename.c_str(),"r"); + if( !fb.is_open() ) + { + osg::notify(osg::WARN) << "AnimationPathManipulator: Cannot open animation path file \"" << filename << "\".\n"; + _valid = false; + return; + } + istream in(&fb); + while( !in.eof() ) + { + double time; + osg::Vec3 position; + osg::Quat rotation; + in >> time; + in >> position[0]; in >> position[1]; in >> position[2]; + in >> rotation[0]; in >> rotation[1]; in >> rotation[2]; in >> rotation[3]; + + if( !in.eof() ) + _animationPath->insert(time,osg::AnimationPath::ControlPoint(position,rotation)); + } + fb.close(); + _valid = true; + } + + bool valid() { return _valid; } + + virtual bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& us) + { + if( !_valid ) return false; + + us = us; + + bool retval = false; + switch( ea.getEventType() ) + { + case GUIEventAdapter::FRAME: + handleFrame( ea.time() ); + + break; + case GUIEventAdapter::KEYBOARD: + switch( ea.getKey()) + { + default: + retval = false; + } + break; + } + return retval; + } + private: + + bool _valid; + + void handleFrame( double time ) + { + osg::AnimationPath::ControlPoint cp; + _animationPath->getInterpolatedControlPoint( time, cp ); + + osg::Matrix mat; + cp.getMatrix( mat ); + + osg::Vec3 eye(mat(3,0), mat(3,1), mat(3,2)); + mat(3,0) = 0.0; + mat(3,1) = 0.0; + mat(3,2) = 0.0; + osg::Vec3 look = eye + (osg::Vec3(0,1,0) * mat); + osg::Vec3 up = osg::Vec3(0,0,1) * mat; + if( _camera.valid() ) + _camera->setView( eye, look, up ); + } + + osg::AnimationPath *_animationPath; + +}; + +} + +#endif diff --git a/src/Demos/sgv/sgv.cpp b/src/Demos/sgv/sgv.cpp index 31586b26b..f09ef9df1 100644 --- a/src/Demos/sgv/sgv.cpp +++ b/src/Demos/sgv/sgv.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -11,6 +12,7 @@ #include #include #include +#include #include @@ -78,12 +80,16 @@ void write_usage(std::ostream& out,const std::string& name) out <<" also allows the depth complexity statistics mode"<< std::endl; out <<" to be used (press 'p' three times to cycle to it)."<< std::endl; out <<" -f - start with a full screen, borderless window." << std::endl; + out <<" -p pathfile - Use the AnimationPathManipulator (key binding '4') and use\n" + " pathfile to define the animation path. pathfile is an ascii\n" + " file containing lines of eight floating point numbers representing\n" + " time, position (x,y,z) and attitude (x,y,z,w as a quaternion)." << std::endl; out << std::endl; } - int main( int argc, char **argv ) { + std::string pathfile; // initialize the GLUT glutInit( &argc, argv ); @@ -91,13 +97,23 @@ int main( int argc, char **argv ) if (argc<2) { write_usage(std::cout,argv[0]); - return 0; + return 1; } // create the commandline args. std::vector commandLine; - for(int i=1;i= argc ) { + write_usage( std::cout, argv[0]); + return 1; + } + else + pathfile = std::string(argv[++i]); + } + else + commandLine.push_back(argv[i]); + } // initialize the viewer. osgGLUT::Viewer viewer; @@ -115,7 +131,7 @@ int main( int argc, char **argv ) osg::Node* rootnode = osgDB::readNodeFiles(commandLine); if (!rootnode) { -// write_usage(osg::notify(osg::NOTICE),argv[0]); + write_usage(osg::notify(osg::NOTICE),argv[0]); return 1; } @@ -130,6 +146,14 @@ int main( int argc, char **argv ) viewer.registerCameraManipulator(new osgGA::TrackballManipulator); viewer.registerCameraManipulator(new osgGA::FlightManipulator); viewer.registerCameraManipulator(new osgGA::DriveManipulator); + + if( !pathfile.empty() ) { + osgGA::AnimationPathManipulator *apm = new osgGA::AnimationPathManipulator(pathfile); + if( apm->valid() ) + viewer.registerCameraManipulator(apm); + else + delete apm; + } // osgUtil::RenderBin* depth_renderbin = osgUtil::RenderBin::getRenderBinPrototype("DepthSortedBin"); // if (depth_renderbin) diff --git a/src/osgGLUT/Viewer.cpp b/src/osgGLUT/Viewer.cpp index 702edab4e..819b68498 100644 --- a/src/osgGLUT/Viewer.cpp +++ b/src/osgGLUT/Viewer.cpp @@ -909,7 +909,7 @@ void Viewer::keyboard(unsigned char key, int x, int y) return; } - if (key>='1' && key<='3') + if (key>='1' && key<='4') { int pos = key-'1'; selectCameraManipulator(pos);