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

  1. //**********************************************************************
  2. //  DIVE Laboratories, Inc.
  3. //  Copyright(c) 1995
  4. //  All rights reserved.
  5. //  FILE:   VECTOR.HPP
  6. //
  7. //  DESCRIPTION
  8. //  This file provides the function prototypes for the 
  9. //  vectorClass
  10. //
  11. //  Author: M. Doucet
  12. //
  13. //  Modification History:
  14. //  3/22/95    Created
  15. //
  16. //**********************************************************************
  17. #ifndef VECTOR_HPP
  18. #define VECTOR_HPP
  19.  
  20. #include "vrtypes.hpp"
  21.  
  22. class quatClass;
  23.  
  24. class vectorClass {
  25.  
  26.     // Private Data
  27.     Vres   magnitude;    // Length of vector
  28.  
  29. public:
  30.  
  31.     // Public Data (public access for speed)
  32.     V3           v;                // Vector values
  33.  
  34.     // Value Assignment
  35.     void     set(V3 vIn);
  36.     void     set(Vres xVal=0.0, Vres yVal=0.0, Vres zVal=0.0);
  37.  
  38.     // Value Retrieval
  39.     void     get(V3 vals);
  40.  
  41.     // Vector Magnitude
  42.     Vres   mag();
  43.  
  44.     // Vector Normalization
  45.     void     unit();
  46.  
  47.     // Vector Restoration from Normalization
  48.     void     restore();
  49.  
  50.     // Vector Inverse
  51.     void     inverse();
  52.     void     inverse(vectorClass &other);
  53.     void     inverse(vectorClass *other);
  54.  
  55.     // Vector Dot Product
  56.     Vres   dot(vectorClass &other);
  57.     Vres   dot(vectorClass *other);
  58.     
  59.     // Vector Cross Product
  60.     void     cross(vectorClass &other, vectorClass *out);
  61.     void     cross(vectorClass *other, vectorClass *out);
  62.  
  63.     // Vector Addition
  64.     void     add(vectorClass &other, vectorClass *out);     
  65.     void     add(vectorClass *other, vectorClass *out);     
  66.  
  67.     // Vector Subtraction
  68.     void     subtract(vectorClass &other, vectorClass *out);     
  69.     void     subtract(vectorClass *other, vectorClass *out);
  70.     
  71.     // Vector Rotation     
  72.     void     rotate(int axis, Vres rads);
  73.     void     rotate(quatClass q);
  74.     void     rotate(vectorClass &axis, Vres rads);
  75.     void     rotate(vectorClass *axis, Vres rads);
  76.  
  77.     // Access Operator
  78.     Vres& operator[](int index);     
  79.  
  80.     // Addition Operator
  81.     void    operator+=(vectorClass &other);     
  82.     void    operator+=(vectorClass *other);     
  83.  
  84.     // Subtraction Operator
  85.     void    operator-=(vectorClass &other);     
  86.     void    operator-=(vectorClass *other);     
  87.  
  88.     // Scaling Operators
  89.     void    operator*=(const Vres scalar);     
  90.     void    operator/=(const Vres scalar);     
  91.  
  92.     // Assignment Operators
  93.     void    operator=(vectorClass &other);     
  94.     void    operator=(vectorClass *other);     
  95.  
  96.     // Equality Operators
  97.     int     operator==(vectorClass &other);     
  98.     int     operator==(vectorClass *other);
  99.     int     operator!=(vectorClass &other);     
  100.     int     operator!=(vectorClass *other);
  101.  
  102.       // Constructor
  103.     vectorClass(Vres xVal=0.0, Vres yVal=0.0, Vres zVal=0.0);
  104.  
  105.     // Destructor
  106.     ~vectorClass();
  107.  
  108. };
  109.  
  110. #endif
  111.  
  112.