#ifndef __PBMPROJECTILE_H__ #define __PBMPROJECTILE_H__ /*************************************************************************** File: PBMProjectile.h Created: 02/06/2002 Author: Maxim Garber Computer Science Department University of North Carolina - Chapel Hill garber@cs.unc.edu Description: Projectile object for physically based modeling simulation. ----------------------------------------------------------------------------. Copyright 2002 Maxim Garber UNC Collide Research Group *****************************************************************************/ #include "PBMSimObject.h" #include "ODESolver.h" #include "PBMProjectileLaunchParams.h" class PBMProjectile: // inherits from SimObject and ODESystem base classes public PBMSimObject, public ODESystem { public: PBMProjectile(PBMProjectileLaunchParams params); ~PBMProjectile(){}; ////////////////////////////////////////////////////////////////////////////// // Simulation void Update(float timeStep); ////////////////////////////////////////////////////////////////////////////// // Rendering void Draw(); ////////////////////////////////////////////////////////////////////////////// // Test For Culling bool IsActive(){return _position[1] > 0.0;} ////////////////////////////////////////////////////////////////////////////// // ODE Integration void ODEDerivative(const ODEConfig& config, float time, ODEConfig& derivative); private: // state float _position[3]; float _velocity[3]; float _mass; // forces float _gravity[3]; // force of gravity float _friction; // air friction float _externalForce[3]; // external forces acting on projectile // ODE solver ODESolver* _integrator; }; #endif //__PBMPROJECTILE_H__