- Added "SG" prefix to sound classes that recently moved to SimGear.
- Cleaned up some minor compiler warnings. - Moved src/Model/placement.[ch]xx over into simgear/scene/model/
This commit is contained in:
parent
eafdb70890
commit
51c04e9e4c
26 changed files with 62 additions and 312 deletions
|
@ -25,9 +25,9 @@
|
||||||
#include <plib/ssg.h>
|
#include <plib/ssg.h>
|
||||||
|
|
||||||
#include <simgear/math/point3d.hxx>
|
#include <simgear/math/point3d.hxx>
|
||||||
|
#include <simgear/scene/model/placement.hxx>
|
||||||
|
|
||||||
#include <Model/model.hxx>
|
#include <Model/model.hxx>
|
||||||
#include <Model/placement.hxx>
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
|
|
|
@ -74,7 +74,7 @@ void FGATC::Render(string msg, string refname, bool repeating) {
|
||||||
int len;
|
int len;
|
||||||
unsigned char* buf = vPtr->WriteMessage((char*)msg.c_str(), len, voice);
|
unsigned char* buf = vPtr->WriteMessage((char*)msg.c_str(), len, voice);
|
||||||
if(voice) {
|
if(voice) {
|
||||||
SimpleSound* simple = new SimpleSound(buf, len);
|
SGSimpleSound* simple = new SGSimpleSound(buf, len);
|
||||||
// TODO - at the moment the volume is always set off comm1
|
// TODO - at the moment the volume is always set off comm1
|
||||||
// and can't be changed after the transmission has started.
|
// and can't be changed after the transmission has started.
|
||||||
simple->set_volume(5.0 * fgGetDouble("/radios/comm[0]/volume"));
|
simple->set_volume(5.0 * fgGetDouble("/radios/comm[0]/volume"));
|
||||||
|
|
|
@ -445,7 +445,7 @@ void FGKR_87::update( double dt ) {
|
||||||
// play station ident via audio system if on + ant mode,
|
// play station ident via audio system if on + ant mode,
|
||||||
// otherwise turn it off
|
// otherwise turn it off
|
||||||
if ( vol_btn >= 0.01 && audio_btn ) {
|
if ( vol_btn >= 0.01 && audio_btn ) {
|
||||||
SimpleSound *sound;
|
SGSimpleSound *sound;
|
||||||
sound = globals->get_soundmgr()->find( "adf-ident" );
|
sound = globals->get_soundmgr()->find( "adf-ident" );
|
||||||
if ( sound != NULL ) {
|
if ( sound != NULL ) {
|
||||||
if ( !adf_btn ) {
|
if ( !adf_btn ) {
|
||||||
|
@ -514,7 +514,7 @@ void FGKR_87::search() {
|
||||||
if ( globals->get_soundmgr()->exists( "adf-ident" ) ) {
|
if ( globals->get_soundmgr()->exists( "adf-ident" ) ) {
|
||||||
globals->get_soundmgr()->remove( "adf-ident" );
|
globals->get_soundmgr()->remove( "adf-ident" );
|
||||||
}
|
}
|
||||||
SimpleSound *sound;
|
SGSimpleSound *sound;
|
||||||
sound = morse.make_ident( trans_ident, LO_FREQUENCY );
|
sound = morse.make_ident( trans_ident, LO_FREQUENCY );
|
||||||
sound->set_volume( 0.3 );
|
sound->set_volume( 0.3 );
|
||||||
globals->get_soundmgr()->add( sound, "adf-ident" );
|
globals->get_soundmgr()->add( sound, "adf-ident" );
|
||||||
|
|
|
@ -193,7 +193,7 @@ void FGMarkerBeacon::search()
|
||||||
// cout << "OUTER MARKER" << endl;
|
// cout << "OUTER MARKER" << endl;
|
||||||
if ( last_beacon != FGMkrBeacon::OUTER ) {
|
if ( last_beacon != FGMkrBeacon::OUTER ) {
|
||||||
if ( ! globals->get_soundmgr()->exists( "outer-marker" ) ) {
|
if ( ! globals->get_soundmgr()->exists( "outer-marker" ) ) {
|
||||||
SimpleSound *sound = beacon.get_outer();
|
SGSimpleSound *sound = beacon.get_outer();
|
||||||
sound->set_volume( 0.3 );
|
sound->set_volume( 0.3 );
|
||||||
globals->get_soundmgr()->add( sound, "outer-marker" );
|
globals->get_soundmgr()->add( sound, "outer-marker" );
|
||||||
}
|
}
|
||||||
|
@ -210,7 +210,7 @@ void FGMarkerBeacon::search()
|
||||||
// cout << "MIDDLE MARKER" << endl;
|
// cout << "MIDDLE MARKER" << endl;
|
||||||
if ( last_beacon != FGMkrBeacon::MIDDLE ) {
|
if ( last_beacon != FGMkrBeacon::MIDDLE ) {
|
||||||
if ( ! globals->get_soundmgr()->exists( "middle-marker" ) ) {
|
if ( ! globals->get_soundmgr()->exists( "middle-marker" ) ) {
|
||||||
SimpleSound *sound = beacon.get_middle();
|
SGSimpleSound *sound = beacon.get_middle();
|
||||||
sound->set_volume( 0.3 );
|
sound->set_volume( 0.3 );
|
||||||
globals->get_soundmgr()->add( sound, "middle-marker" );
|
globals->get_soundmgr()->add( sound, "middle-marker" );
|
||||||
}
|
}
|
||||||
|
@ -227,7 +227,7 @@ void FGMarkerBeacon::search()
|
||||||
// cout << "INNER MARKER" << endl;
|
// cout << "INNER MARKER" << endl;
|
||||||
if ( last_beacon != FGMkrBeacon::INNER ) {
|
if ( last_beacon != FGMkrBeacon::INNER ) {
|
||||||
if ( ! globals->get_soundmgr()->exists( "inner-marker" ) ) {
|
if ( ! globals->get_soundmgr()->exists( "inner-marker" ) ) {
|
||||||
SimpleSound *sound = beacon.get_inner();
|
SGSimpleSound *sound = beacon.get_inner();
|
||||||
sound->set_volume( 0.3 );
|
sound->set_volume( 0.3 );
|
||||||
globals->get_soundmgr()->add( sound, "inner-marker" );
|
globals->get_soundmgr()->add( sound, "inner-marker" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -336,7 +336,7 @@ FGNavCom::update(double dt)
|
||||||
nav_gs_dist = sqrt( dist );
|
nav_gs_dist = sqrt( dist );
|
||||||
// cout << nav_gs_dist;
|
// cout << nav_gs_dist;
|
||||||
|
|
||||||
Point3D tmp( nav_gs_x, nav_gs_y, nav_gs_z );
|
// Point3D tmp( nav_gs_x, nav_gs_y, nav_gs_z );
|
||||||
// cout << " (" << aircraft.distance3D( tmp ) << ")" << endl;
|
// cout << " (" << aircraft.distance3D( tmp ) << ")" << endl;
|
||||||
|
|
||||||
// wgs84 heading to glide slope (to determine sign of distance)
|
// wgs84 heading to glide slope (to determine sign of distance)
|
||||||
|
@ -410,7 +410,7 @@ FGNavCom::update(double dt)
|
||||||
if ( power_btn && (bus_power->getDoubleValue() > 1.0)
|
if ( power_btn && (bus_power->getDoubleValue() > 1.0)
|
||||||
&& nav_ident_btn && audio_btn )
|
&& nav_ident_btn && audio_btn )
|
||||||
{
|
{
|
||||||
SimpleSound *sound;
|
SGSimpleSound *sound;
|
||||||
sound = globals->get_soundmgr()->find( nav_fx_name );
|
sound = globals->get_soundmgr()->find( nav_fx_name );
|
||||||
if ( sound != NULL ) {
|
if ( sound != NULL ) {
|
||||||
sound->set_volume( nav_vol_btn );
|
sound->set_volume( nav_vol_btn );
|
||||||
|
@ -522,7 +522,7 @@ void FGNavCom::search()
|
||||||
if ( globals->get_soundmgr()->exists( nav_fx_name ) ) {
|
if ( globals->get_soundmgr()->exists( nav_fx_name ) ) {
|
||||||
globals->get_soundmgr()->remove( nav_fx_name );
|
globals->get_soundmgr()->remove( nav_fx_name );
|
||||||
}
|
}
|
||||||
SimpleSound *sound;
|
SGSimpleSound *sound;
|
||||||
sound = morse.make_ident( nav_trans_ident, LO_FREQUENCY );
|
sound = morse.make_ident( nav_trans_ident, LO_FREQUENCY );
|
||||||
sound->set_volume( 0.3 );
|
sound->set_volume( 0.3 );
|
||||||
globals->get_soundmgr()->add( sound, nav_fx_name );
|
globals->get_soundmgr()->add( sound, nav_fx_name );
|
||||||
|
@ -572,7 +572,7 @@ void FGNavCom::search()
|
||||||
if ( globals->get_soundmgr()->exists( nav_fx_name ) ) {
|
if ( globals->get_soundmgr()->exists( nav_fx_name ) ) {
|
||||||
globals->get_soundmgr()->remove( nav_fx_name );
|
globals->get_soundmgr()->remove( nav_fx_name );
|
||||||
}
|
}
|
||||||
SimpleSound *sound;
|
SGSimpleSound *sound;
|
||||||
sound = morse.make_ident( nav_trans_ident, LO_FREQUENCY );
|
sound = morse.make_ident( nav_trans_ident, LO_FREQUENCY );
|
||||||
sound->set_volume( 0.3 );
|
sound->set_volume( 0.3 );
|
||||||
if ( globals->get_soundmgr()->add( sound, nav_fx_name ) ) {
|
if ( globals->get_soundmgr()->add( sound, nav_fx_name ) ) {
|
||||||
|
|
|
@ -174,13 +174,13 @@ FGPanel::FGPanel ()
|
||||||
_mouseInstrument(0),
|
_mouseInstrument(0),
|
||||||
_width(WIN_W), _height(int(WIN_H * 0.5768 + 1)),
|
_width(WIN_W), _height(int(WIN_H * 0.5768 + 1)),
|
||||||
_view_height(int(WIN_H * 0.4232)),
|
_view_height(int(WIN_H * 0.4232)),
|
||||||
_xsize_node(fgGetNode("/sim/startup/xsize", true)),
|
|
||||||
_ysize_node(fgGetNode("/sim/startup/ysize", true)),
|
|
||||||
_visibility(fgGetNode("/sim/panel/visibility", true)),
|
_visibility(fgGetNode("/sim/panel/visibility", true)),
|
||||||
_x_offset(fgGetNode("/sim/panel/x-offset", true)),
|
_x_offset(fgGetNode("/sim/panel/x-offset", true)),
|
||||||
_y_offset(fgGetNode("/sim/panel/y-offset", true)),
|
_y_offset(fgGetNode("/sim/panel/y-offset", true)),
|
||||||
_jitter(fgGetNode("/sim/panel/jitter", true)),
|
_jitter(fgGetNode("/sim/panel/jitter", true)),
|
||||||
_flipx(fgGetNode("/sim/panel/flip-x", true))
|
_flipx(fgGetNode("/sim/panel/flip-x", true)),
|
||||||
|
_xsize_node(fgGetNode("/sim/startup/xsize", true)),
|
||||||
|
_ysize_node(fgGetNode("/sim/startup/ysize", true))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -432,13 +432,13 @@ FGPanel::draw()
|
||||||
|
|
||||||
// Draw yellow "hotspots" if directed to. This is a panel authoring
|
// Draw yellow "hotspots" if directed to. This is a panel authoring
|
||||||
// feature; not intended to be high performance or to look good.
|
// feature; not intended to be high performance or to look good.
|
||||||
if(fgGetBool("/sim/panel-hotspots")) {
|
if ( fgGetBool("/sim/panel-hotspots") ) {
|
||||||
glPushAttrib(GL_ALL_ATTRIB_BITS);
|
glPushAttrib(GL_ALL_ATTRIB_BITS);
|
||||||
glDisable(GL_DEPTH_TEST);
|
glDisable(GL_DEPTH_TEST);
|
||||||
glDisable(GL_TEXTURE_2D);
|
glDisable(GL_TEXTURE_2D);
|
||||||
glColor3f(1, 1, 0);
|
glColor3f(1, 1, 0);
|
||||||
|
|
||||||
for(int i=0; i<_instruments.size(); i++)
|
for ( unsigned int i = 0; i < _instruments.size(); i++ )
|
||||||
_instruments[i]->drawHotspots();
|
_instruments[i]->drawHotspots();
|
||||||
|
|
||||||
glPopAttrib();
|
glPopAttrib();
|
||||||
|
@ -673,7 +673,7 @@ FGPanelInstrument::~FGPanelInstrument ()
|
||||||
void
|
void
|
||||||
FGPanelInstrument::drawHotspots()
|
FGPanelInstrument::drawHotspots()
|
||||||
{
|
{
|
||||||
for(int i=0; i<_actions.size(); i++) {
|
for ( unsigned int i = 0; i < _actions.size(); i++ ) {
|
||||||
FGPanelAction* a = _actions[i];
|
FGPanelAction* a = _actions[i];
|
||||||
float x1 = getXPos() + a->getX();
|
float x1 = getXPos() + a->getX();
|
||||||
float x2 = x1 + a->getWidth();
|
float x2 = x1 + a->getWidth();
|
||||||
|
|
|
@ -25,10 +25,10 @@
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/scene/model/location.hxx>
|
#include <simgear/scene/model/location.hxx>
|
||||||
|
#include <simgear/scene/model/placement.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
#include <Controls/controls.hxx>
|
#include <Controls/controls.hxx>
|
||||||
#include <Model/placement.hxx>
|
|
||||||
#include <FDM/flight.hxx>
|
#include <FDM/flight.hxx>
|
||||||
#include <FDM/LaRCsim/ls_cockpit.h>
|
#include <FDM/LaRCsim/ls_cockpit.h>
|
||||||
#include <FDM/LaRCsim/ls_generic.h>
|
#include <FDM/LaRCsim/ls_generic.h>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/misc/sg_path.hxx>
|
#include <simgear/misc/sg_path.hxx>
|
||||||
#include <simgear/scene/model/location.hxx>
|
#include <simgear/scene/model/location.hxx>
|
||||||
|
#include <simgear/scene/model/placement.hxx>
|
||||||
#include <simgear/xml/easyxml.hxx>
|
#include <simgear/xml/easyxml.hxx>
|
||||||
|
|
||||||
#include <Main/globals.hxx>
|
#include <Main/globals.hxx>
|
||||||
#include <Main/fg_props.hxx>
|
#include <Main/fg_props.hxx>
|
||||||
#include <Model/acmodel.hxx>
|
#include <Model/acmodel.hxx>
|
||||||
#include <Model/placement.hxx>
|
|
||||||
|
|
||||||
#include "FGFDM.hpp"
|
#include "FGFDM.hpp"
|
||||||
#include "Atmosphere.hpp"
|
#include "Atmosphere.hpp"
|
||||||
|
|
|
@ -29,13 +29,13 @@
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/math/sg_geodesy.hxx>
|
#include <simgear/math/sg_geodesy.hxx>
|
||||||
#include <simgear/scene/model/location.hxx>
|
#include <simgear/scene/model/location.hxx>
|
||||||
|
#include <simgear/scene/model/placement.hxx>
|
||||||
#include <simgear/timing/timestamp.hxx>
|
#include <simgear/timing/timestamp.hxx>
|
||||||
|
|
||||||
#include <Scenery/scenery.hxx>
|
#include <Scenery/scenery.hxx>
|
||||||
#include <FDM/LaRCsim/ls_interface.h>
|
#include <FDM/LaRCsim/ls_interface.h>
|
||||||
#include <Main/globals.hxx>
|
#include <Main/globals.hxx>
|
||||||
#include <Main/fg_props.hxx>
|
#include <Main/fg_props.hxx>
|
||||||
#include <Model/placement.hxx>
|
|
||||||
#include <Model/acmodel.hxx>
|
#include <Model/acmodel.hxx>
|
||||||
|
|
||||||
#include "flight.hxx"
|
#include "flight.hxx"
|
||||||
|
|
|
@ -208,7 +208,7 @@ FGMenuBar::~FGMenuBar ()
|
||||||
hide();
|
hide();
|
||||||
puDeleteObject(_menuBar);
|
puDeleteObject(_menuBar);
|
||||||
|
|
||||||
int i;
|
unsigned int i;
|
||||||
|
|
||||||
// Delete all the character arrays
|
// Delete all the character arrays
|
||||||
// we were forced to keep around for
|
// we were forced to keep around for
|
||||||
|
@ -233,7 +233,7 @@ FGMenuBar::~FGMenuBar ()
|
||||||
it = _bindings.begin();
|
it = _bindings.begin();
|
||||||
for (it = _bindings.begin(); it != _bindings.end(); it++) {
|
for (it = _bindings.begin(); it != _bindings.end(); it++) {
|
||||||
SG_LOG(SG_GENERAL, SG_INFO, "Deleting bindings for " << it->first);
|
SG_LOG(SG_GENERAL, SG_INFO, "Deleting bindings for " << it->first);
|
||||||
for (int i = 0; i < it->second.size(); i++)
|
for ( i = 0; i < it->second.size(); i++ )
|
||||||
delete it->second[i];
|
delete it->second[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -296,7 +296,7 @@ FGMenuBar::make_menu (SGPropertyNode * node)
|
||||||
char ** items = make_char_array(array_size);
|
char ** items = make_char_array(array_size);
|
||||||
puCallback * callbacks = make_callback_array(array_size);
|
puCallback * callbacks = make_callback_array(array_size);
|
||||||
|
|
||||||
for (int i = 0, j = item_nodes.size() - 1;
|
for (unsigned int i = 0, j = item_nodes.size() - 1;
|
||||||
i < item_nodes.size();
|
i < item_nodes.size();
|
||||||
i++, j--) {
|
i++, j--) {
|
||||||
|
|
||||||
|
@ -308,7 +308,7 @@ FGMenuBar::make_menu (SGPropertyNode * node)
|
||||||
vector<SGPropertyNode_ptr> binding_nodes =
|
vector<SGPropertyNode_ptr> binding_nodes =
|
||||||
item_nodes[i]->getChildren("binding");
|
item_nodes[i]->getChildren("binding");
|
||||||
|
|
||||||
for (int k = 0; k < binding_nodes.size(); k++)
|
for (unsigned int k = 0; k < binding_nodes.size(); k++)
|
||||||
_bindings[items[j]].push_back(new FGBinding(binding_nodes[k]));
|
_bindings[items[j]].push_back(new FGBinding(binding_nodes[k]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -323,7 +323,7 @@ FGMenuBar::make_menubar ()
|
||||||
|
|
||||||
fgLoadProps("gui/menubar.xml", &props);
|
fgLoadProps("gui/menubar.xml", &props);
|
||||||
vector<SGPropertyNode_ptr> menu_nodes = props.getChildren("menu");
|
vector<SGPropertyNode_ptr> menu_nodes = props.getChildren("menu");
|
||||||
for (int i = 0; i < menu_nodes.size(); i++)
|
for (unsigned int i = 0; i < menu_nodes.size(); i++)
|
||||||
make_menu(menu_nodes[i]);
|
make_menu(menu_nodes[i]);
|
||||||
|
|
||||||
_menuBar->close();
|
_menuBar->close();
|
||||||
|
|
|
@ -1539,7 +1539,7 @@ bool fgInitSubsystems() {
|
||||||
// Initialize the sound subsystem.
|
// Initialize the sound subsystem.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
globals->set_soundmgr(new SoundMgr);
|
globals->set_soundmgr(new SGSoundMgr);
|
||||||
globals->get_soundmgr()->init();
|
globals->get_soundmgr()->init();
|
||||||
globals->get_soundmgr()->bind();
|
globals->get_soundmgr()->bind();
|
||||||
|
|
||||||
|
|
|
@ -234,7 +234,7 @@ setFreeze (bool f)
|
||||||
frozen = f;
|
frozen = f;
|
||||||
|
|
||||||
// Stop sound on a pause
|
// Stop sound on a pause
|
||||||
SoundMgr *s = globals->get_soundmgr();
|
SGSoundMgr *s = globals->get_soundmgr();
|
||||||
if ( s != NULL ) {
|
if ( s != NULL ) {
|
||||||
if ( f ) {
|
if ( f ) {
|
||||||
s->pause();
|
s->pause();
|
||||||
|
|
|
@ -55,7 +55,7 @@ class SGMagVar;
|
||||||
class SGPropertyNode;
|
class SGPropertyNode;
|
||||||
class SGRoute;
|
class SGRoute;
|
||||||
class SGTime;
|
class SGTime;
|
||||||
class SoundMgr;
|
class SGSoundMgr;
|
||||||
|
|
||||||
class FGAIMgr;
|
class FGAIMgr;
|
||||||
class FGATCMgr;
|
class FGATCMgr;
|
||||||
|
@ -130,7 +130,7 @@ private:
|
||||||
FGPanel *current_panel;
|
FGPanel *current_panel;
|
||||||
|
|
||||||
// sound manager
|
// sound manager
|
||||||
SoundMgr *soundmgr;
|
SGSoundMgr *soundmgr;
|
||||||
|
|
||||||
// environment information
|
// environment information
|
||||||
FGEnvironmentMgr * environment_mgr;
|
FGEnvironmentMgr * environment_mgr;
|
||||||
|
@ -257,8 +257,8 @@ public:
|
||||||
inline FGPanel *get_current_panel() const { return current_panel; }
|
inline FGPanel *get_current_panel() const { return current_panel; }
|
||||||
inline void set_current_panel( FGPanel *cp ) { current_panel = cp; }
|
inline void set_current_panel( FGPanel *cp ) { current_panel = cp; }
|
||||||
|
|
||||||
inline SoundMgr *get_soundmgr() const { return soundmgr; }
|
inline SGSoundMgr *get_soundmgr() const { return soundmgr; }
|
||||||
inline void set_soundmgr( SoundMgr *sm ) { soundmgr = sm; }
|
inline void set_soundmgr( SGSoundMgr *sm ) { soundmgr = sm; }
|
||||||
|
|
||||||
inline FGControls *get_controls() const { return controls; }
|
inline FGControls *get_controls() const { return controls; }
|
||||||
inline void set_controls( FGControls *c ) { controls = c; }
|
inline void set_controls( FGControls *c ) { controls = c; }
|
||||||
|
|
|
@ -38,12 +38,12 @@
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
#include <simgear/math/sg_geodesy.hxx>
|
#include <simgear/math/sg_geodesy.hxx>
|
||||||
#include <simgear/scene/model/location.hxx>
|
#include <simgear/scene/model/location.hxx>
|
||||||
|
#include <simgear/scene/model/placement.hxx>
|
||||||
#include <simgear/math/vector.hxx>
|
#include <simgear/math/vector.hxx>
|
||||||
|
|
||||||
#include <Main/globals.hxx>
|
#include <Main/globals.hxx>
|
||||||
#include <Scenery/scenery.hxx>
|
#include <Scenery/scenery.hxx>
|
||||||
#include <Model/acmodel.hxx>
|
#include <Model/acmodel.hxx>
|
||||||
#include <Model/placement.hxx>
|
|
||||||
|
|
||||||
#include "viewer.hxx"
|
#include "viewer.hxx"
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,6 @@ libModel_a_SOURCES = \
|
||||||
model.cxx model.hxx \
|
model.cxx model.hxx \
|
||||||
model_panel.cxx model_panel.hxx \
|
model_panel.cxx model_panel.hxx \
|
||||||
modelmgr.cxx modelmgr.hxx \
|
modelmgr.cxx modelmgr.hxx \
|
||||||
panelnode.cxx panelnode.hxx \
|
panelnode.cxx panelnode.hxx
|
||||||
placement.cxx placement.hxx
|
|
||||||
|
|
||||||
INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src
|
INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/misc/exception.hxx>
|
#include <simgear/misc/exception.hxx>
|
||||||
#include <simgear/misc/sg_path.hxx>
|
#include <simgear/misc/sg_path.hxx>
|
||||||
|
#include <simgear/scene/model/placement.hxx>
|
||||||
|
|
||||||
#include <Main/globals.hxx>
|
#include <Main/globals.hxx>
|
||||||
#include <Main/fg_props.hxx>
|
#include <Main/fg_props.hxx>
|
||||||
|
@ -23,7 +24,6 @@
|
||||||
#include <Scenery/scenery.hxx>
|
#include <Scenery/scenery.hxx>
|
||||||
|
|
||||||
#include "model_panel.hxx"
|
#include "model_panel.hxx"
|
||||||
#include "placement.hxx"
|
|
||||||
|
|
||||||
#include "acmodel.hxx"
|
#include "acmodel.hxx"
|
||||||
|
|
||||||
|
|
|
@ -3,16 +3,23 @@
|
||||||
//
|
//
|
||||||
// This file is in the Public Domain, and comes with no warranty.
|
// This file is in the Public Domain, and comes with no warranty.
|
||||||
|
|
||||||
|
#include <simgear/compiler.h>
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#include <plib/ssg.h>
|
#include <plib/ssg.h>
|
||||||
|
|
||||||
|
#include <simgear/scene/model/placement.hxx>
|
||||||
|
|
||||||
#include <Main/fg_props.hxx>
|
#include <Main/fg_props.hxx>
|
||||||
#include <Scenery/scenery.hxx>
|
#include <Scenery/scenery.hxx>
|
||||||
|
|
||||||
#include "model.hxx"
|
#include "model.hxx"
|
||||||
#include "placement.hxx"
|
|
||||||
|
|
||||||
#include "modelmgr.hxx"
|
#include "modelmgr.hxx"
|
||||||
|
|
||||||
|
SG_USING_STD(vector);
|
||||||
|
|
||||||
|
|
||||||
FGModelMgr::FGModelMgr ()
|
FGModelMgr::FGModelMgr ()
|
||||||
: _selector(new ssgSelector)
|
: _selector(new ssgSelector)
|
||||||
|
|
|
@ -1,140 +0,0 @@
|
||||||
// placement.cxx - manage the placment of a 3D model.
|
|
||||||
// Written by David Megginson, started 2002.
|
|
||||||
//
|
|
||||||
// This file is in the Public Domain, and comes with no warranty.
|
|
||||||
|
|
||||||
#include <simgear/compiler.h>
|
|
||||||
|
|
||||||
#include <string.h> // for strcmp()
|
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#include <plib/sg.h>
|
|
||||||
#include <plib/ssg.h>
|
|
||||||
#include <plib/ul.h>
|
|
||||||
|
|
||||||
#include <simgear/scene/model/location.hxx>
|
|
||||||
|
|
||||||
#include "placement.hxx"
|
|
||||||
|
|
||||||
SG_USING_STD(vector);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
|
||||||
// Implementation of FGModelPlacement.
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
FGModelPlacement::FGModelPlacement ()
|
|
||||||
: _lon_deg(0),
|
|
||||||
_lat_deg(0),
|
|
||||||
_elev_ft(0),
|
|
||||||
_roll_deg(0),
|
|
||||||
_pitch_deg(0),
|
|
||||||
_heading_deg(0),
|
|
||||||
_selector(new ssgSelector),
|
|
||||||
_position(new ssgTransform),
|
|
||||||
_location(new FGLocation)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
FGModelPlacement::~FGModelPlacement ()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
FGModelPlacement::init( ssgBranch * model )
|
|
||||||
{
|
|
||||||
if (model != 0) {
|
|
||||||
_position->addKid(model);
|
|
||||||
}
|
|
||||||
_selector->addKid(_position);
|
|
||||||
_selector->clrTraversalMaskBits(SSGTRAV_HOT);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
FGModelPlacement::update( const Point3D scenery_center )
|
|
||||||
{
|
|
||||||
_location->setPosition( _lon_deg, _lat_deg, _elev_ft );
|
|
||||||
_location->setOrientation( _roll_deg, _pitch_deg, _heading_deg );
|
|
||||||
|
|
||||||
sgCopyMat4( POS, _location->getTransformMatrix(scenery_center) );
|
|
||||||
|
|
||||||
sgVec3 trans;
|
|
||||||
sgCopyVec3(trans, _location->get_view_pos());
|
|
||||||
|
|
||||||
for(int i = 0; i < 4; i++) {
|
|
||||||
float tmp = POS[i][3];
|
|
||||||
for( int j=0; j<3; j++ ) {
|
|
||||||
POS[i][j] += (tmp * trans[j]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_position->setTransform(POS);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
FGModelPlacement::getVisible () const
|
|
||||||
{
|
|
||||||
return (_selector->getSelect() != 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
FGModelPlacement::setVisible (bool visible)
|
|
||||||
{
|
|
||||||
_selector->select(visible);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
FGModelPlacement::setLongitudeDeg (double lon_deg)
|
|
||||||
{
|
|
||||||
_lon_deg = lon_deg;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
FGModelPlacement::setLatitudeDeg (double lat_deg)
|
|
||||||
{
|
|
||||||
_lat_deg = lat_deg;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
FGModelPlacement::setElevationFt (double elev_ft)
|
|
||||||
{
|
|
||||||
_elev_ft = elev_ft;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
FGModelPlacement::setPosition (double lon_deg, double lat_deg, double elev_ft)
|
|
||||||
{
|
|
||||||
_lon_deg = lon_deg;
|
|
||||||
_lat_deg = lat_deg;
|
|
||||||
_elev_ft = elev_ft;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
FGModelPlacement::setRollDeg (double roll_deg)
|
|
||||||
{
|
|
||||||
_roll_deg = roll_deg;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
FGModelPlacement::setPitchDeg (double pitch_deg)
|
|
||||||
{
|
|
||||||
_pitch_deg = pitch_deg;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
FGModelPlacement::setHeadingDeg (double heading_deg)
|
|
||||||
{
|
|
||||||
_heading_deg = heading_deg;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
FGModelPlacement::setOrientation (double roll_deg, double pitch_deg,
|
|
||||||
double heading_deg)
|
|
||||||
{
|
|
||||||
_roll_deg = roll_deg;
|
|
||||||
_pitch_deg = pitch_deg;
|
|
||||||
_heading_deg = heading_deg;
|
|
||||||
}
|
|
||||||
|
|
||||||
// end of model.cxx
|
|
|
@ -1,115 +0,0 @@
|
||||||
// placement.hxx - manage the placment of a 3D model.
|
|
||||||
// Written by David Megginson, started 2002.
|
|
||||||
//
|
|
||||||
// This file is in the Public Domain, and comes with no warranty.
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef _SG_PLACEMENT_HXX
|
|
||||||
#define _SG_PLACEMENT_HXX 1
|
|
||||||
|
|
||||||
#ifndef __cplusplus
|
|
||||||
# error This library requires C++
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
SG_USING_STD(vector);
|
|
||||||
|
|
||||||
#include <plib/sg.h>
|
|
||||||
#include <plib/ssg.h>
|
|
||||||
|
|
||||||
#include <simgear/math/point3d.hxx>
|
|
||||||
#include <simgear/props/props.hxx>
|
|
||||||
|
|
||||||
|
|
||||||
// Don't pull in the headers, since we don't need them here.
|
|
||||||
class FGLocation;
|
|
||||||
|
|
||||||
|
|
||||||
// Has anyone done anything *really* stupid, like making min and max macros?
|
|
||||||
#ifdef min
|
|
||||||
#undef min
|
|
||||||
#endif
|
|
||||||
#ifdef max
|
|
||||||
#undef max
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
|
||||||
// Model placement.
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A wrapper for a model with a definite placement.
|
|
||||||
*/
|
|
||||||
class FGModelPlacement
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
FGModelPlacement ();
|
|
||||||
virtual ~FGModelPlacement ();
|
|
||||||
|
|
||||||
virtual void FGModelPlacement::init( ssgBranch * model );
|
|
||||||
/* virtual void init( const string &fg_root,
|
|
||||||
const string &path,
|
|
||||||
SGPropertyNode *prop_root,
|
|
||||||
double sim_time_sec, int dummy ); */
|
|
||||||
virtual void update( const Point3D scenery_center );
|
|
||||||
|
|
||||||
virtual ssgEntity * getSceneGraph () { return (ssgEntity *)_selector; }
|
|
||||||
|
|
||||||
virtual FGLocation * getFGLocation () { return _location; }
|
|
||||||
|
|
||||||
virtual bool getVisible () const;
|
|
||||||
virtual void setVisible (bool visible);
|
|
||||||
|
|
||||||
virtual double getLongitudeDeg () const { return _lon_deg; }
|
|
||||||
virtual double getLatitudeDeg () const { return _lat_deg; }
|
|
||||||
virtual double getElevationFt () const { return _elev_ft; }
|
|
||||||
|
|
||||||
virtual void setLongitudeDeg (double lon_deg);
|
|
||||||
virtual void setLatitudeDeg (double lat_deg);
|
|
||||||
virtual void setElevationFt (double elev_ft);
|
|
||||||
virtual void setPosition (double lon_deg, double lat_deg, double elev_ft);
|
|
||||||
|
|
||||||
virtual double getRollDeg () const { return _roll_deg; }
|
|
||||||
virtual double getPitchDeg () const { return _pitch_deg; }
|
|
||||||
virtual double getHeadingDeg () const { return _heading_deg; }
|
|
||||||
|
|
||||||
virtual void setRollDeg (double roll_deg);
|
|
||||||
virtual void setPitchDeg (double pitch_deg);
|
|
||||||
virtual void setHeadingDeg (double heading_deg);
|
|
||||||
virtual void setOrientation (double roll_deg, double pitch_deg,
|
|
||||||
double heading_deg);
|
|
||||||
|
|
||||||
// Addition by Diarmuid Tyson for Multiplayer Support
|
|
||||||
// Allows multiplayer to get players position transform
|
|
||||||
virtual const sgVec4 *get_POS() { return POS; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
// Geodetic position
|
|
||||||
double _lon_deg;
|
|
||||||
double _lat_deg;
|
|
||||||
double _elev_ft;
|
|
||||||
|
|
||||||
// Orientation
|
|
||||||
double _roll_deg;
|
|
||||||
double _pitch_deg;
|
|
||||||
double _heading_deg;
|
|
||||||
|
|
||||||
ssgSelector * _selector;
|
|
||||||
ssgTransform * _position;
|
|
||||||
|
|
||||||
// Location
|
|
||||||
FGLocation * _location;
|
|
||||||
|
|
||||||
|
|
||||||
// Addition by Diarmuid Tyson for Multiplayer Support
|
|
||||||
// Moved from update method
|
|
||||||
// POS for transformation Matrix
|
|
||||||
sgMat4 POS;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _SG_PLACEMENT_HXX
|
|
|
@ -28,8 +28,7 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
|
#include <simgear/scene/model/placement.hxx>
|
||||||
#include <Model/placement.hxx>
|
|
||||||
|
|
||||||
#include "multiplay.hxx"
|
#include "multiplay.hxx"
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ bool FGBeacon::init() {
|
||||||
ptr += INNER_DIT_LEN;
|
ptr += INNER_DIT_LEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
inner = new SimpleSound( inner_buf, INNER_SIZE );
|
inner = new SGSimpleSound( inner_buf, INNER_SIZE );
|
||||||
|
|
||||||
// Make middle marker beacon sound
|
// Make middle marker beacon sound
|
||||||
len= (int)(MIDDLE_DIT_LEN / 2.0 );
|
len= (int)(MIDDLE_DIT_LEN / 2.0 );
|
||||||
|
@ -69,7 +69,7 @@ bool FGBeacon::init() {
|
||||||
ptr += MIDDLE_DIT_LEN;
|
ptr += MIDDLE_DIT_LEN;
|
||||||
memcpy( ptr, middle_dah, MIDDLE_DAH_LEN );
|
memcpy( ptr, middle_dah, MIDDLE_DAH_LEN );
|
||||||
|
|
||||||
middle = new SimpleSound( middle_buf, MIDDLE_SIZE );
|
middle = new SGSimpleSound( middle_buf, MIDDLE_SIZE );
|
||||||
|
|
||||||
// Make outer marker beacon sound
|
// Make outer marker beacon sound
|
||||||
len= (int)(OUTER_DAH_LEN * 3.0 / 4.0 );
|
len= (int)(OUTER_DAH_LEN * 3.0 / 4.0 );
|
||||||
|
@ -82,7 +82,7 @@ bool FGBeacon::init() {
|
||||||
ptr += OUTER_DAH_LEN;
|
ptr += OUTER_DAH_LEN;
|
||||||
memcpy( ptr, outer_dah, OUTER_DAH_LEN );
|
memcpy( ptr, outer_dah, OUTER_DAH_LEN );
|
||||||
|
|
||||||
outer = new SimpleSound( outer_buf, OUTER_SIZE );
|
outer = new SGSimpleSound( outer_buf, OUTER_SIZE );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,9 +100,9 @@ private:
|
||||||
unsigned char middle_buf[ MIDDLE_SIZE ] ;
|
unsigned char middle_buf[ MIDDLE_SIZE ] ;
|
||||||
unsigned char outer_buf[ OUTER_SIZE ] ;
|
unsigned char outer_buf[ OUTER_SIZE ] ;
|
||||||
|
|
||||||
SimpleSound *inner;
|
SGSimpleSound *inner;
|
||||||
SimpleSound *middle;
|
SGSimpleSound *middle;
|
||||||
SimpleSound *outer;
|
SGSimpleSound *outer;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -112,9 +112,9 @@ public:
|
||||||
// allocate and initialize sound samples
|
// allocate and initialize sound samples
|
||||||
bool init();
|
bool init();
|
||||||
|
|
||||||
SimpleSound *get_inner() { return inner; }
|
SGSimpleSound *get_inner() { return inner; }
|
||||||
SimpleSound *get_middle() { return middle; }
|
SGSimpleSound *get_middle() { return middle; }
|
||||||
SimpleSound *get_outer() { return outer; }
|
SGSimpleSound *get_outer() { return outer; }
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ FGFX::init()
|
||||||
|
|
||||||
node = root.getNode("fx");
|
node = root.getNode("fx");
|
||||||
for (i = 0; i < node->nChildren(); i++) {
|
for (i = 0; i < node->nChildren(); i++) {
|
||||||
Sound *sound = new Sound();
|
SGSound *sound = new SGSound();
|
||||||
|
|
||||||
sound->init(globals->get_props(), node->getChild(i),
|
sound->init(globals->get_props(), node->getChild(i),
|
||||||
globals->get_soundmgr(), globals->get_fg_root());
|
globals->get_soundmgr(), globals->get_fg_root());
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
#include <Main/fgfs.hxx>
|
#include <Main/fgfs.hxx>
|
||||||
|
|
||||||
class Sound;
|
class SGSound;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generator for FlightGear sound effects.
|
* Generator for FlightGear sound effects.
|
||||||
|
@ -51,7 +51,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
vector<Sound *> _sound;
|
vector<SGSound *> _sound;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -165,8 +165,8 @@ bool FGMorse::cust_init(const int freq ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// make a SimpleSound morse code transmission for the specified string
|
// make a SGSimpleSound morse code transmission for the specified string
|
||||||
SimpleSound *FGMorse::make_ident( const string& id, const int freq ) {
|
SGSimpleSound *FGMorse::make_ident( const string& id, const int freq ) {
|
||||||
char *idptr = (char *)id.c_str();
|
char *idptr = (char *)id.c_str();
|
||||||
|
|
||||||
int length = 0;
|
int length = 0;
|
||||||
|
@ -260,7 +260,7 @@ SimpleSound *FGMorse::make_ident( const string& id, const int freq ) {
|
||||||
buf_ptr += SPACE_SIZE;
|
buf_ptr += SPACE_SIZE;
|
||||||
|
|
||||||
// 4. create the simple sound and return
|
// 4. create the simple sound and return
|
||||||
SimpleSound *sample = new SimpleSound( buffer, length );
|
SGSimpleSound *sample = new SGSimpleSound( buffer, length );
|
||||||
|
|
||||||
return sample;
|
return sample;
|
||||||
}
|
}
|
||||||
|
|
|
@ -124,7 +124,7 @@ public:
|
||||||
bool init();
|
bool init();
|
||||||
|
|
||||||
// make a SimpleSound morse code transmission for the specified string
|
// make a SimpleSound morse code transmission for the specified string
|
||||||
SimpleSound *make_ident( const string& id,
|
SGSimpleSound *make_ident( const string& id,
|
||||||
const int freq = LO_FREQUENCY );
|
const int freq = LO_FREQUENCY );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue