#include <simgear/math/polar3d.hxx>
#include <simgear/math/sg_random.h>
#include <simgear/misc/sg_path.hxx>
+#include <simgear/scene/material/matlib.hxx>
+#include <simgear/scene/model/animation.hxx>
+#include <simgear/scene/model/loader.hxx>
#include <simgear/scene/model/location.hxx>
+#include <simgear/scene/model/model.hxx>
#ifdef FG_USE_CLOUDS_3D
# include <simgear/sky/clouds3d/SkySceneLoader.hpp>
# include <simgear/sky/clouds3d/SkyUtil.hpp>
#include <FDM/UIUCModel/uiuc_aircraftdir.h>
#include <GUI/gui.h>
#include <Model/acmodel.hxx>
-#include <Model/loader.hxx>
-#include <Model/model.hxx>
#include <Model/modelmgr.hxx>
#include <Model/panelnode.hxx>
#ifdef FG_NETWORK_OLK
#include <MultiPlayer/multiplayrxmgr.hxx>
#endif
-#include <Objects/matlib.hxx>
#include <Scenery/scenery.hxx>
#include <Scenery/tilemgr.hxx>
#ifdef ENABLE_AUDIO_SUPPORT
-# include <Sound/soundmgr.hxx>
# include <Sound/fg_fx.hxx>
# include <Sound/morse.hxx>
#endif
}
// Keep resetting sim time while the sim is initializing
globals->set_sim_time_sec( 0.0 );
+ SGAnimation::set_sim_time_sec( 0.0 );
} else {
// idle_state is now 1000 meaning we've finished all our
// initializations and are running the main loop, so this will
" sun_angle = " << cur_light_params.sun_angle
<< " moon_angle = " << cur_light_params.moon_angle );
*/
-
- // Some insane defaults.
- static int init = 50;
- static double sun_pos_angle = 9999.0;
- static double sun_pos_rotation = 9999.0;
- static float view_heading = 9999.0;
- static float view_heading_offset = 9999.0;
-
- if ((fabs(sun_pos_rotation - cur_light_params.sun_rotation) > 5e-3)
- || (fabs(sun_pos_angle - cur_light_params.sun_angle) > 5e-3)
- || (fabs(view_heading - current__view->getHeading_deg()) > 5e-3)
- || (fabs(view_heading_offset
- - current__view->getHeadingOffset_deg()) > 5e-3)
- || init || fgGetBool("/sim/rendering/debug"))
- {
- if ( init )
- init--;
-
- sun_pos_angle = cur_light_params.sun_angle;
- sun_pos_rotation = cur_light_params.sun_rotation;
- view_heading = current__view->getHeading_deg ();
- view_heading_offset = current__view->getHeadingOffset_deg();
-
- thesky->repaint( cur_light_params.sky_color,
+ thesky->repaint( cur_light_params.sky_color,
cur_light_params.adj_fog_color,
cur_light_params.sun_angle,
cur_light_params.moon_angle,
globals->get_ephem()->getPlanets(),
globals->get_ephem()->getNumStars(),
globals->get_ephem()->getStars() );
- }
/*
SG_LOG( SG_GENERAL, SG_BULK,
delta_time_sec = 0;
last_time_stamp = current_time_stamp;
globals->inc_sim_time_sec( delta_time_sec );
+ SGAnimation::set_sim_time_sec( globals->get_sim_time_sec() );
static long remainder = 0;
long elapsed;
SGTime *t = globals->get_time_params();
sglog().setLogLevels( SG_ALL, (sgDebugPriority)fgGetInt("/sim/log-level") );
+ sglog().setLogLevels( SG_ALL, SG_INFO );
- FGLocation * acmodel_location = 0;
+ SGLocation * acmodel_location = 0;
if(cur_fdm_state->getACModel() != 0) {
- acmodel_location = (FGLocation *) cur_fdm_state->getACModel()->get3DModel()->getFGLocation();
+ acmodel_location = (SGLocation *) cur_fdm_state->getACModel()->get3DModel()->getSGLocation();
}
SG_LOG( SG_ALL, SG_DEBUG, "Running Main Loop");
globals->get_io()->update( delta_time_sec );
// see if we need to load any deferred-load textures
- material_lib.load_next_deferred();
+ globals->get_matlib()->load_next_deferred();
// Run audio scheduler
#ifdef ENABLE_AUDIO_SUPPORT
// update tile manager for FDM...
// ...only if location is different than the viewer (to avoid duplicating effort)
- if( acmodel_location != current_view->getFGLocation() ) {
+ if( acmodel_location != current_view->getSGLocation() ) {
if( acmodel_location != 0 ) {
globals->get_tile_mgr()->prep_ssg_nodes( acmodel_location,
visibility_meters );
globals->get_tile_mgr()->
update( acmodel_location, visibility_meters,
acmodel_location->get_absolute_view_pos(globals->get_scenery()->get_center()) );
- // save results of update in FGLocation for fdm...
+ // save results of update in SGLocation for fdm...
if ( globals->get_scenery()->get_cur_elev() > -9990 ) {
acmodel_location->
set_cur_elev_m( globals->get_scenery()->get_cur_elev() );
}
}
- globals->get_tile_mgr()->prep_ssg_nodes( current_view->getFGLocation(),
+ globals->get_tile_mgr()->prep_ssg_nodes( current_view->getSGLocation(),
visibility_meters );
// update tile manager for view...
// IMPORTANT!!! the tilemgr update for view location _must_ be done last
// after the FDM's until all of Flight Gear code references the viewer's location
// for elevation instead of the "scenery's" current elevation.
- FGLocation *view_location = globals->get_current_view()->getFGLocation();
+ SGLocation *view_location = globals->get_current_view()->getSGLocation();
globals->get_tile_mgr()->update( view_location, visibility_meters,
current_view->get_absolute_view_pos() );
- // save results of update in FGLocation for fdm...
+ // save results of update in SGLocation for fdm...
if ( globals->get_scenery()->get_cur_elev() > -9990 ) {
- current_view->getFGLocation()->set_cur_elev_m( globals->get_scenery()->get_cur_elev() );
+ current_view->getSGLocation()->set_cur_elev_m( globals->get_scenery()->get_cur_elev() );
}
- current_view->getFGLocation()->set_tile_center( globals->get_scenery()->get_next_center() );
+ current_view->getSGLocation()->set_tile_center( globals->get_scenery()->get_next_center() );
// If fdm location is same as viewer's then we didn't do the update for fdm location
- // above so we need to save the viewer results in the fdm FGLocation as well...
- if( acmodel_location == current_view->getFGLocation() ) {
+ // above so we need to save the viewer results in the fdm SGLocation as well...
+ if( acmodel_location == current_view->getSGLocation() ) {
if( acmodel_location != 0 ) {
if ( globals->get_scenery()->get_cur_elev() > -9990 ) {
acmodel_location->set_cur_elev_m( globals->get_scenery()->get_cur_elev() );
ssgModelPath( (char *)modelpath.c_str() );
// Initialize the global scenery manager
+ globals->set_matlib( new SGMaterialLib );
globals->set_scenery( new FGScenery );
globals->get_scenery()->init();
globals->get_scenery()->bind();
// Initialize the general model subsystem.
////////////////////////////////////////////////////////////////////
- globals->set_model_loader(new FGModelLoader);
- globals->set_texture_loader(new FGTextureLoader);
+ globals->set_model_loader(new SGModelLoader);
globals->set_model_mgr(new FGModelMgr);
globals->get_model_mgr()->init();
globals->get_model_mgr()->bind();
if (in1.eof()) break;
}
} //while
-
+
+#if 0
if ( lightpoints->getNum() ) {
ssgBranch *lightpoints_branch;
long int dummy = -999;
lightpoints_transform->ref();
globals->get_scenery()->get_gnd_lights_root()->addKid( lightpoints_transform );
}
+#endif
} //if in1
} //if objc
// end hack for deck lights
// if ((ref_elev < -0.17) & (ref_elev >= -0.51)) sel = 0x28;
// if (ref_elev < -0.51) sel = 0x30;
// DO NOT DELETE THIS CODE - This is to compare a discrete FLOLS (without LOD) with analog FLOLS
- dummy_tile->lightmaps_sequence->select(sel);
+ // dummy_tile->lightmaps_sequence->select(sel);
sgVec3 up;
sgCopyVec3 (up, ship_up);
sgScaleVec3 (up, 4.0*ref_elev*dist/750.0);
else
sgScaleVec3 (up, 4.0*ref_elev);
- dummy_tile->ols_transform->setTransform(up);
+ // dummy_tile->ols_transform->setTransform(up);
//cout << "ref_elev " << ref_elev << endl;
}
// end hack for deck lights