VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/formationState.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2004 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: formationState.h,v $ $Revision: 1.23 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef DtFormationState_H_
00013 #define DtFormationState_H_
00014 
00015 #include "vrfobjcore/formationRecord.h"
00016 #include <vlutil/vlString.h>
00017 #include <vector>
00018 #include <map>
00019 #include "vrfobjcore/orgViewManagedObjList.h"
00020 
00021 class DtFormation;
00022 class DtFormationRecord;
00023 class DtFormationQueryResult;
00024 class DtFormationState;
00025 class DtVrfObject;
00026 class DtFormationQueryResultList;
00027 
00030 typedef void (*DtFormationStateCallbackFcn)(
00031    const DtFormationState& formationState, void* usr);
00032 
00034 struct DtFormationStateCallbackInfo
00035 {
00036    DtFormationStateCallbackFcn myCallbackFunction;
00037    void* myUserData;
00038 };
00039 
00040 #include "vrfobjcore/vrfobjcoreDefines.h"
00041 class DT_DLL_vrfobjcore DtFormationState
00042 {
00043 public:
00044    
00045    DtFormationState();
00046 
00047    DtFormationState(const DtFormationState& orig);
00048    
00049    DtFormationState& operator=(const DtFormationState& orig);
00050    
00051    virtual ~DtFormationState();
00052 
00054    virtual void setFormation(const DtFormation& formation);
00055    virtual void setFormation(const std::vector<DtFormationRecord*>& formation);
00056 
00058    virtual void addFormationRecord(const DtFormationRecord& formationRecord,
00059       int positionIndex);
00060 
00062    virtual void removeFormationRecord(int positionIndex);
00063       
00066    virtual void setEntityList(const std::vector<DtString>& entityList);
00067 
00068    virtual void setEntityListAndFormation(const std::vector<DtString>& entityList,
00069       const DtFormation& formation, const std::list<int>& formationPositions);
00070 
00073    virtual void setEntityListAndFormation(DtOrgViewManagedObjectListConstPtr entityList,
00074       const DtFormation& formation, const std::list<int>& formationPositions);
00075 
00077    virtual const std::vector<DtString>& entityList() const;
00078 
00080    virtual void clearEntityList();
00081    
00083    virtual bool lookup(const DtString& objectName, DtFormationQueryResult& result);
00084 
00087    virtual int lookupPromotionIndexByName(const DtString& objectName) const;
00088 
00092    virtual void queryAll(DtFormationQueryResultList& resultList);
00093 
00096    virtual DtString formationLeader() const;
00097 
00099    virtual double formationHalfLength() const;
00100 
00102    virtual void print();
00103 
00105    virtual void addFormationStateChangedCallback(
00106       DtFormationStateCallbackFcn fcn, void* userData);
00107 
00109    virtual void removeFormationStateChangedCallback(
00110       DtFormationStateCallbackFcn fcn, void* userData);
00111 
00114    virtual void enableFormationCallbacks();
00115    virtual void disableFormationCallbacks();
00116 
00119    virtual bool isAvailableForFormation(const DtVrfObject*) const;
00120 
00121 protected:
00122 
00123    virtual DtFormationRecord* lookupFormationRecord(int positionIndex);
00124 
00125    virtual DtVector lookupFollowOffset(const DtString& entity);
00126 
00127    virtual DtString lookupLeader(const DtString& entity);
00128 
00129    virtual void rebuildEntityToPositionMap();
00130 
00133    virtual DtFormationRecord* generateAdditionalFormationRecord(int positionIndex) const;
00134 
00137    void emptyPositionIndexToFormationRecordMap();
00138 
00141    virtual DtVector positionOffsetForPositionIndex(int positionIndex);
00142 
00143    virtual void invokeFormationStateChangedCallbacks() const;
00144 
00145 protected:
00146 
00147    std::vector<DtString> myEntityList;
00148    std::map<int, DtFormationRecord*> myPositionIndexToFormationRecordMap;
00149    std::map<DtString, DtVector> myEntityToPositionMap;
00150    std::map<int, DtString> myPositionIndexToEntityMap;
00151    std::map<DtString, int> myEntityToPositionIndexMap;
00155    std::vector<DtFormationStateCallbackInfo> myFormationStateChangedCallbackList;
00156 
00157    bool myCallbacksAreEnabled;
00158 };
00159 
00160 #endif
00161 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)