Add scene_add_object
This commit is contained in:
parent
a73cce8dbf
commit
c06fb87990
2 changed files with 30 additions and 1 deletions
27
src/scene.c
27
src/scene.c
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue