#ifndef _FG_AIEntity_HXX
#define _FG_AIEntity_HXX
-#include <plib/sg.h>
-#include <plib/ssg.h>
-
#include <simgear/math/point3d.hxx>
#include <simgear/scene/model/model.hxx>
#include <simgear/scene/model/placement.hxx>
+#include <simgear/structure/ssgSharedPtr.hxx>
+
+
+class ssgBase;
/*****************************************************************
void SetModel(ssgBranch* model);
// Run the internal calculations
- virtual void Update(double dt);
+ virtual void Update(double dt)=0;
// Send a transmission *TO* the AIEntity.
// FIXME int code is a hack - eventually this will receive Alexander's coded messages.
- virtual void RegisterTransmission(int code);
+ virtual void RegisterTransmission(int code)=0;
- inline Point3D GetPos() { return(_pos); }
+ inline const Point3D& GetPos() const { return(_pos); }
- virtual string GetCallsign();
+ virtual const string& GetCallsign()=0;
protected:
double _pitch; //degrees
char* _model_path; //Path to the 3D model
- ssgBranch* _model; // Pointer to the model
+ ssgSharedPtr<ssgBranch> _model; // Pointer to the model
SGModelPlacement _aip;
void Transform();