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 <math.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include "object.h"
|
|
||||||
#include "scene.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
|
Color
|
||||||
_scene_trace(Scene *scene, const Ray ray, const int depth)
|
_scene_trace(Scene *scene, const Ray ray, const int depth)
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,7 +9,10 @@
|
||||||
#define __SCENE_H__
|
#define __SCENE_H__
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "camera.h"
|
#include "camera.h"
|
||||||
|
#include "object.h"
|
||||||
|
|
||||||
|
|
||||||
typedef struct _ObjectList ObjectList;
|
typedef struct _ObjectList ObjectList;
|
||||||
|
|
||||||
|
@ -30,6 +33,7 @@ Scene *scene_init();
|
||||||
void scene_destroy(Scene *scene);
|
void scene_destroy(Scene *scene);
|
||||||
void scene_load(Scene *scene, FILE *scene_file);
|
void scene_load(Scene *scene, FILE *scene_file);
|
||||||
void scene_render(Scene *scene);
|
void scene_render(Scene *scene);
|
||||||
|
void scene_add_object(Scene *scene, Object *object);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue