afxForceSet.h
Engine/source/afx/forces/afxForceSet.h
Classes:
class
class
Detailed Description
1 2 3//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~~// 4// Arcane-FX for MIT Licensed Open Source version of Torque 3D from GarageGames 5// Copyright (C) 2015 Faust Logic, Inc. 6// 7// Permission is hereby granted, free of charge, to any person obtaining a copy 8// of this software and associated documentation files (the "Software"), to 9// deal in the Software without restriction, including without limitation the 10// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 11// sell copies of the Software, and to permit persons to whom the Software is 12// furnished to do so, subject to the following conditions: 13// 14// The above copyright notice and this permission notice shall be included in 15// all copies or substantial portions of the Software. 16// 17// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 23// IN THE SOFTWARE. 24// 25//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~~// 26 27#ifndef _AFX_FORCE_SET_H_ 28#define _AFX_FORCE_SET_H_ 29 30//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~~// 31 32class afxForce; 33 34class afxForceSet 35{ 36 Vector<afxForce*> mForce_v; 37 StringTableEntry mName; 38 39 // tick-based updating 40 F32 mUpdate_dt; // constant update interval, in seconds 41 F32 mElapsed_dt; // runtime elapsed delta, in seconds 42 U32 mElapsed_ms; 43 S32 mNum_updates; 44 S32 mLast_num_updates; 45 46public: 47 /*C*/ afxForceSet(const char* name=0); 48 49 void add(afxForce* force) { mForce_v.push_back(force); } 50 void remove(afxForce* force); 51 52 S32 count() { return mForce_v.size(); } 53 afxForce* getForce(S32 idx) { return mForce_v[idx]; } 54 const char* getName() const { return mName; } 55 56 void setUpdateDT(F32 update_dt) { mUpdate_dt = update_dt; } 57 F32 getUpdateDT() { return mUpdate_dt; } 58 59 S32 updateDT(F32 dt); 60}; 61 62//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~~// 63 64class afxForceSetMgr 65{ 66 Vector<afxForceSet*> forces_sets; 67 68public: 69 /*C*/ afxForceSetMgr(); 70 /*D*/ ~afxForceSetMgr(); 71 72 afxForceSet* findForceSet(StringTableEntry name); 73 S32 numForceSets() const { return forces_sets.size(); } 74 75 void registerForce(StringTableEntry forces_set_name, afxForce* force); 76 void unregisterForce(StringTableEntry forces_set_name, afxForce* force); 77}; 78 79//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~~// 80 81#endif // _AFX_FORCE_SET_H_ 82