1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
/*
* Modification History
*
* 2000-December-13 Jason Rohrer
* Created.
*
* 2000-December-13 Jason Rohrer
* Added scale() and copy() functions.
*/
#ifndef GEOMETRIC_OBJECT_3D_INCLUDED
#define GEOMETRIC_OBJECT_3D_INCLUDED
#include "Vector3D.h"
/**
* Interface for any geometric objects in 3-space.
*
* @author Jason Rohrer
*/
class GeometricObject3D {
public:
/**
* Moves the object.
*
* @param inVector a non-normalized vector describing the motion
* of the object.
*/
virtual void move( Vector3D *inVector ) = 0;
/**
* Rotates the object about the origin.
*
* @param inAngle the angle to rotate the object by.
*/
virtual void rotate( Angle3D *inAngle ) = 0;
/**
* Rotates the object about the origin in reverse direction.
*
* @param inAngle the angle to rotate the object by
* in reverse direction.
*/
virtual void reverseRotate( Angle3D *inAngle ) = 0;
/**
* Scales the object about the origin.
*
* @param inScalar value by which to scale.
*/
virtual void scale( double inScalar ) = 0;
/**
* Makes an identical copy of this geometric object.
*/
virtual GeometricObject3D *copy() = 0;
};
#endif
|