1#ifndef RAY_LIGHT_INCLUDED
2#define RAY_LIGHT_INCLUDED
14 virtual void _write( std::ostream &stream )
const=0;
17 virtual void _read( std::istream &stream )=0;
33 virtual std::string
name(
void )
const = 0;
61 inline std::ostream &
operator << ( std::ostream &stream ,
const Light &light ){ light.
_write( stream ) ;
return stream; }
64 inline std::istream &
operator >> ( std::istream &stream ,
Light &light ){ light.
_read( stream ) ;
return stream; }
Definition: GLSLProgram.h:33
Util::Point3D _diffuse
Definition: light.h:23
virtual void _read(std::istream &stream)=0
virtual Util::Point3D getAmbient(Util::Ray3D ray, const class RayShapeIntersectionInfo &iInfo, const Material &material) const =0
virtual void _write(std::ostream &stream) const =0
virtual Util::Point3D getDiffuse(Util::Ray3D ray, const class RayShapeIntersectionInfo &iInfo, const Material &material) const =0
friend std::istream & operator>>(std::istream &, Light &)
Definition: light.h:64
virtual void drawOpenGL(int index, GLSLProgram *glslProgram) const =0
virtual Util::Point3D getSpecular(Util::Ray3D ray, const class RayShapeIntersectionInfo &iInfo, const Material &material) const =0
friend std::ostream & operator<<(std::ostream &, const Light &)
Definition: light.h:61
virtual bool isInShadow(const class RayShapeIntersectionInfo &iInfo, const class Shape &shape, unsigned int tIdx) const =0
virtual Util::Point3D transparency(const class RayShapeIntersectionInfo &iInfo, const class Shape &shape, Util::Point3D cLimit, unsigned int samples, unsigned int tIdx) const =0
Util::Point3D _ambient
Definition: light.h:20
virtual std::string name(void) const =0
virtual ~Light(void)
Definition: light.h:30
Util::Point3D _specular
Definition: light.h:26
Definition: geometry.h:299
std::istream & operator>>(std::istream &stream, Camera &camera)
Definition: camera.cpp:15
std::ostream & operator<<(std::ostream &stream, const Camera &camera)
Definition: camera.cpp:25