From 2cc5e776b335e2d18573270bbe9ded1f834ea3d1 Mon Sep 17 00:00:00 2001 From: Mathias Froehlich Date: Sat, 3 Mar 2012 13:32:49 +0100 Subject: [PATCH] math: Remove SGMath osg dependency. Move osg dependent stuff from SGMath into simgear/scene/util/OsgMath.hxx. Update includes in simgear to reflect this change. Note that this change also requires an updated flightgear version. --- simgear/math/CMakeLists.txt | 5 +- simgear/math/SGGeod.cxx | 59 ------- simgear/math/SGGeod.hxx | 17 -- simgear/math/SGIntersect.hxx | 2 + simgear/math/SGQuat.hxx | 16 -- simgear/math/SGVec2.hxx | 28 ---- simgear/math/SGVec3.hxx | 27 ---- simgear/math/SGVec4.hxx | 27 ---- simgear/scene/material/Effect.cxx | 1 + simgear/scene/material/TextureBuilder.cxx | 2 +- .../scene/model/SGInteractionAnimation.cxx | 1 + simgear/scene/model/SGMaterialAnimation.cxx | 1 + simgear/scene/model/SGRotateTransform.cxx | 2 + simgear/scene/model/SGScaleTransform.cxx | 2 + simgear/scene/model/SGTranslateTransform.cxx | 2 + simgear/scene/model/animation.cxx | 1 + simgear/scene/model/particles.cxx | 4 +- simgear/scene/model/placement.cxx | 1 + simgear/scene/sky/cloud.cxx | 1 + simgear/scene/sky/dome.cxx | 2 +- simgear/scene/sky/sky.cxx | 1 + simgear/scene/tgdb/ReaderWriterSPT.cxx | 2 + simgear/scene/tgdb/SGTexturedTriangleBin.hxx | 2 +- simgear/scene/tgdb/SGVasiDrawable.cxx | 2 + simgear/scene/tgdb/TileEntry.cxx | 4 +- simgear/scene/tgdb/TreeBin.hxx | 2 +- simgear/scene/tgdb/pt_lights.cxx | 1 + simgear/scene/util/CMakeLists.txt | 1 + simgear/scene/util/OsgMath.hxx | 145 ++++++++++++++++++ simgear/scene/util/SGUpdateVisitor.hxx | 2 +- 30 files changed, 177 insertions(+), 186 deletions(-) delete mode 100644 simgear/math/SGGeod.cxx create mode 100644 simgear/scene/util/OsgMath.hxx diff --git a/simgear/math/CMakeLists.txt b/simgear/math/CMakeLists.txt index ef71ed50..f66ec15a 100644 --- a/simgear/math/CMakeLists.txt +++ b/simgear/math/CMakeLists.txt @@ -29,15 +29,14 @@ set(HEADERS leastsqs.hxx sg_geodesy.hxx sg_types.hxx - sg_random.h + sg_random.h ) set(SOURCES - SGGeod.cxx SGGeodesy.cxx interpolater.cxx leastsqs.cxx - sg_random.c + sg_random.c ) simgear_component(math math "${SOURCES}" "${HEADERS}") diff --git a/simgear/math/SGGeod.cxx b/simgear/math/SGGeod.cxx deleted file mode 100644 index 20fa1938..00000000 --- a/simgear/math/SGGeod.cxx +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (C) 2008 Tim Moore timoore@redhat.com -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -// - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include "SGMath.hxx" - -#ifndef NO_OPENSCENEGRAPH_INTERFACE - -osg::Matrix SGGeod::makeSimulationFrameRelative() const -{ - SGQuatd hlOr = SGQuatd::fromLonLat(*this); - return osg::Matrix(toOsg(hlOr)); -} - -osg::Matrix SGGeod::makeSimulationFrame() const -{ - osg::Matrix result(makeSimulationFrameRelative()); - SGVec3d coord; - SGGeodesy::SGGeodToCart(*this, coord); - result.setTrans(toOsg(coord)); - return result; -} - -osg::Matrix SGGeod::makeZUpFrameRelative() const -{ - osg::Matrix result(makeSimulationFrameRelative()); - // 180 degree rotation around Y axis - osg::Quat flip(0.0, 1.0, 0.0, 0.0); - result.preMult(osg::Matrix(flip)); - return result; -} - -osg::Matrix SGGeod::makeZUpFrame() const -{ - osg::Matrix result(makeZUpFrameRelative()); - SGVec3d coord; - SGGeodesy::SGGeodToCart(*this, coord); - result.setTrans(toOsg(coord)); - return result; -} - -#endif diff --git a/simgear/math/SGGeod.hxx b/simgear/math/SGGeod.hxx index a7153334..9a9ab146 100644 --- a/simgear/math/SGGeod.hxx +++ b/simgear/math/SGGeod.hxx @@ -20,10 +20,6 @@ #include -#ifndef NO_OPENSCENEGRAPH_INTERFACE -#include -#endif - // #define SG_GEOD_NATIVE_DEGREE /// Class representing a geodetic location @@ -89,19 +85,6 @@ public: // Compare two geodetic positions for equality bool operator == ( const SGGeod & other ) const; -#ifndef NO_OPENSCENEGRAPH_INTERFACE - // Create a local coordinate frame in the earth-centered frame of - // reference. X points north, Z points down. - // makeSimulationFrameRelative() only includes rotation. - osg::Matrix makeSimulationFrameRelative() const; - osg::Matrix makeSimulationFrame() const; - - // Create a Z-up local coordinate frame in the earth-centered frame - // of reference. This is what scenery models, etc. expect. - // makeZUpFrameRelative() only includes rotation. - osg::Matrix makeZUpFrameRelative() const; - osg::Matrix makeZUpFrame() const; -#endif private: /// This one is private since construction is not unique if you do /// not know the units of the arguments. Use the factory methods for diff --git a/simgear/math/SGIntersect.hxx b/simgear/math/SGIntersect.hxx index 24741f64..0fd2596b 100644 --- a/simgear/math/SGIntersect.hxx +++ b/simgear/math/SGIntersect.hxx @@ -18,6 +18,8 @@ #ifndef SGIntersect_HXX #define SGIntersect_HXX +#include + template inline bool intersects(const SGSphere& s1, const SGSphere& s2) diff --git a/simgear/math/SGQuat.hxx b/simgear/math/SGQuat.hxx index 9449c914..2ac0ad22 100644 --- a/simgear/math/SGQuat.hxx +++ b/simgear/math/SGQuat.hxx @@ -26,10 +26,6 @@ #undef max #endif -#ifndef NO_OPENSCENEGRAPH_INTERFACE -#include -#endif - /// Quaternion Class template class SGQuat { @@ -780,16 +776,4 @@ SGQuatd toQuatd(const SGQuatf& v) { return SGQuatd(v(0), v(1), v(2), v(3)); } -#ifndef NO_OPENSCENEGRAPH_INTERFACE -inline -SGQuatd -toSG(const osg::Quat& q) -{ return SGQuatd(q[0], q[1], q[2], q[3]); } - -inline -osg::Quat -toOsg(const SGQuatd& q) -{ return osg::Quat(q[0], q[1], q[2], q[3]); } -#endif - #endif diff --git a/simgear/math/SGVec2.hxx b/simgear/math/SGVec2.hxx index 2a405641..68e74c17 100644 --- a/simgear/math/SGVec2.hxx +++ b/simgear/math/SGVec2.hxx @@ -18,11 +18,6 @@ #ifndef SGVec2_H #define SGVec2_H -#ifndef NO_OPENSCENEGRAPH_INTERFACE -#include -#include -#endif - /// 2D Vector Class template class SGVec2 { @@ -371,27 +366,4 @@ SGVec2d toVec2d(const SGVec2f& v) { return SGVec2d(v(0), v(1)); } -#ifndef NO_OPENSCENEGRAPH_INTERFACE -inline -SGVec2d -toSG(const osg::Vec2d& v) -{ return SGVec2d(v[0], v[1]); } - -inline -SGVec2f -toSG(const osg::Vec2f& v) -{ return SGVec2f(v[0], v[1]); } - -inline -osg::Vec2d -toOsg(const SGVec2d& v) -{ return osg::Vec2d(v[0], v[1]); } - -inline -osg::Vec2f -toOsg(const SGVec2f& v) -{ return osg::Vec2f(v[0], v[1]); } - -#endif - #endif diff --git a/simgear/math/SGVec3.hxx b/simgear/math/SGVec3.hxx index c85b418e..56775d3e 100644 --- a/simgear/math/SGVec3.hxx +++ b/simgear/math/SGVec3.hxx @@ -18,11 +18,6 @@ #ifndef SGVec3_H #define SGVec3_H -#ifndef NO_OPENSCENEGRAPH_INTERFACE -#include -#include -#endif - /// 3D Vector Class template class SGVec3 { @@ -505,26 +500,4 @@ SGVec3d toVec3d(const SGVec3f& v) { return SGVec3d(v(0), v(1), v(2)); } -#ifndef NO_OPENSCENEGRAPH_INTERFACE -inline -SGVec3d -toSG(const osg::Vec3d& v) -{ return SGVec3d(v[0], v[1], v[2]); } - -inline -SGVec3f -toSG(const osg::Vec3f& v) -{ return SGVec3f(v[0], v[1], v[2]); } - -inline -osg::Vec3d -toOsg(const SGVec3d& v) -{ return osg::Vec3d(v[0], v[1], v[2]); } - -inline -osg::Vec3f -toOsg(const SGVec3f& v) -{ return osg::Vec3f(v[0], v[1], v[2]); } -#endif - #endif diff --git a/simgear/math/SGVec4.hxx b/simgear/math/SGVec4.hxx index 6030c48b..6e42d957 100644 --- a/simgear/math/SGVec4.hxx +++ b/simgear/math/SGVec4.hxx @@ -18,11 +18,6 @@ #ifndef SGVec4_H #define SGVec4_H -#ifndef NO_OPENSCENEGRAPH_INTERFACE -#include -#include -#endif - /// 4D Vector Class template class SGVec4 { @@ -428,26 +423,4 @@ SGVec4d toVec4d(const SGVec4f& v) { return SGVec4d(v(0), v(1), v(2), v(3)); } -#ifndef NO_OPENSCENEGRAPH_INTERFACE -inline -SGVec4d -toSG(const osg::Vec4d& v) -{ return SGVec4d(v[0], v[1], v[2], v[3]); } - -inline -SGVec4f -toSG(const osg::Vec4f& v) -{ return SGVec4f(v[0], v[1], v[2], v[3]); } - -inline -osg::Vec4d -toOsg(const SGVec4d& v) -{ return osg::Vec4d(v[0], v[1], v[2], v[3]); } - -inline -osg::Vec4f -toOsg(const SGVec4f& v) -{ return osg::Vec4f(v[0], v[1], v[2], v[3]); } -#endif - #endif diff --git a/simgear/scene/material/Effect.cxx b/simgear/scene/material/Effect.cxx index c021b98e..9ca2acee 100644 --- a/simgear/scene/material/Effect.cxx +++ b/simgear/scene/material/Effect.cxx @@ -69,6 +69,7 @@ #include #include +#include #include #include #include diff --git a/simgear/scene/material/TextureBuilder.cxx b/simgear/scene/material/TextureBuilder.cxx index 75bd08c5..d191ef33 100644 --- a/simgear/scene/material/TextureBuilder.cxx +++ b/simgear/scene/material/TextureBuilder.cxx @@ -38,10 +38,10 @@ #include #include +#include #include #include #include -#include #include #include "Noise.hxx" diff --git a/simgear/scene/model/SGInteractionAnimation.cxx b/simgear/scene/model/SGInteractionAnimation.cxx index 9e7987e9..171f4939 100644 --- a/simgear/scene/model/SGInteractionAnimation.cxx +++ b/simgear/scene/model/SGInteractionAnimation.cxx @@ -26,6 +26,7 @@ #include #include +#include #include #include #include diff --git a/simgear/scene/model/SGMaterialAnimation.cxx b/simgear/scene/model/SGMaterialAnimation.cxx index 6b5887a1..07bfe6c7 100644 --- a/simgear/scene/model/SGMaterialAnimation.cxx +++ b/simgear/scene/model/SGMaterialAnimation.cxx @@ -28,6 +28,7 @@ #include #include #include +#include using namespace std; using namespace simgear; diff --git a/simgear/scene/model/SGRotateTransform.cxx b/simgear/scene/model/SGRotateTransform.cxx index d5474839..4f2a4227 100644 --- a/simgear/scene/model/SGRotateTransform.cxx +++ b/simgear/scene/model/SGRotateTransform.cxx @@ -27,6 +27,8 @@ #include #include +#include + #include "SGRotateTransform.hxx" static void diff --git a/simgear/scene/model/SGScaleTransform.cxx b/simgear/scene/model/SGScaleTransform.cxx index 7b485590..0fe7443d 100644 --- a/simgear/scene/model/SGScaleTransform.cxx +++ b/simgear/scene/model/SGScaleTransform.cxx @@ -27,6 +27,8 @@ #include #include +#include + #include "SGScaleTransform.hxx" SGScaleTransform::SGScaleTransform() : diff --git a/simgear/scene/model/SGTranslateTransform.cxx b/simgear/scene/model/SGTranslateTransform.cxx index 182c30bf..9f148b64 100644 --- a/simgear/scene/model/SGTranslateTransform.cxx +++ b/simgear/scene/model/SGTranslateTransform.cxx @@ -27,6 +27,8 @@ #include #include +#include + #include "SGTranslateTransform.hxx" SGTranslateTransform::SGTranslateTransform() : diff --git a/simgear/scene/model/animation.cxx b/simgear/scene/model/animation.cxx index fa9b44e1..110240b9 100644 --- a/simgear/scene/model/animation.cxx +++ b/simgear/scene/model/animation.cxx @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include diff --git a/simgear/scene/model/particles.cxx b/simgear/scene/model/particles.cxx index acac7dfc..4d1ebc04 100644 --- a/simgear/scene/model/particles.cxx +++ b/simgear/scene/model/particles.cxx @@ -22,10 +22,10 @@ #endif #include -#include #include #include #include +#include #include #include @@ -558,7 +558,7 @@ void Particles::operator()(osg::Node* node, osg::NodeVisitor* nv) // Make new frame for particle system, coincident with // the emitter frame, but oriented with local Z. SGGeod geod = SGGeod::fromCart(toSG(emitOrigin)); - Matrix newParticleMat = geod.makeZUpFrame(); + Matrix newParticleMat = makeZUpFrame(geod); Matrix changeParticleFrame = particleMat * Matrix::inverse(newParticleMat); particleFrame->setMatrix(newParticleMat); diff --git a/simgear/scene/model/placement.cxx b/simgear/scene/model/placement.cxx index 8d2ab9f2..e1c5a0a5 100644 --- a/simgear/scene/model/placement.cxx +++ b/simgear/scene/model/placement.cxx @@ -10,6 +10,7 @@ #include "placement.hxx" #include +#include #include diff --git a/simgear/scene/sky/cloud.cxx b/simgear/scene/sky/cloud.cxx index 228f0a8c..5bdf91d7 100644 --- a/simgear/scene/sky/cloud.cxx +++ b/simgear/scene/sky/cloud.cxx @@ -52,6 +52,7 @@ #include #include #include +#include #include #include diff --git a/simgear/scene/sky/dome.cxx b/simgear/scene/sky/dome.cxx index 53018f02..913712cb 100644 --- a/simgear/scene/sky/dome.cxx +++ b/simgear/scene/sky/dome.cxx @@ -40,7 +40,7 @@ #include #include -#include +#include #include #include #include diff --git a/simgear/scene/sky/sky.cxx b/simgear/scene/sky/sky.cxx index 84c446e3..4c3a4e2b 100644 --- a/simgear/scene/sky/sky.cxx +++ b/simgear/scene/sky/sky.cxx @@ -31,6 +31,7 @@ #include #include +#include #include #include diff --git a/simgear/scene/tgdb/ReaderWriterSPT.cxx b/simgear/scene/tgdb/ReaderWriterSPT.cxx index 02c3e142..f2c88ecf 100644 --- a/simgear/scene/tgdb/ReaderWriterSPT.cxx +++ b/simgear/scene/tgdb/ReaderWriterSPT.cxx @@ -32,6 +32,8 @@ #include #include +#include + #include "BucketBox.hxx" namespace simgear { diff --git a/simgear/scene/tgdb/SGTexturedTriangleBin.hxx b/simgear/scene/tgdb/SGTexturedTriangleBin.hxx index 9c6d6ab7..5de1b5cc 100644 --- a/simgear/scene/tgdb/SGTexturedTriangleBin.hxx +++ b/simgear/scene/tgdb/SGTexturedTriangleBin.hxx @@ -29,7 +29,7 @@ #include #include -#include +#include #include "SGTriangleBin.hxx" diff --git a/simgear/scene/tgdb/SGVasiDrawable.cxx b/simgear/scene/tgdb/SGVasiDrawable.cxx index bc9b662c..bb3ce0e4 100644 --- a/simgear/scene/tgdb/SGVasiDrawable.cxx +++ b/simgear/scene/tgdb/SGVasiDrawable.cxx @@ -27,6 +27,8 @@ #include "SGVasiDrawable.hxx" +#include + struct SGVasiDrawable::LightData { LightData(const SGVec3f& p, const SGVec3f& n, const SGVec3f& up) : position(p), diff --git a/simgear/scene/tgdb/TileEntry.cxx b/simgear/scene/tgdb/TileEntry.cxx index dddba984..f196c7dd 100644 --- a/simgear/scene/tgdb/TileEntry.cxx +++ b/simgear/scene/tgdb/TileEntry.cxx @@ -42,13 +42,13 @@ #include #include #include -#include #include #include #include #include #include #include +#include #include #include "ReaderWriterSPT.hxx" @@ -111,7 +111,7 @@ static void WorldCoordinate(osg::Matrix& obj_pos, double lat, double lon, double elev, double hdg) { SGGeod geod = SGGeod::fromDegM(lon, lat, elev); - obj_pos = geod.makeZUpFrame(); + obj_pos = makeZUpFrame(geod); // hdg is not a compass heading, but a counter-clockwise rotation // around the Z axis obj_pos.preMult(osg::Matrix::rotate(hdg * SGD_DEGREES_TO_RADIANS, diff --git a/simgear/scene/tgdb/TreeBin.hxx b/simgear/scene/tgdb/TreeBin.hxx index 254c8812..d49e2fbe 100644 --- a/simgear/scene/tgdb/TreeBin.hxx +++ b/simgear/scene/tgdb/TreeBin.hxx @@ -29,7 +29,7 @@ #include #include -#include +#include namespace simgear { diff --git a/simgear/scene/tgdb/pt_lights.cxx b/simgear/scene/tgdb/pt_lights.cxx index d07a805f..59003fcb 100644 --- a/simgear/scene/tgdb/pt_lights.cxx +++ b/simgear/scene/tgdb/pt_lights.cxx @@ -60,6 +60,7 @@ #include #include #include +#include #include #include diff --git a/simgear/scene/util/CMakeLists.txt b/simgear/scene/util/CMakeLists.txt index f04b77c4..1b833484 100644 --- a/simgear/scene/util/CMakeLists.txt +++ b/simgear/scene/util/CMakeLists.txt @@ -3,6 +3,7 @@ include (SimGearComponent) set(HEADERS CopyOp.hxx NodeAndDrawableVisitor.hxx + OsgMath.hxx PrimitiveUtils.hxx QuadTreeBuilder.hxx RenderConstants.hxx diff --git a/simgear/scene/util/OsgMath.hxx b/simgear/scene/util/OsgMath.hxx new file mode 100644 index 00000000..46d56cf5 --- /dev/null +++ b/simgear/scene/util/OsgMath.hxx @@ -0,0 +1,145 @@ +// Copyright (C) 2006-2009 Mathias Froehlich - Mathias.Froehlich@web.de +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Library General Public +// License as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Library General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// + +#ifndef SIMGEAR_SCENE_UTILS_OSGMATH_HXX +#define SIMGEAR_SCENE_UTILS_OSGMATH_HXX + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +inline +SGVec2d +toSG(const osg::Vec2d& v) +{ return SGVec2d(v[0], v[1]); } + +inline +SGVec2f +toSG(const osg::Vec2f& v) +{ return SGVec2f(v[0], v[1]); } + +inline +osg::Vec2d +toOsg(const SGVec2d& v) +{ return osg::Vec2d(v[0], v[1]); } + +inline +osg::Vec2f +toOsg(const SGVec2f& v) +{ return osg::Vec2f(v[0], v[1]); } + +inline +SGVec3d +toSG(const osg::Vec3d& v) +{ return SGVec3d(v[0], v[1], v[2]); } + +inline +SGVec3f +toSG(const osg::Vec3f& v) +{ return SGVec3f(v[0], v[1], v[2]); } + +inline +osg::Vec3d +toOsg(const SGVec3d& v) +{ return osg::Vec3d(v[0], v[1], v[2]); } + +inline +osg::Vec3f +toOsg(const SGVec3f& v) +{ return osg::Vec3f(v[0], v[1], v[2]); } + +inline +SGVec4d +toSG(const osg::Vec4d& v) +{ return SGVec4d(v[0], v[1], v[2], v[3]); } + +inline +SGVec4f +toSG(const osg::Vec4f& v) +{ return SGVec4f(v[0], v[1], v[2], v[3]); } + +inline +osg::Vec4d +toOsg(const SGVec4d& v) +{ return osg::Vec4d(v[0], v[1], v[2], v[3]); } + +inline +osg::Vec4f +toOsg(const SGVec4f& v) +{ return osg::Vec4f(v[0], v[1], v[2], v[3]); } + +inline +SGQuatd +toSG(const osg::Quat& q) +{ return SGQuatd(q[0], q[1], q[2], q[3]); } + +inline +osg::Quat +toOsg(const SGQuatd& q) +{ return osg::Quat(q[0], q[1], q[2], q[3]); } + +// Create a local coordinate frame in the earth-centered frame of +// reference. X points north, Z points down. +// makeSimulationFrameRelative() only includes rotation. +inline +osg::Matrix +makeSimulationFrameRelative(const SGGeod& geod) +{ return osg::Matrix(toOsg(SGQuatd::fromLonLat(geod))); } + +inline +osg::Matrix +makeSimulationFrame(const SGGeod& geod) +{ + osg::Matrix result(makeSimulationFrameRelative(geod)); + SGVec3d coord; + SGGeodesy::SGGeodToCart(geod, coord); + result.setTrans(toOsg(coord)); + return result; +} + +// Create a Z-up local coordinate frame in the earth-centered frame +// of reference. This is what scenery models, etc. expect. +// makeZUpFrameRelative() only includes rotation. +inline +osg::Matrix +makeZUpFrameRelative(const SGGeod& geod) +{ + osg::Matrix result(makeSimulationFrameRelative(geod)); + // 180 degree rotation around Y axis + result.preMultRotate(osg::Quat(0.0, 1.0, 0.0, 0.0)); + return result; +} + +inline +osg::Matrix +makeZUpFrame(const SGGeod& geod) +{ + osg::Matrix result(makeZUpFrameRelative(geod)); + SGVec3d coord; + SGGeodesy::SGGeodToCart(geod, coord); + result.setTrans(toOsg(coord)); + return result; +} + +#endif diff --git a/simgear/scene/util/SGUpdateVisitor.hxx b/simgear/scene/util/SGUpdateVisitor.hxx index 251459a7..8f16a270 100644 --- a/simgear/scene/util/SGUpdateVisitor.hxx +++ b/simgear/scene/util/SGUpdateVisitor.hxx @@ -26,7 +26,7 @@ #include #include -#include "simgear/math/SGMath.hxx" +#include "OsgMath.hxx" class SGUpdateVisitor : public osgUtil::UpdateVisitor { public: