Main Page | Class Hierarchy | Class List | File List | Class Members

transformatable.h

00001 /* ************************************************************************* 00002 transformatable.h - description 00003 ------------------- 00004 begin : Wed Oct 16 2002 00005 copyright : (C) 2002 by Micha Riser 00006 email : mriser@gmx.net 00007 00008 $Id: transformatable_8h-source.html,v 1.1 2005/02/04 21:02:26 micha Exp $ 00009 00010 ************************************************************************* */ 00011 00012 /* ************************************************************************* 00013 * * 00014 * This program is free software; you can redistribute it and/or modify * 00015 * it under the terms of the GNU General Public License as published by * 00016 * the Free Software Foundation; either version 2 of the License, or * 00017 * (at your option) any later version. * 00018 * * 00019 ************************************************************************* */ 00020 00021 #ifndef TRANSFORMATABLE_H 00022 #define TRANSFORMATABLE_H 00023 00024 #include "vector.h" 00025 00026 class Ray; 00027 00033 class Transformatable { 00034 00035 public: // Constructor and destructor 00036 00037 Transformatable() {} 00038 virtual ~Transformatable() {} 00039 00040 private: // Disallow assignment constructor 00041 Transformatable& operator=(const Transformatable&); 00042 00043 public: // Public methods 00044 00047 virtual void translate(const Vector3 &v) = 0; 00048 00051 virtual void scale(const Vector3 &v) = 0; 00052 00056 virtual void rotateDeg(const Vector3 &v) = 0; 00057 00061 virtual void rotateRad(const Vector3 &v) = 0; 00062 00066 virtual void applyOrthogonalMatrix(const Matrix &M) = 0; 00067 00071 virtual void applyMatrix(const Matrix &M) = 0; 00072 00077 void axisRotate(const Vector3& axis, DBL a); 00078 00079 }; 00080 00081 00082 #endif

Generated on Thu Jan 27 12:16:06 2005 for raytracer.kdevelop by doxygen 1.3.8