another attempt at getting something useful without any result.
This commit is contained in:
parent
9535c4e339
commit
d2799cd832
2 changed files with 22 additions and 9 deletions
|
@ -298,9 +298,16 @@ FGViewMgr::update (double dt)
|
|||
|
||||
// update audio listener values
|
||||
// set the viewer posotion in Cartesian coordinates in meters
|
||||
smgr->set_position( abs_viewer_position );
|
||||
smgr->set_orientation(loop_view->getViewOrientation(),
|
||||
loop_view->getViewOrientationOffset());
|
||||
SGVec3d offs = SGVec3d( loop_view->getXOffset_m(),
|
||||
loop_view->getYOffset_m(),
|
||||
loop_view->getZOffset_m());
|
||||
smgr->set_position_offset( offs );
|
||||
smgr->set_position_geod( loop_view->getPosition() );
|
||||
|
||||
SGQuatd orient = SGQuatd::fromYawPitchRollDeg( loop_view->getHeading_deg(),
|
||||
loop_view->getPitch_deg(),
|
||||
loop_view->getRoll_deg() );
|
||||
smgr->set_orientation( orient, loop_view->getViewOrientationOffset() );
|
||||
|
||||
// get the model velocity
|
||||
SGVec3f velocity = SGVec3f::zeros();
|
||||
|
|
|
@ -124,17 +124,23 @@ FGAircraftModel::update (double dt)
|
|||
_aircraft->update();
|
||||
|
||||
// update model's audio sample values
|
||||
_fx->set_position( _aircraft->getPosition() );
|
||||
_fx->set_position_geod( _aircraft->getPosition() );
|
||||
|
||||
SGQuatd orient = SGQuatd::fromYawPitchRollDeg(_heading->getDoubleValue(),
|
||||
SGQuatd orient = SGQuatd::fromYawPitchRollDeg(-_heading->getDoubleValue(),
|
||||
_pitch->getDoubleValue(),
|
||||
_roll->getDoubleValue());
|
||||
_fx->set_orientation( orient );
|
||||
|
||||
SGQuatf q(-0.5, -0.5, 0.5, 0.5);
|
||||
_velocity = q.backTransform( SGVec3f(_speed_n->getFloatValue(),
|
||||
_speed_e->getFloatValue(),
|
||||
_speed_d->getFloatValue()) );
|
||||
SGVec3d vel = SGVec3d( _speed_n->getFloatValue(),
|
||||
_speed_e->getFloatValue(),
|
||||
_speed_d->getFloatValue() );
|
||||
if ( vel[0] || vel[1] || vel[2] ) {
|
||||
SGQuatd hlOr = SGQuatd::fromLonLat( _aircraft->getPosition() );
|
||||
SGQuatd q(-0.5, -0.5, 0.5, 0.5);
|
||||
_velocity = toVec3f( (hlOr*q).backTransform( vel ) );
|
||||
}
|
||||
else
|
||||
_velocity = SGVec3f::zeros();
|
||||
_fx->set_velocity( _velocity );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue