Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Transformation.h

00001 /*
00002   File: Transformation.h
00003 
00004   Copyright(C) C. Kotterink, Computed Graphics
00005 */
00006 #ifndef TRANSFORMATION_H
00007 #define TRANSFORMATION_H
00008 
00009 #include<ImplicitShape.h>
00010 
00011 #include<Vertex3.h>
00012 #include<real.h>
00013 
00016 class Transformation : public ImplicitShape
00017 {
00018     DYNAMIC_OBJECT;
00019 public:
00020     Transformation(): operand(0), lipschitz(1) {
00021         M.identity();
00022     }
00023     ~Transformation();
00024 
00025     void transform(Matrix4 &m);
00026 
00027     // Inherited from ImplicitShape
00028     real distance(const Vertex3 &v);
00029 
00030     // Inherited from Shape
00031     Color4 calculateShade(
00032         const SurfaceInfo &s, Vertex3 &transformed, Scene &scene);
00033 
00034     // Inherited from DynamicObject
00035     void parseSymbol(Token &t, ObjectFile &file);
00036     void writeParams(ostream &stream);
00037 
00038 protected:
00039     ImplicitShape *operand;
00040     Matrix4 M;
00041     real lipschitz;
00042 
00043 private:
00044     typedef ImplicitShape super;
00045 };
00046 #endif

This documentation was generated using doxygen. If you have any comments or additions please mail me.