home *** CD-ROM | disk | FTP | other *** search
/ VRML Tools for 3D Cyberspace / VRML_Tools_For_3D_Cyberspace.iso / amber / include / kine.hpp < prev    next >
C/C++ Source or Header  |  1996-07-01  |  2KB  |  89 lines

  1. //**********************************************************************
  2. //  DIVE Laboratories, Inc.
  3. //  Copyright(c) 1995
  4. //  All rights reserved.
  5. //
  6. //  FILE:   KINE.HPP
  7. //
  8. //  DESCRIPTION
  9. //  This header provides the class definition for the 
  10. //  kinematicClass class.
  11. //
  12. //**********************************************************************
  13. #ifndef KINEMATIC
  14. #define KINEMATIC
  15.  
  16. #include "vrtypes.hpp"
  17. #include "vector.hpp"
  18. #include "position.hpp"
  19.  
  20. class geometryClass;
  21. //---------------------------------------------------------------------
  22. //  This is the class definition for the kinematicClass.
  23. //
  24. class kinematicClass {
  25.  
  26. //  Private Data
  27.  
  28. private:
  29.  
  30.     double tauFactor;
  31.     int    computeTau;
  32.     geometryClass *geo;
  33.     float currentTime, previousTime;
  34.  
  35. protected:
  36.  
  37. // Public Data
  38.  
  39. public:
  40.  
  41.     positionClass position, prevPosition;
  42.     vectorClass  velocity, acceleration, force;
  43.     float mass, cElasticity;
  44.  
  45. // Data control
  46.  
  47.    void setPos(positionClass pos);
  48.    void setPos(V3 pos);
  49.  
  50.    void setVel(vectorClass vel);
  51.    void setVel(V3 vel);
  52.  
  53.    void setAccel(vectorClass accel);
  54.    void setAccel(V3 accel);
  55.  
  56.     void applyAccel(vectorClass accel);
  57.     void applyAccel(V3 accel);
  58.  
  59.     void applyForce(vectorClass f);
  60.     void applyForce(V3 f);
  61.  
  62. // Visible geometry
  63.  
  64.    void setGeo(geometryClass *g);
  65.    geometryClass *getGeo();
  66.  
  67. // Kinematics
  68.  
  69.    void kinematic(void);
  70.  
  71. // Constructor Functions
  72.  
  73.    kinematicClass(V3 pos, V3 vel, V3 accel);
  74.    kinematicClass(positionClass pos, vectorClass vel, vectorClass accel);
  75.  
  76.    kinematicClass (int computeTauValueFromClock = 0,
  77.                          double tau = 0.1);
  78.  
  79. // Destructor Function
  80.  
  81.    ~kinematicClass(); 
  82.     
  83. };
  84.  
  85. #endif
  86.  
  87.  
  88.  
  89.