Add scene_add_object

This commit is contained in:
Eryn Wells 2013-09-07 18:41:33 -07:00
parent a73cce8dbf
commit c06fb87990
2 changed files with 30 additions and 1 deletions

View file

@ -9,7 +9,6 @@
#include <math.h>
#include <stdlib.h>
#include "object.h"
#include "scene.h"
@ -113,6 +112,32 @@ scene_render(Scene *scene)
}
/*
* scene_add_object --
*
* Add an Object to the Scene.
*/
void
scene_add_object(Scene *scene, Object *obj)
{
ObjectList *ol = malloc(sizeof(ObjectList));
if (ol == NULL) {
return;
}
ol->object = obj;
ol->next = NULL;
ObjectList *ptr = scene->objects;
while (ptr != NULL) {
if (ptr->next == NULL) {
ptr->next = ol;
}
ptr = ptr->next;
}
}
Color
_scene_trace(Scene *scene, const Ray ray, const int depth)
{

View file

@ -9,7 +9,10 @@
#define __SCENE_H__
#include <stdio.h>
#include "camera.h"
#include "object.h"
typedef struct _ObjectList ObjectList;
@ -30,6 +33,7 @@ Scene *scene_init();
void scene_destroy(Scene *scene);
void scene_load(Scene *scene, FILE *scene_file);
void scene_render(Scene *scene);
void scene_add_object(Scene *scene, Object *object);
#endif