main: main.o ../Camera.o  ../CompositeShape3D.o ../FrameBuffer.o  Glossy.o ../GraphicsWindow.o ../graphics3dUtilities.o ../Intersection.o ../Light.o Matte.o PathTracer.o ../Ray.o ../Sphere.o Transparent.o
	g++ main.o ../Camera.o  ../CompositeShape3D.o ../FrameBuffer.o  Glossy.o ../GraphicsWindow.o ../graphics3dUtilities.o ../Intersection.o ../Light.o Matte.o PathTracer.o ../Ray.o ../Sphere.o Transparent.o -l SDL2main -lSDL2 -lGL -o main

main.o: main.cpp  ../Camera.h ../CompositeShape3D.h ../FrameBuffer.h  Glossy.h ../GraphicsWindow.h ../Light.h ../Material.h  Matte.h  PathTracer.h ../Ray.h ../Sphere.h Transparent.h ../Tracer.h
	g++ -c main.cpp -o main.o

../Camera.o: ../Camera.h ../Camera.cpp ../graphics3dUtilities.cpp ../Ray.h
	g++ -c ../Camera.cpp -o ../Camera.o

../CompositeShape3D.o: ../CompositeShape3D.h ../CompositeShape3D.cpp ../Shape3D.h ../Intersection.h ../Ray.h
	g++ -c ../CompositeShape3D.cpp -o ../CompositeShape3D.o

../FrameBuffer.o: ../FrameBuffer.cpp ../FrameBuffer.h
	g++  -c ../FrameBuffer.cpp -o ../FrameBuffer.o

Glossy.o: Glossy.h Glossy.cpp ../graphics3dUtilities.h PathTracingMaterial.h
	g++ -c Glossy.cpp -o Glossy.o

../graphics3dUtilities.o: ../graphics3dUtilities.h ../graphics3dUtilities.cpp
	g++ -c ../graphics3dUtilities.cpp -o ../graphics3dUtilities.o

../GraphicsWindow.o: ../GraphicsWindow.cpp ../GraphicsWindow.h ../FrameBuffer.h
	g++  -c ../GraphicsWindow.cpp -o ../GraphicsWindow.o

../Intersection.o: ../Intersection.h ../Intersection.cpp ../Material.h ../Shape3D.h
	g++ -c ../Intersection.cpp -o ../Intersection.o

../Light.o: ../Light.h ../Light.h ../Light.cpp
	g++ -c ../Light.cpp -o ../Light.o

Matte.o: Matte.h Matte.cpp ../graphics3dUtilities.h PathTracingMaterial.h
	g++ -c Matte.cpp -o Matte.o

PathTracer.o: ../Tracer.h PathTracer.h PathTracer.cpp ../Camera.h ../FrameBuffer.h ../Light.h ../Shape3D.h ../Ray.h
	g++ -c PathTracer.cpp -o PathTracer.o

PathTracingMaterial.h: ../Material.h ../Intersection.h ../Ray.h PathTracer.h

../Ray.o: ../Ray.h ../Ray.cpp
	g++ -c ../Ray.cpp -o ../Ray.o

../Sphere.o: ../Sphere.h ../Sphere.cpp ../Shape3D.h ../Material.h
	g++ -c ../Sphere.cpp -o ../Sphere.o

Transparent.o: Transparent.h Transparent.cpp ../graphics3dUtilities.h ../Material.h PathTracingMaterial.h
	g++ -c Transparent.cpp -o Transparent.o

clean:
	trash *.o
	trash *~
	trash ../*.o
	trash ../*~
