src/rcrt/objects/SolidObject.h

Go to the documentation of this file.
00001 #ifndef SOLIDOBJECT_H_
00002 #define SOLIDOBJECT_H_
00003 
00004 #include "Object.h"
00005 #include <vector>
00006 #include "../math/Matrix4D.h"
00007 
00008 namespace rcrt
00009 {
00010 
00011 class Primitive;
00012 
00013 class ImageTexture;
00014 
00018 class SolidObject : public rcrt::Object
00019 {
00020 protected:
00021         Matrix4D worldMatrix;
00022         Matrix4D invWorldMatrix;
00023         ImageTexture* displMap;
00024         float maxDispl;
00025         int displDens;
00026         
00027 public:
00028         SolidObject(std::string name);
00029         virtual ~SolidObject();
00030         
00031         virtual void setPrimitives(std::vector<Primitive*>* prList) =0;
00032         
00033         virtual void setWorldMatrix(const Matrix4D& mat);       
00034         const Matrix4D& getWorldMatrix() const;
00035         const Matrix4D& getInvWorldMatrix() const;
00036         
00041         Vec3D toWorld(const Vec3D& vec) const;
00042         
00047         Vec3D toLocal(const Vec3D& vec) const;
00048         
00053         Point3D toWorld(const Point3D& vec) const;
00054         
00059         Point3D toLocal(const Point3D& vec) const;
00060         
00065         Vec3D normalToWorld(const Vec3D& no) const;
00066         
00071         Vec3D normalToLocal(const Vec3D& no) const;
00072         
00073         
00077         void setDisplMap(ImageTexture* it);
00078         
00082         void setMaxDispl(float m);
00083         
00087         void setDisplDens(int i);
00088         
00089         const ImageTexture* const getDisplMap() const;
00090         const float& getMaxDispl() const;
00091         const int& getDisplDens() const;
00092 };
00093 
00094 }
00095 
00096 #endif /*SOLIDOBJECT_H_*/

Generated on Thu Jan 31 19:26:19 2008 for RenderingCompetitionRayTracer by  doxygen 1.5.3