home *** CD-ROM | disk | FTP | other *** search
- //**********************************************************************
- // DIVE Laboratories, Inc.
- // Copyright(c) 1995
- // All rights reserved.
- // FILE: VECTOR.HPP
- //
- // DESCRIPTION
- // This file provides the function prototypes for the
- // vectorClass
- //
- // Author: M. Doucet
- //
- // Modification History:
- // 3/22/95 Created
- //
- //**********************************************************************
- #ifndef VECTOR_HPP
- #define VECTOR_HPP
-
- #include "vrtypes.hpp"
-
- class quatClass;
-
- class vectorClass {
-
- // Private Data
- Vres magnitude; // Length of vector
-
- public:
-
- // Public Data (public access for speed)
- V3 v; // Vector values
-
- // Value Assignment
- void set(V3 vIn);
- void set(Vres xVal=0.0, Vres yVal=0.0, Vres zVal=0.0);
-
- // Value Retrieval
- void get(V3 vals);
-
- // Vector Magnitude
- Vres mag();
-
- // Vector Normalization
- void unit();
-
- // Vector Restoration from Normalization
- void restore();
-
- // Vector Inverse
- void inverse();
- void inverse(vectorClass &other);
- void inverse(vectorClass *other);
-
- // Vector Dot Product
- Vres dot(vectorClass &other);
- Vres dot(vectorClass *other);
-
- // Vector Cross Product
- void cross(vectorClass &other, vectorClass *out);
- void cross(vectorClass *other, vectorClass *out);
-
- // Vector Addition
- void add(vectorClass &other, vectorClass *out);
- void add(vectorClass *other, vectorClass *out);
-
- // Vector Subtraction
- void subtract(vectorClass &other, vectorClass *out);
- void subtract(vectorClass *other, vectorClass *out);
-
- // Vector Rotation
- void rotate(int axis, Vres rads);
- void rotate(quatClass q);
- void rotate(vectorClass &axis, Vres rads);
- void rotate(vectorClass *axis, Vres rads);
-
- // Access Operator
- Vres& operator[](int index);
-
- // Addition Operator
- void operator+=(vectorClass &other);
- void operator+=(vectorClass *other);
-
- // Subtraction Operator
- void operator-=(vectorClass &other);
- void operator-=(vectorClass *other);
-
- // Scaling Operators
- void operator*=(const Vres scalar);
- void operator/=(const Vres scalar);
-
- // Assignment Operators
- void operator=(vectorClass &other);
- void operator=(vectorClass *other);
-
- // Equality Operators
- int operator==(vectorClass &other);
- int operator==(vectorClass *other);
- int operator!=(vectorClass &other);
- int operator!=(vectorClass *other);
-
- // Constructor
- vectorClass(Vres xVal=0.0, Vres yVal=0.0, Vres zVal=0.0);
-
- // Destructor
- ~vectorClass();
-
- };
-
- #endif
-
-