VActorPhysicsStates.h
Engine/source/Verve/VActor/VActorPhysicsStates.h
Classes:
class
Public Defines
define
ActorPhysicsStateInstance(name) <##name##>::instance()
define
DeclareActorPhysicsState(name) class ##name## : public \ { \ public: \ enter( *pObject ); \ bool execute( *pObject ); \ processTick( *pObject, &pElapsedTime, *pMove ); \ }
define
ExecuteActorPhysicsState(name) bool ##name##PhysicsState::execute( *pObject )
define
ImplementActorPhysicsState(name, state) ##name##PhysicsState::enter( *pObject ) { pObject->getPhysicsController()->setPhysicsState( state ); }
define
ProcessActorPhysicsState(name) ##name##PhysicsState::processTick( *pObject, &pElapsedTime, *pMove )
Detailed Description
Public Defines
ActorPhysicsStateInstance(name) <##name##>::instance()
DeclareActorPhysicsState(name) class ##name## : public \ { \ public: \ enter( *pObject ); \ bool execute( *pObject ); \ processTick( *pObject, &pElapsedTime, *pMove ); \ }
ExecuteActorPhysicsState(name) bool ##name##PhysicsState::execute( *pObject )
ImplementActorPhysicsState(name, state) ##name##PhysicsState::enter( *pObject ) { pObject->getPhysicsController()->setPhysicsState( state ); }
ProcessActorPhysicsState(name) ##name##PhysicsState::processTick( *pObject, &pElapsedTime, *pMove )
1 2//----------------------------------------------------------------------------- 3// Verve 4// Copyright (C) 2014 - Violent Tulip 5// 6// Permission is hereby granted, free of charge, to any person obtaining a copy 7// of this software and associated documentation files (the "Software"), to 8// deal in the Software without restriction, including without limitation the 9// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 10// sell copies of the Software, and to permit persons to whom the Software is 11// furnished to do so, subject to the following conditions: 12// 13// The above copyright notice and this permission notice shall be included in 14// all copies or substantial portions of the Software. 15// 16// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 22// IN THE SOFTWARE. 23//----------------------------------------------------------------------------- 24#ifndef _VT_VACTORPHYSICSSTATES_H_ 25#define _VT_VACTORPHYSICSSTATES_H_ 26 27#ifndef _VT_VACTORSTATETABLE_H_ 28#include "VActorStateTable.h" 29#endif 30 31#ifndef _TSINGLETON_H_ 32#include "core/util/tSingleton.h" 33#endif 34 35//----------------------------------------------------------------------------- 36struct Move; 37//----------------------------------------------------------------------------- 38 39class VActorPhysicsState : public VActorState 40{ 41public: 42 43 virtual void exit( VActor *pObject ) {}; 44 45 virtual void processTick( VActor *pObject, const F32 &pElapsedTime, const Move *pMove ) = 0; 46}; 47 48//----------------------------------------------------------------------------- 49 50#define DeclareActorPhysicsState( name ) \ 51 class VActor##name##PhysicsState : public VActorPhysicsState \ 52 { \ 53 public: \ 54 void enter( VActor *pObject ); \ 55 bool execute( VActor *pObject ); \ 56 void processTick( VActor *pObject, const F32 &pElapsedTime, const Move *pMove ); \ 57 } 58 59#define ActorPhysicsStateInstance( name ) \ 60 Singleton<VActor##name##PhysicsState>::instance() 61 62#define ImplementActorPhysicsState( name, state ) \ 63 void VActor##name##PhysicsState::enter( VActor *pObject ) { pObject->getPhysicsController()->setPhysicsState( state ); } 64 65#define ExecuteActorPhysicsState( name ) \ 66 bool VActor##name##PhysicsState::execute( VActor *pObject ) 67 68#define ProcessActorPhysicsState( name ) \ 69 void VActor##name##PhysicsState::processTick( VActor *pObject, const F32 &pElapsedTime, const Move *pMove ) 70 71//----------------------------------------------------------------------------- 72 73#endif // _VT_VACTORPHYSICSSTATES_H_ 74