00001 // Filename: angularForce.h 00002 // Created by: charles (08Aug00) 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 ANGULARFORCE_H 00020 #define ANGULARFORCE_H 00021 00022 #include "baseForce.h" 00023 00024 //////////////////////////////////////////////////////////////////// 00025 // Class : AngularForce 00026 // Description : pure virtual parent of all quat-based forces. 00027 //////////////////////////////////////////////////////////////////// 00028 class EXPCL_PANDAPHYSICS AngularForce : public BaseForce { 00029 private: 00030 virtual LVector3f get_child_vector(const PhysicsObject *po) = 0; 00031 00032 protected: 00033 AngularForce(void); 00034 AngularForce(const AngularForce ©); 00035 00036 PUBLISHED: 00037 virtual ~AngularForce(void); 00038 00039 virtual AngularForce *make_copy(void) const = 0; 00040 LVector3f get_vector(const PhysicsObject *po); 00041 virtual bool is_linear(void) const; 00042 00043 public: 00044 static TypeHandle get_class_type(void) { 00045 return _type_handle; 00046 } 00047 static void init_type(void) { 00048 BaseForce::init_type(); 00049 register_type(_type_handle, "AngularForce", 00050 BaseForce::get_class_type()); 00051 } 00052 virtual TypeHandle get_type(void) const { 00053 return get_class_type(); 00054 } 00055 virtual TypeHandle force_init_type() {init_type(); return get_class_type();} 00056 00057 private: 00058 static TypeHandle _type_handle; 00059 }; 00060 00061 #endif // ANGULARFORCE_H