Add some doxygen configuration #10
@ -1,5 +1,5 @@
 | 
				
			|||||||
project("Simple Raytracer" C)
 | 
					project("Simple Raytracer" C)
 | 
				
			||||||
cmake_minimum_required(VERSION 3.0)
 | 
					cmake_minimum_required(VERSION 3.3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(NOT CMAKE_BUILD_TYPE)
 | 
					if(NOT CMAKE_BUILD_TYPE)
 | 
				
			||||||
    set(CMAKE_BUILD_TYPE "Debug")
 | 
					    set(CMAKE_BUILD_TYPE "Debug")
 | 
				
			||||||
@ -14,6 +14,26 @@ if (CMAKE_BUILD_TYPE MATCHES Debug)
 | 
				
			|||||||
    add_link_options(--coverage)
 | 
					    add_link_options(--coverage)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					find_package( Doxygen )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ( DOXYGEN_FOUND )
 | 
				
			||||||
 | 
					  set( DOXYGEN_EXCLUDE_PATTERNS
 | 
				
			||||||
 | 
					    */test/*
 | 
				
			||||||
 | 
					    */main/*
 | 
				
			||||||
 | 
					    */external/* )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  set( DOXYGEN_OUTPUT_DIRECTORY doxygen )
 | 
				
			||||||
 | 
					  set( DOXYGEN_EXTRACT_ALL YES )
 | 
				
			||||||
 | 
					  set( DOXYGEN_OPTIMIZE_OUTPUT_FOR_C YES )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  doxygen_add_docs( doxygen "${CMAKE_CURRENT_SOURCE_DIR}" )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					else()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  message( "Doxygen need to be installed to generate the doxygen documentation" )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_subdirectory(module_math)
 | 
					add_subdirectory(module_math)
 | 
				
			||||||
add_subdirectory(module_datastructures)
 | 
					add_subdirectory(module_datastructures)
 | 
				
			||||||
add_subdirectory(module_shapes)
 | 
					add_subdirectory(module_shapes)
 | 
				
			||||||
 | 
				
			|||||||
@ -3,6 +3,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "cylinder.h"
 | 
					#include "cylinder.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * \extends CYLINDER_Cylinder
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
typedef CYLINDER_Cylinder CONE_Cone;
 | 
					typedef CYLINDER_Cylinder CONE_Cone;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const SHAPE_vtable CONE_vtable;
 | 
					const SHAPE_vtable CONE_vtable;
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,9 @@
 | 
				
			|||||||
#include "ray.h"
 | 
					#include "ray.h"
 | 
				
			||||||
#include "shape.h"
 | 
					#include "shape.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * \extends SHAPE_Shape
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
typedef SHAPE_Shape CUBE_Cube;
 | 
					typedef SHAPE_Shape CUBE_Cube;
 | 
				
			||||||
const SHAPE_vtable CUBE_vtable;
 | 
					const SHAPE_vtable CUBE_vtable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,10 @@
 | 
				
			|||||||
#include "ray.h"
 | 
					#include "ray.h"
 | 
				
			||||||
#include "shape.h"
 | 
					#include "shape.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * \extends SHAPE_Shape
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
typedef struct CYLINDER_Cylinder {
 | 
					typedef struct CYLINDER_Cylinder {
 | 
				
			||||||
    SHAPE_Shape shape;
 | 
					    SHAPE_Shape shape;
 | 
				
			||||||
    double minimum, maximum;
 | 
					    double minimum, maximum;
 | 
				
			||||||
 | 
				
			|||||||
@ -23,7 +23,7 @@ void GROUP_init(GROUP_Group* group) {
 | 
				
			|||||||
    group->list = ARRLIST_new();
 | 
					    group->list = ARRLIST_new();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void delete_subshape(void* void_shape, void* context) {
 | 
					static void delete_subshape(void* void_shape, void* context) {
 | 
				
			||||||
    assert(void_shape);
 | 
					    assert(void_shape);
 | 
				
			||||||
    UNUSED(context);
 | 
					    UNUSED(context);
 | 
				
			||||||
    SHAPE_Shape* shape = (SHAPE_Shape*) void_shape;
 | 
					    SHAPE_Shape* shape = (SHAPE_Shape*) void_shape;
 | 
				
			||||||
@ -65,7 +65,7 @@ typedef struct check_shape_context {
 | 
				
			|||||||
    RAY_Intersections* intersections;
 | 
					    RAY_Intersections* intersections;
 | 
				
			||||||
} check_shape_context;
 | 
					} check_shape_context;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void check_shape(void* void_shape, void* void_context) {
 | 
					static void check_shape(void* void_shape, void* void_context) {
 | 
				
			||||||
    check_shape_context* c = (check_shape_context*) void_context;
 | 
					    check_shape_context* c = (check_shape_context*) void_context;
 | 
				
			||||||
    SHAPE_Shape* shape = (SHAPE_Shape*) void_shape;
 | 
					    SHAPE_Shape* shape = (SHAPE_Shape*) void_shape;
 | 
				
			||||||
    SHAPE_intersect(c->intersections, shape, c->local_ray);
 | 
					    SHAPE_intersect(c->intersections, shape, c->local_ray);
 | 
				
			||||||
 | 
				
			|||||||
@ -18,6 +18,13 @@ void GROUP_destroy(GROUP_Group* group);
 | 
				
			|||||||
void GROUP_delete(GROUP_Group* group);
 | 
					void GROUP_delete(GROUP_Group* group);
 | 
				
			||||||
void GROUP_delete_shape(SHAPE_Shape* shape);
 | 
					void GROUP_delete_shape(SHAPE_Shape* shape);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * \pure This function should never be called...it should be overridden by the members of the group.
 | 
				
			||||||
 | 
					 * @param local_normal
 | 
				
			||||||
 | 
					 * @param group
 | 
				
			||||||
 | 
					 * @param local_point
 | 
				
			||||||
 | 
					 * @param hit
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
void GROUP_local_normal_at(TUPLES_Vector* local_normal, SHAPE_Shape* group, const TUPLES_Point* local_point, const RAY_Xs* hit);
 | 
					void GROUP_local_normal_at(TUPLES_Vector* local_normal, SHAPE_Shape* group, const TUPLES_Point* local_point, const RAY_Xs* hit);
 | 
				
			||||||
void GROUP_local_intersect(RAY_Intersections* intersections, SHAPE_Shape* group, const RAY_Ray* local_ray);
 | 
					void GROUP_local_intersect(RAY_Intersections* intersections, SHAPE_Shape* group, const RAY_Ray* local_ray);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -4,7 +4,11 @@
 | 
				
			|||||||
#include <ray.h>
 | 
					#include <ray.h>
 | 
				
			||||||
#include "shape.h"
 | 
					#include "shape.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * \extends SHAPE_Shape
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
typedef SHAPE_Shape PLANE_Plane;
 | 
					typedef SHAPE_Shape PLANE_Plane;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const SHAPE_vtable PLANE_vtable;
 | 
					const SHAPE_vtable PLANE_vtable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PLANE_new() (PLANE_Plane*)SHAPE_new(&PLANE_vtable)
 | 
					#define PLANE_new() (PLANE_Plane*)SHAPE_new(&PLANE_vtable)
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,11 @@
 | 
				
			|||||||
#include "material.h"
 | 
					#include "material.h"
 | 
				
			||||||
#include "shape.h"
 | 
					#include "shape.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * \extends SHAPE_Shape
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
typedef SHAPE_Shape SPHERE_Sphere;
 | 
					typedef SHAPE_Shape SPHERE_Sphere;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const SHAPE_vtable SPHERE_vtable;
 | 
					const SHAPE_vtable SPHERE_vtable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define SPHERE_new() (SPHERE_Sphere*)SHAPE_new(&SPHERE_vtable)
 | 
					#define SPHERE_new() (SPHERE_Sphere*)SHAPE_new(&SPHERE_vtable)
 | 
				
			||||||
 | 
				
			|||||||
@ -5,6 +5,10 @@
 | 
				
			|||||||
#include "ray.h"
 | 
					#include "ray.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const SHAPE_vtable TESTSHAPE_vtable;
 | 
					const SHAPE_vtable TESTSHAPE_vtable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * \extends SHAPE_Shape
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
typedef struct TESTSHAPE_TestShape {
 | 
					typedef struct TESTSHAPE_TestShape {
 | 
				
			||||||
    SHAPE_Shape parent;  /** parent class */
 | 
					    SHAPE_Shape parent;  /** parent class */
 | 
				
			||||||
    double size;
 | 
					    double size;
 | 
				
			||||||
 | 
				
			|||||||
@ -3,12 +3,18 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "shape.h"
 | 
					#include "shape.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * \extends SHAPE_Shape
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
typedef struct TRIANGLE_Triangle {
 | 
					typedef struct TRIANGLE_Triangle {
 | 
				
			||||||
    SHAPE_Shape shape;              /* Superclass */
 | 
					    SHAPE_Shape shape;              /* Superclass */
 | 
				
			||||||
    TUPLES_Point p1, p2, p3;        /* Corners of the triangle */
 | 
					    TUPLES_Point p1, p2, p3;        /* Corners of the triangle */
 | 
				
			||||||
    TUPLES_Vector e1, e2, normal;   /* Two edges and the normal vector */
 | 
					    TUPLES_Vector e1, e2, normal;   /* Two edges and the normal vector */
 | 
				
			||||||
} TRIANGLE_Triangle;
 | 
					} TRIANGLE_Triangle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * \extends TRIANGLE_Triangle
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
typedef struct TRIANGLE_SmoothTriangle {
 | 
					typedef struct TRIANGLE_SmoothTriangle {
 | 
				
			||||||
    union {
 | 
					    union {
 | 
				
			||||||
        TRIANGLE_Triangle tri;
 | 
					        TRIANGLE_Triangle tri;
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user