material.h

Go to the documentation of this file.
00001 #ifndef MATERIAL_H
00002 #define MATERIAL_H
00003 
00004 #include "raytrace_defs.h"
00005 
00016 
00017 class Material {
00018 
00019     public:
00020 
00022         virtual ~Material() {
00023         };
00024 
00027         virtual Magick::Color get_color(const Point3D& intersection_point) const =0;
00028 
00034         virtual Magick::Color get_color(const Point3D& intersection_point, const Renderable * const obj) const {
00035             return get_color(intersection_point);
00036         };
00037 
00043         virtual bool is_light(const Point3D& intersection_point) const =0;
00044 
00049         virtual void set_is_light(bool v) =0;
00050 
00054         virtual double get_diffuse(const Point3D& intersection_point) const =0;
00055 
00058         virtual void set_diffuse(double diffuse) =0;
00059 
00063         virtual double get_reflection(const Point3D& intersection_point) const =0;
00064 
00068         virtual double get_reflectivity(const Point3D& intersection_point) const =0;
00069 
00075         virtual double get_refraction_index(const Point3D& intersection_point) const =0;
00076 
00080         virtual double get_opacity(const Point3D& intersection_point) const =0;
00081 
00086         virtual void set_opacity(double opacity) =0;
00087 
00088 #if 0
00089 
00090 Stub out of specular methods
00091 
00096         virtual double get_specular_coeffiecient() = 0;
00097 
00104         virtual double get_specular_power() = 0;
00105 #endif
00106 
00107         
00108 };
00109 
00110 #endif

Generated on Tue Oct 30 22:12:15 2007 for mbrt by  doxygen 1.5.2