X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fscene%2Fmodel%2Fplacement.cxx;h=852844921f5424ede40e8297cf8c54a5a74dd926;hb=9f9c4cf32c2cf774c7febd7fe2b4e65a7d205294;hp=9da016ef89b13020fafda51a5fc0cfbf95a4fdaf;hpb=7e7ce2f38e87d6244e05730fa4382da088bb25f1;p=simgear.git diff --git a/simgear/scene/model/placement.cxx b/simgear/scene/model/placement.cxx index 9da016ef..85284492 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(toOsg(position)); // 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(toOsg(orient)); } bool @@ -140,7 +138,7 @@ void SGModelPlacement::setReferenceTime(const double& referenceTime) { SGSceneUserData* userData; - userData = SGSceneUserData::getOrCreateSceneUserData(_transform); + userData = SGSceneUserData::getOrCreateSceneUserData(_transform.get()); SGSceneUserData::Velocity* vel = userData->getOrCreateVelocity(); vel->referenceTime = referenceTime; } @@ -149,7 +147,7 @@ void SGModelPlacement::setBodyLinearVelocity(const SGVec3d& linear) { SGSceneUserData* userData; - userData = SGSceneUserData::getOrCreateSceneUserData(_transform); + userData = SGSceneUserData::getOrCreateSceneUserData(_transform.get()); SGSceneUserData::Velocity* vel = userData->getOrCreateVelocity(); vel->linear = SGVec3d(-linear[0], linear[1], -linear[2]); } @@ -158,7 +156,7 @@ void SGModelPlacement::setBodyAngularVelocity(const SGVec3d& angular) { SGSceneUserData* userData; - userData = SGSceneUserData::getOrCreateSceneUserData(_transform); + userData = SGSceneUserData::getOrCreateSceneUserData(_transform.get()); SGSceneUserData::Velocity* vel = userData->getOrCreateVelocity(); vel->angular = SGVec3d(-angular[0], angular[1], -angular[2]); }