X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAIModel%2FAICarrier.hxx;h=a34279b8f22bf5800c1b242970de4121a05576ba;hb=afcdbd3158503773644aa07dd86cd92d67946bd4;hp=0e88ba4527b8161549abf68f4e7fe226bb6a0271;hpb=fd492a297aee6d40c58f71b1889847b6668af3fd;p=flightgear.git diff --git a/src/AIModel/AICarrier.hxx b/src/AIModel/AICarrier.hxx index 0e88ba452..a34279b8f 100644 --- a/src/AIModel/AICarrier.hxx +++ b/src/AIModel/AICarrier.hxx @@ -24,13 +24,10 @@ #include #include -#include -#include - #include -SG_USING_STD(string); -SG_USING_STD(list); +using std::string; +using std::list; #include "AIShip.hxx" @@ -40,42 +37,6 @@ SG_USING_STD(list); class FGAIManager; class FGAICarrier; -class FGAICarrierHardware : public osg::Referenced { -public: - - enum Type { Catapult, Wire, Solid }; - - FGAICarrier *carrier; - int id; - Type type; - - static FGAICarrierHardware* newCatapult(FGAICarrier *c) { - FGAICarrierHardware* ch = new FGAICarrierHardware; - ch->carrier = c; - ch->type = Catapult; - ch->id = unique_id++; - return ch; - } - static FGAICarrierHardware* newWire(FGAICarrier *c) { - FGAICarrierHardware* ch = new FGAICarrierHardware; - ch->carrier = c; - ch->type = Wire; - ch->id = unique_id++; - return ch; - } - static FGAICarrierHardware* newSolid(FGAICarrier *c) { - FGAICarrierHardware* ch = new FGAICarrierHardware; - ch->carrier = c; - ch->type = Solid; - ch->id = unique_id++; - return ch; - } - -private: - static int unique_id; -}; - - class FGAICarrier : public FGAIShip { public: @@ -87,9 +48,7 @@ public: void setSign(const string& ); void setTACANChannelID(const string &); - void getVelocityWrtEarth(SGVec3d& v, SGVec3d& omega, SGVec3d& pivot); virtual void bind(); - virtual void unbind(); void UpdateWind ( double dt ); void setWind_from_east( double fps ); void setWind_from_north( double fps ); @@ -97,13 +56,15 @@ public: void setMinLat( double deg ); void setMaxLong( double deg ); void setMinLong( double deg ); + void setMPControl( bool c ); + void setAIControl( bool c ); void TurnToLaunch(); + void TurnToRecover(); void TurnToBase(); void ReturnToBox(); bool OutsideBox(); bool init(bool search_in_AI_path=false); - void initModel(osg::Node *node); virtual const char* getTypeString(void) const { return "carrier"; } @@ -133,17 +94,10 @@ private: double rel_wind_from_deg; - list solid_objects; // List of solid object names - list wire_objects; // List of wire object names - list catapult_objects; // List of catapult object names + list ppositions; // List of positions where an aircraft can start. string sign; // The sign of this carrier. - // Velocity wrt earth. - SGVec3d vel_wrt_earth; - SGVec3d rot_wrt_earth; - SGVec3d rot_pivot_wrt_earth; - // these describe the flols SGVec3d flols_off; @@ -151,6 +105,7 @@ private: double angle; int source; // the flols light which is visible at the moment bool wave_off_lights; + bool in_to_wind; // these are for maneuvering the carrier SGGeod mOpBoxPos; @@ -164,8 +119,11 @@ private: double base_course, base_speed; bool turn_to_launch_hdg; + bool turn_to_recovery_hdg; + bool turn_to_base_course; bool returning; // set if the carrier is returning to an operating box bool InToWind(); // set if the carrier is in to wind + bool MPControl, AIControl; SGPropertyNode_ptr _longitude_node;