[Gcblue-commits] gcb_wx/include/sim tcMenu.h,1.7,1.8 tcSensorMap.h,1.8,1.9
Status: Alpha
Brought to you by:
ddcforge
|
From: Dewitt C. <ddc...@us...> - 2004-11-01 03:18:04
|
Update of /cvsroot/gcblue/gcb_wx/include/sim In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20973/include/sim Modified Files: tcMenu.h tcSensorMap.h Log Message: A few more changes related to GDI+ replacement Index: tcSensorMap.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tcSensorMap.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** tcSensorMap.h 1 Sep 2004 02:55:36 -0000 1.8 --- tcSensorMap.h 1 Nov 2004 03:17:17 -0000 1.9 *************** *** 41,235 **** { ! /** ! * stores all state information needed by sensor for surveillance tracks ! */ ! class tcSensorReport ! { ! public: ! float mfLon_rad; ! float mfLat_rad; ! float mfAlt_m; ! float mfSpeed_kts; ! float mfHeading_rad; ! double mfTimestamp; ! double mfStartTime; ///< birth time of track from report ! tnPoolIndex mnTrackID; ! tnPoolIndex mnSensorPlatformID; ! UINT8 mnFlags; ! std::vector<UINT32> maEmitter; ! unsigned mbClassified : 1; ! void Clear() ! { ! mfLon_rad=0;mfLat_rad=0;mfAlt_m=0; ! mfSpeed_kts=0;mfHeading_rad=0; ! mfTimestamp=0;mfStartTime=0; ! mfStartTime = 0; ! mnTrackID = -1; ! mnSensorPlatformID = -1; ! mnFlags=0; ! mbClassified = 0; ! } ! bool IsNew() {return (mfTimestamp == 0);} ! }; ! struct tsEmitterInfo ! { ! tnPoolIndex mnEmitterID; ///< database ID of emitter ! double mfTimestamp; ! int mnMode; ! }; ! /** ! * State info for track stored in alliance sensor map. ! * The targetedRating is used by the AI to avoid inefficient ganging up on track. ! * engageRating controls how much ordance ! */ ! class tcSensorMapTrack : public tcTrack ! { ! enum {MAX_SENSOR_REPORTS = 2, MAX_EMITTERS = 4}; ! public: ! //tcTrack track; ! double mfLastUpdateTime; ! tcSensorReport maSensorReport[MAX_SENSOR_REPORTS]; ///< most recent data from contributing sensors ! int mnContributors; ! tsEmitterInfo maEmitterInfo[MAX_EMITTERS]; ! int mnEmitters; ! tnPoolIndex mnDatabaseID; ///< database ID of track ! float matchupRating; ///< matchup rating for platforms that have targeted this track ! float expectedDamage; ///< rating of expected fractional damage of weapons launched at target, 0 - none, 1.0 - totally destroyed ! float assessedDamage; ///< fractional damage assessment ! std::vector<long> intercepts; ///< vector of platform ids that are intercepting this track ! std::vector<long> engaged; ///< vector of weapon ids that are tracking / engaging ! /// called to indicate weapon launched at target ! bool AddEngagement(long id); ! /// called to indicate platform intercepting target ! bool AddIntercept(long id); ! bool AddReport(const tcSensorReport& report); ! ///< static method to set pointer to tcSimState object ! static void AttachSimState(tcSimState* ss) {simState = ss;} ! int GetEmitterCount() {return mnEmitters;} ! const tsEmitterInfo* GetEmitter(int anIdx) ! { ! if ((anIdx < 0)||(anIdx >= mnEmitters)) {return NULL;} ! return &maEmitterInfo[anIdx]; ! } ! /// gets number of weapons engaging this track ! unsigned GetEngagedCount() const; ! /// gets number of platforms intercepting this track ! unsigned GetInterceptCount() const; ! const tcTrack* GetTrack() {return this;} ! bool IsNew() {return mfTimestamp == 0;} - bool UpdateActiveReport(tcSensorReport*& rpReport, tnPoolIndex anSensorID); - void UpdateClassification(UINT16 mnClassification, teAffiliation meAffiliation, - tnPoolIndex mnDatabaseID); - bool UpdateEmitter(tsEmitterInfo*& rpEmitterInfo, tnPoolIndex anEmitterID); ! /// removes engagement ids for weapons no longer engaging this track ! void UpdateEngagements(); ! /// removes intercept ids for platforms no longer intercepting this track ! void UpdateIntercepts(); ! bool UpdatePassiveReport(tcSensorReport*& rpReport, tnPoolIndex anSensorID); ! void UpdateTrack(); - tcUpdateStream& operator<<(tcUpdateStream& stream); - tcUpdateStream& operator>>(tcUpdateStream& stream); ! tcSensorMapTrack* operator= (tcSensorMapTrack *pa) {return pa;} ! tcSensorMapTrack& operator= (const tcSensorMapTrack&); ! tcSensorMapTrack(); ! ~tcSensorMapTrack(); ! void RemoveReport(int n); ! private: ! static tcSimState *simState; ! }; - class tcAllianceSensorMap - { - enum {MAX_SMTRACKS = 512, MAX_TRACKS = 512}; - public: - int GetTrackCount(); - tnPoolIndex GetStartTrackPosition(); - void GetNextTrack(tnPoolIndex& pos, tcSensorMapTrack*& pTrack); - void Clear(); - void DropTrack(tnPoolIndex anID); ! bool AddReport(const tcSensorReport& report); ! bool UpdateActiveReport(tcSensorReport*& rpReport, tnPoolIndex anSensorID, ! tnPoolIndex anTrackID, tcSensorMapTrack*& rpSMTrack); ! bool UpdatePassiveReport(tcSensorReport*& rpReport, tnPoolIndex anSensorID, ! tnPoolIndex anTrackID, tcSensorMapTrack*& rpSMTrack); ! void Update(double afStatusTime); ! tcSensorMapTrack* GetSensorMapTrack(unsigned long anTrackID); ! bool GetTrack(unsigned long anTrackID, tcTrack& track); ! int Serialize(tcFile& file, bool mbLoad); ! tcUpdateStream& operator<<(tcUpdateStream& stream); ! tcUpdateStream& operator>>(tcUpdateStream& stream); ! tcAllianceSensorMap(); ! virtual ~tcAllianceSensorMap(); ! private: ! tcPool<tcSensorMapTrack,MAX_SMTRACKS> maTrack; ! tnPoolIndex maTrackToSensorTrack[MAX_TRACKS]; ! double mfPreviousStatusTime; ! double lastEngagementsUpdate; ! }; - /** - * holds tcAllianceSensorMaps for all alliances - * @see tcAllianceSensorMap - */ - class tcSensorMap - { - enum {MAX_MAPS = 4, MAX_ALLIANCES = 256}; - public: - int GetTrackCount(UINT8 anAlliance); - tnPoolIndex GetStartTrackPosition(UINT8 anAlliance); - void GetNextTrack(tnPoolIndex& pos, tcSensorMapTrack*& pTrack, UINT8 anAlliance); ! tcAllianceSensorMap* GetMap(UINT8 anAlliance); ! tcAllianceSensorMap* GetOrCreateMap(UINT8 alliance); ! void CreateMapForAlliance(UINT8 anAlliance); ! bool AddReport(const tcSensorReport& report, UINT8 anAlliance); ! bool UpdateActiveReport(tcSensorReport*& rpReport, tnPoolIndex anSensorID, ! tnPoolIndex anTrackID, tcSensorMapTrack*& rpSMTrack, UINT8 anAlliance); ! bool UpdatePassiveReport(tcSensorReport*& rpReport, tnPoolIndex anSensorID, ! tnPoolIndex anTrackID, tcSensorMapTrack*& rpSMTrack, UINT8 anAlliance); ! void Clear(); ! void Update(double afStatusTime); ! tcSensorMapTrack* GetSensorMapTrack(unsigned long anTrackID, UINT8 anAlliance); ! bool GetTrack(unsigned long anTrackID, tcTrack& track, UINT8 anAlliance); ! int Serialize(tcFile& file, bool mbLoad); ! bool Test(); ! tcSensorMap(); ! virtual ~tcSensorMap(); ! private: ! tcAllianceSensorMap* mapMap[MAX_MAPS]; ! int mnMaps; ! int maMapIdxForAlliance[MAX_ALLIANCES]; ! }; } #endif // _SENSORMAP_H_ --- 41,240 ---- { ! /** ! * stores all state information needed by sensor for surveillance tracks ! */ ! class tcSensorReport ! { ! public: ! float mfLon_rad; ! float mfLat_rad; ! float mfAlt_m; ! float mfSpeed_kts; ! float mfHeading_rad; ! double mfTimestamp; ! double mfStartTime; ///< birth time of track from report ! tnPoolIndex mnTrackID; ! tnPoolIndex mnSensorPlatformID; ! UINT8 mnFlags; ! std::vector<UINT32> maEmitter; ! unsigned mbClassified : 1; ! void Clear() ! { ! mfLon_rad=0;mfLat_rad=0;mfAlt_m=0; ! mfSpeed_kts=0;mfHeading_rad=0; ! mfTimestamp=0;mfStartTime=0; ! mfStartTime = 0; ! mnTrackID = -1; ! mnSensorPlatformID = -1; ! mnFlags=0; ! mbClassified = 0; ! } ! bool IsNew() {return (mfTimestamp == 0);} ! }; ! struct tsEmitterInfo ! { ! tnPoolIndex mnEmitterID; ///< database ID of emitter ! double mfTimestamp; ! int mnMode; ! }; ! /** ! * State info for track stored in alliance sensor map. ! * The targetedRating is used by the AI to avoid inefficient ganging up on track. ! * engageRating controls how much ordance ! */ ! class tcSensorMapTrack : public tcTrack ! { ! enum {MAX_SENSOR_REPORTS = 2, MAX_EMITTERS = 4}; ! public: ! //tcTrack track; ! double mfLastUpdateTime; ! tcSensorReport maSensorReport[MAX_SENSOR_REPORTS]; ///< most recent data from contributing sensors ! int mnContributors; ! tsEmitterInfo maEmitterInfo[MAX_EMITTERS]; ! int mnEmitters; ! tnPoolIndex mnDatabaseID; ///< database ID of track ! float matchupRating; ///< matchup rating for platforms that have targeted this track ! float expectedDamage; ///< rating of expected fractional damage of weapons launched at target, 0 - none, 1.0 - totally destroyed ! float assessedDamage; ///< fractional damage assessment ! std::vector<long> intercepts; ///< vector of platform ids that are intercepting this track ! std::vector<long> engaged; ///< vector of weapon ids that are tracking / engaging ! /// called to indicate weapon launched at target ! bool AddEngagement(long id); ! /// called to indicate platform intercepting target ! bool AddIntercept(long id); ! bool AddReport(const tcSensorReport& report); ! ///< static method to set pointer to tcSimState object ! static void AttachSimState(tcSimState* ss) {simState = ss;} ! virtual void Clear(); ! int GetEmitterCount() {return mnEmitters;} ! const tsEmitterInfo* GetEmitter(int anIdx) ! { ! if ((anIdx < 0)||(anIdx >= mnEmitters)) {return NULL;} ! return &maEmitterInfo[anIdx]; ! } ! /// gets number of weapons engaging this track ! unsigned GetEngagedCount() const; ! /// gets number of platforms intercepting this track ! unsigned GetInterceptCount() const; + const tcTrack* GetTrack() {return this;} + bool IsNew() {return mfTimestamp == 0;} ! bool UpdateActiveReport(tcSensorReport*& rpReport, tnPoolIndex anSensorID); ! void UpdateClassification(UINT16 mnClassification, teAffiliation meAffiliation, ! tnPoolIndex mnDatabaseID); ! bool UpdateEmitter(tsEmitterInfo*& rpEmitterInfo, tnPoolIndex anEmitterID); ! /// removes engagement ids for weapons no longer engaging this track ! void UpdateEngagements(); ! /// removes intercept ids for platforms no longer intercepting this track ! void UpdateIntercepts(); + bool UpdatePassiveReport(tcSensorReport*& rpReport, tnPoolIndex anSensorID); + void UpdateTrack(); ! tcUpdateStream& operator<<(tcUpdateStream& stream); ! tcUpdateStream& operator>>(tcUpdateStream& stream); ! tcSensorMapTrack* operator= (tcSensorMapTrack *pa) {return pa;} ! tcSensorMapTrack& operator= (const tcSensorMapTrack&); ! tcSensorMapTrack(); ! ~tcSensorMapTrack(); ! void RemoveReport(int n); + private: + static tcSimState *simState; + }; ! class tcAllianceSensorMap ! { ! enum {MAX_SMTRACKS = 512, MAX_TRACKS = 512}; ! public: ! unsigned int GetAlliance() const; ! int GetTrackCount(); ! tnPoolIndex GetStartTrackPosition(); ! void GetNextTrack(tnPoolIndex& pos, tcSensorMapTrack*& pTrack); ! void Clear(); ! void DropTrack(tnPoolIndex anID); ! bool AddReport(const tcSensorReport& report); ! bool UpdateActiveReport(tcSensorReport*& rpReport, tnPoolIndex anSensorID, ! tnPoolIndex anTrackID, tcSensorMapTrack*& rpSMTrack); ! bool UpdatePassiveReport(tcSensorReport*& rpReport, tnPoolIndex anSensorID, ! tnPoolIndex anTrackID, tcSensorMapTrack*& rpSMTrack); + void Update(double afStatusTime); + tcSensorMapTrack* GetSensorMapTrack(long anTrackID); + bool GetTrack(long anTrackID, tcTrack& track); + int Serialize(tcFile& file, bool mbLoad); ! tcUpdateStream& operator<<(tcUpdateStream& stream); ! tcUpdateStream& operator>>(tcUpdateStream& stream); ! tcAllianceSensorMap(unsigned int mapAlliance); ! virtual ~tcAllianceSensorMap(); ! private: ! tcPool<tcSensorMapTrack,MAX_SMTRACKS> maTrack; ! tnPoolIndex maTrackToSensorTrack[MAX_TRACKS]; ! double mfPreviousStatusTime; ! double lastEngagementsUpdate; ! const unsigned int alliance; ! }; ! /** ! * holds tcAllianceSensorMaps for all alliances ! * @see tcAllianceSensorMap ! */ ! class tcSensorMap ! { ! enum {MAX_MAPS = 4, MAX_ALLIANCES = 256}; ! public: ! int GetTrackCount(UINT8 anAlliance); ! tnPoolIndex GetStartTrackPosition(UINT8 anAlliance); ! void GetNextTrack(tnPoolIndex& pos, tcSensorMapTrack*& pTrack, UINT8 anAlliance); ! tcAllianceSensorMap* GetMap(UINT8 anAlliance); ! tcAllianceSensorMap* GetOrCreateMap(UINT8 alliance); ! void CreateMapForAlliance(UINT8 anAlliance); ! bool AddReport(const tcSensorReport& report, UINT8 anAlliance); ! bool UpdateActiveReport(tcSensorReport*& rpReport, tnPoolIndex anSensorID, ! tnPoolIndex anTrackID, tcSensorMapTrack*& rpSMTrack, UINT8 anAlliance); ! bool UpdatePassiveReport(tcSensorReport*& rpReport, tnPoolIndex anSensorID, ! tnPoolIndex anTrackID, tcSensorMapTrack*& rpSMTrack, UINT8 anAlliance); ! void Clear(); + void Update(double afStatusTime); + tcSensorMapTrack* GetSensorMapTrack(long anTrackID, UINT8 anAlliance); + bool GetTrack(unsigned long anTrackID, tcTrack& track, UINT8 anAlliance); + int Serialize(tcFile& file, bool mbLoad); + bool Test(); ! tcSensorMap(); ! virtual ~tcSensorMap(); ! private: ! tcAllianceSensorMap* mapMap[MAX_MAPS]; ! int mnMaps; ! int maMapIdxForAlliance[MAX_ALLIANCES]; ! ! ! }; } #endif // _SENSORMAP_H_ Index: tcMenu.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tcMenu.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** tcMenu.h 29 Oct 2004 02:50:43 -0000 1.7 --- tcMenu.h 1 Nov 2004 03:17:17 -0000 1.8 *************** *** 35,38 **** --- 35,43 ---- #include <vector> + namespace osg + { + class ref_ptr; + class Geometry; + } class tcMenu; *************** *** 82,85 **** --- 87,91 ---- static void SetParentWindow(tc3DWindow* win) {parentWindow = win;} + static void SetSubmenuIconRenderBin(int bin); static tc3DWindow* parentWindow; ///< workaround to make this work with 3D window system *************** *** 98,101 **** --- 104,110 ---- tcRect menubox; // rectangle encompassing entire menu bool mbUpdateRegions; + static osg::ref_ptr<osg::Geometry> submenuIcon; + + static void InitSubmenuIcon(); }; |