//  	© Copyright Lauric Desauw, Alexandre Drewery, Yan Garito 25/04/2019 CC-BY 4.0 
                        ##########################
 ############################## Ray Tracing ####################################
                        ##########################

This C++ Package was developed for the second project of the Prog1 class. This
C++ Package allows you to make the render of a scene.

################
# Build status #
################

This project is over, reflection and diffusion are implemented.

################
# Requirements #
################

This library was developed using C++14 so we recommend to use it with
this version or higher although it might work with older versions.

######################
# Build Instructions #
######################

Unzip the archive DesauwDreweryGarito.zip
Run the command sh demo.sh to have a demonstration of the results.


############
# Features #
############

     Ball(Point3 center, double radius, Color color, double texture_coeff,
                                        bool is_source = 0);
     Creates a Ball. The texture_coeff is the part of reflection and diffusion
     in the color shown. The bool is_source indicates whether or not the shape produces light.

     Plane(Point3 p1, Point3 p2, Point3 p3, Point3 p4, Color color,
           bool is_source);
     Planes work the same way balls do.

   Color compute_color(Lightray ray, Hit &real_hit,
                    const std::vector<Shape *> &shapes,
                    const std::vector<Shape *> &sources);
    Computes the color of a pixel in function of the scene (shapes + sources).

   void scene_render(std::vector<Shape *> shapes, std::vector<Shape *> sources);
   Computes and shows the scene.

#################
# Code Instance #
#################

You can find a code example on the demo.sh file.

###########
# Credits #
###########

This project was developed by Lauric Desauw, Alexandre Drewery and Yan Garito.
The subject of this project was given by Luc Bougé, teacher at the ENS Rennes
and Timothée Haudebourg.
