00001 // Filename: angularIntegrator.h 00002 // Created by: charles (09Aug00) 00003 // 00004 //////////////////////////////////////////////////////////////////// 00005 // 00006 // PANDA 3D SOFTWARE 00007 // Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved 00008 // 00009 // All use of this software is subject to the terms of the Panda 3d 00010 // Software license. You should have received a copy of this license 00011 // along with this source code; you will also find a current copy of 00012 // the license at http://www.panda3d.org/license.txt . 00013 // 00014 // To contact the maintainers of this program write to 00015 // panda3d@yahoogroups.com . 00016 // 00017 //////////////////////////////////////////////////////////////////// 00018 00019 #ifndef ANGULARINTEGRATOR_H 00020 #define ANGULARINTEGRATOR_H 00021 00022 #include "baseIntegrator.h" 00023 #include "angularForce.h" 00024 00025 //////////////////////////////////////////////////////////////////// 00026 // Class : BaseAngularIntegrator 00027 // Description : Pure virtual base class for physical modeling. 00028 // Takes physically modelable objects and applies 00029 // forces to them. 00030 //////////////////////////////////////////////////////////////////// 00031 class EXPCL_PANDAPHYSICS AngularIntegrator : public BaseIntegrator { 00032 private: 00033 static const float _max_angular_dt; 00034 00035 // this allows baseAngularIntegrator to censor/modify data that the 00036 // actual integration function receives. 00037 virtual void child_integrate(Physical *physical, pvector< PT(AngularForce) > &forces, 00038 float dt) = 0; 00039 00040 protected: 00041 AngularIntegrator(void); 00042 00043 public: 00044 virtual ~AngularIntegrator(void); 00045 00046 void integrate(Physical *physical, pvector< PT(AngularForce) > &forces, 00047 float dt); 00048 }; 00049 00050 #endif // ANGULARINTEGRATOR_H