}
void FGAIBase::update(double dt) {
- ft_per_deg_lat = 366468.96 - 3717.12 * cos(pos.lat()/SG_RADIANS_TO_DEGREES);
- ft_per_deg_lon = 365228.16 * cos(pos.lat() / SG_RADIANS_TO_DEGREES);
+ ft_per_deg_lat = 366468.96 - 3717.12 * cos(pos.lat()*SGD_DEGREES_TO_RADIANS);
+ ft_per_deg_lon = 365228.16 * cos(pos.lat()*SGD_DEGREES_TO_RADIANS);
// Calculate rho at altitude, using standard atmosphere
// For the temperature T and the pressure p,
props = root->getNode(_type_str.c_str(), index, true);
if (model_path != "") {
- model = sgLoad3DModel( globals->get_fg_root(),
+ model = load3DModel( globals->get_fg_root(),
model_path.c_str(),
props,
globals->get_sim_time_sec() );
return true;
}
+
+ssgBranch * FGAIBase::load3DModel(const string& fg_root,
+ const string &path,
+ SGPropertyNode *prop_root,
+ double sim_time_sec)
+{
+ // some more code here to check whether a model with this name has already been loaded
+ // if not load it, otherwise, get the memory pointer and do something like
+ // SetModel as in ATC/AIEntity.cxx
+ //SSGBranch *model;
+ model = manager->getModel(path);
+ if (!(model))
+ {
+ model = sgLoad3DModel(fg_root,
+ path,
+ prop_root,
+ sim_time_sec);
+ manager->setModel(path, model);
+ model->ref();
+ }
+ //else
+ // {
+ // model->ref();
+ // aip.init(model);
+ // aip.setVisible(false);
+ // globals->get_scenery()->get_scene_graph()->addKid(aip.getSceneGraph());
+ // do some setModel stuff.
+ return model;
+}
+
bool FGAIBase::isa( object_type otype ) {
if ( otype == _otype ) { return true; }
else { return false; }