diff --git a/SimGear.dsp b/SimGear.dsp
index 9864af72..e79cc932 100644
--- a/SimGear.dsp
+++ b/SimGear.dsp
@@ -1334,21 +1334,6 @@ SOURCE=.\simgear\scene\model\placement.cxx
# End Source File
# Begin Source File
-SOURCE=.\simgear\scene\model\placementtrans.cxx
-
-!IF "$(CFG)" == "SimGear - Win32 Release"
-
-# PROP Intermediate_Dir "Release\Lib_sgmodel"
-
-!ELSEIF "$(CFG)" == "SimGear - Win32 Debug"
-
-# PROP Intermediate_Dir "Debug\Lib_sgmodel"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
SOURCE=.\simgear\scene\model\shadanim.cxx
!IF "$(CFG)" == "SimGear - Win32 Release"
diff --git a/projects/VC7.1/SimGear.vcproj b/projects/VC7.1/SimGear.vcproj
index 2ee3c73c..ae791bd2 100755
--- a/projects/VC7.1/SimGear.vcproj
+++ b/projects/VC7.1/SimGear.vcproj
@@ -719,12 +719,6 @@
-
-
-
-
diff --git a/projects/VC8/SimGear.vcproj b/projects/VC8/SimGear.vcproj
index 5e159dc8..3c597466 100755
--- a/projects/VC8/SimGear.vcproj
+++ b/projects/VC8/SimGear.vcproj
@@ -391,10 +391,6 @@
RelativePath="..\..\simgear\scene\model\placement.hxx"
>
-
-
@@ -1047,10 +1043,6 @@
RelativePath="..\..\simgear\scene\model\placement.cxx"
>
-
-
diff --git a/simgear/scene/model/Makefile.am b/simgear/scene/model/Makefile.am
index 82108d5a..3bf59ff0 100644
--- a/simgear/scene/model/Makefile.am
+++ b/simgear/scene/model/Makefile.am
@@ -12,7 +12,6 @@ include_HEADERS = \
ModelRegistry.hxx \
persparam.hxx \
placement.hxx \
- placementtrans.hxx \
CheckSceneryVisitor.hxx \
SGClipGroup.hxx \
SGMaterialAnimation.hxx \
@@ -32,7 +31,6 @@ libsgmodel_a_SOURCES = \
ModelRegistry.cxx \
persparam.cxx \
placement.cxx \
- placementtrans.cxx \
shadanim.cxx \
CheckSceneryVisitor.cxx \
SGClipGroup.cxx \
diff --git a/simgear/scene/model/placement.cxx b/simgear/scene/model/placement.cxx
index 9da016ef..486113d8 100644
--- a/simgear/scene/model/placement.cxx
+++ b/simgear/scene/model/placement.cxx
@@ -7,13 +7,10 @@
#include
#endif
-#include
-
-#include
-#include
-
#include "placement.hxx"
+#include
+#include
////////////////////////////////////////////////////////////////////////
@@ -26,7 +23,7 @@ SGModelPlacement::SGModelPlacement () :
_pitch_deg(0),
_heading_deg(0),
_selector(new osg::Switch),
- _transform(new SGPlacementTransform)
+ _transform(new osg::PositionAttitudeTransform)
{
}
@@ -49,6 +46,7 @@ SGModelPlacement::update()
{
// The cartesian position
SGVec3d position = SGVec3d::fromGeod(_position);
+ _transform->setPosition(position.osg());
// The orientation, composed from the horizontal local orientation and the
// orientation wrt the horizontal local frame
@@ -58,7 +56,7 @@ SGModelPlacement::update()
// the y axis 180 degrees.
orient *= SGQuatd::fromRealImag(0, SGVec3d(0, 1, 0));
- _transform->setTransform(position, orient);
+ _transform->setAttitude(orient.osg());
}
bool
diff --git a/simgear/scene/model/placement.hxx b/simgear/scene/model/placement.hxx
index 9a723660..97d5cda5 100644
--- a/simgear/scene/model/placement.hxx
+++ b/simgear/scene/model/placement.hxx
@@ -14,10 +14,9 @@
#include
#include
#include
+#include
-#include
-
-#include "placementtrans.hxx"
+#include
// Has anyone done anything *really* stupid, like making min and max macros?
#ifdef min
@@ -78,7 +77,6 @@ public:
void setBodyAngularVelocity(const SGVec3d& velocity);
private:
-
// Geodetic position
SGGeod _position;
@@ -88,7 +86,7 @@ private:
double _heading_deg;
osg::ref_ptr _selector;
- osg::ref_ptr _transform;
+ osg::ref_ptr _transform;
};
#endif // _SG_PLACEMENT_HXX
diff --git a/simgear/scene/model/placementtrans.cxx b/simgear/scene/model/placementtrans.cxx
deleted file mode 100644
index 14d8491b..00000000
--- a/simgear/scene/model/placementtrans.cxx
+++ /dev/null
@@ -1,148 +0,0 @@
-// placementtrans.hxx -- class for carrying transforms for placing models in the world
-//
-// Written by Mathias Froehlich, started April 2005.
-//
-// Copyright (C) 2005 Mathias Froehlich
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 2 of the
-// License, or (at your option) any later version.
-//
-// This program 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
-// 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
-
-#ifndef __cplusplus
-# error This library requires C++
-#endif
-
-#include
-#include
-#include
-
-#include
-#include
-
-#include "placementtrans.hxx"
-
-SGPlacementTransform::SGPlacementTransform(void) :
- _placement_offset(0, 0, 0),
- _rotation(SGQuatd::unit())
-{
-}
-
-SGPlacementTransform::SGPlacementTransform(const SGPlacementTransform& trans,
- const osg::CopyOp& copyop):
- osg::Transform(trans, copyop),
- _placement_offset(trans._placement_offset),
- _rotation(trans._rotation)
-{
-
-}
-
-SGPlacementTransform::~SGPlacementTransform(void)
-{
-}
-
-bool
-SGPlacementTransform::computeLocalToWorldMatrix(osg::Matrix& matrix,
- osg::NodeVisitor*) const
-{
- if (_referenceFrame == RELATIVE_RF) {
- matrix.preMultTranslate(_placement_offset.osg());
- matrix.preMultRotate(_rotation.osg());
- } else {
- matrix.makeRotate(_rotation.osg());
- matrix.postMultTranslate(_placement_offset.osg());
- }
- return true;
-}
-
-bool
-SGPlacementTransform::computeWorldToLocalMatrix(osg::Matrix& matrix,
- osg::NodeVisitor*) const
-{
- if (_referenceFrame == RELATIVE_RF) {
- matrix.postMultTranslate(-_placement_offset.osg());
- matrix.postMultRotate(inverse(_rotation).osg());
- } else {
- matrix.makeRotate(inverse(_rotation).osg());
- matrix.preMultTranslate(-_placement_offset.osg());
- }
- return true;
-}
-
-// Functions to read / write SGPlacementTrans from / to a .osg file,
-// mostly for debugging purposes.
-
-namespace {
-
-bool PlacementTrans_readLocalData(osg::Object& obj, osgDB::Input& fr)
-{
- SGPlacementTransform& trans = static_cast(obj);
- SGQuatd rotation = SGQuatd::unit();
- SGVec3d placementOffset(0, 0, 0);
-
- if (fr[0].matchWord("rotation")) {
- ++fr;
- osg::Vec4d vec4;
- if (fr.readSequence(vec4)) {
- rotation = SGQuatd(vec4[0], vec4[1], vec4[2], vec4[3]);
- fr += 4;
- } else
- return false;
- }
- if (fr[0].matchWord("placement")) {
- ++fr;
- if (fr.readSequence(placementOffset.osg()))
- fr += 3;
- else
- return false;
- }
- trans.setTransform(placementOffset, rotation);
- return true;
-}
-
-bool PlacementTrans_writeLocalData(const osg::Object& obj, osgDB::Output& fw)
-{
- const SGPlacementTransform& trans
- = static_cast(obj);
- const SGQuatd& rotation = trans.getRotation();
- const SGVec3d& placement = trans.getGlobalPos();
-
- fw.indent() << "rotation ";
- for (int i = 0; i < 4; i++) {
- fw << rotation(i) << " ";
- }
- fw << std::endl;
- int prec = fw.precision();
- fw.precision(15);
- fw.indent() << "placement ";
- for (int i = 0; i < 3; i++) {
- fw << placement(i) << " ";
- }
- fw << std::endl;
- fw.precision(prec);
- return true;
-}
-}
-
-osgDB::RegisterDotOsgWrapperProxy g_SGPlacementTransProxy
-(
- new SGPlacementTransform,
- "SGPlacementTransform",
- "Object Node Transform SGPlacementTransform Group",
- &PlacementTrans_readLocalData,
- &PlacementTrans_writeLocalData
-);
diff --git a/simgear/scene/model/placementtrans.hxx b/simgear/scene/model/placementtrans.hxx
deleted file mode 100644
index b4489bb7..00000000
--- a/simgear/scene/model/placementtrans.hxx
+++ /dev/null
@@ -1,74 +0,0 @@
-// placementtrans.hxx -- class for carrying transforms for placing models in the world
-//
-// Written by Mathias Froehlich, started April 2005.
-//
-// Copyright (C) 2005 Mathias Froehlich
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 2 of the
-// License, or (at your option) any later version.
-//
-// This program 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
-// 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 _SG_PLACEMENTTRANS_HXX
-#define _SG_PLACEMENTTRANS_HXX
-
-#ifndef __cplusplus
-# error This library requires C++
-#endif
-
-#include
-#include
-#include
-
-#include
-
-class SGPlacementTransform : public osg::Transform
-{
-public:
-
- SGPlacementTransform(void);
- SGPlacementTransform(const SGPlacementTransform&,
- const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
-
- META_Node(simgear, SGPlacementTransform);
-
- void setTransform(const SGVec3d& off)
- { _placement_offset = off; dirtyBound(); }
- void setTransform(const SGVec3d& off, const SGQuatd& rot)
- { _placement_offset = off; _rotation = rot; dirtyBound(); }
-
- const SGVec3d& getGlobalPos() const
- { return _placement_offset; }
- const SGQuatd& getRotation() const
- { return _rotation; }
-
- virtual bool computeLocalToWorldMatrix(osg::Matrix&,osg::NodeVisitor*) const;
- virtual bool computeWorldToLocalMatrix(osg::Matrix&,osg::NodeVisitor*) const;
-
-protected:
- virtual ~SGPlacementTransform(void);
-
-private:
-
- class UpdateCallback;
-
- //////////////////////////////////////////////////////////////////
- // private data //
- //////////////////////////////////////////////////////////////////
-
- SGVec3d _placement_offset;
- SGQuatd _rotation;
-};
-
-#endif // _SG_LOCATION_HXX
diff --git a/simgear/scene/tgdb/TileEntry.cxx b/simgear/scene/tgdb/TileEntry.cxx
index 772c6704..0a33e326 100644
--- a/simgear/scene/tgdb/TileEntry.cxx
+++ b/simgear/scene/tgdb/TileEntry.cxx
@@ -55,7 +55,6 @@
#include
#include
#include
-#include
#include "ReaderWriterSTG.hxx"
#include "TileEntry.hxx"
diff --git a/simgear/scene/tgdb/TileEntry.hxx b/simgear/scene/tgdb/TileEntry.hxx
index d12fa920..287a9513 100644
--- a/simgear/scene/tgdb/TileEntry.hxx
+++ b/simgear/scene/tgdb/TileEntry.hxx
@@ -37,7 +37,6 @@
#include
#include
#include
-#include
#include
#include