-
Notifications
You must be signed in to change notification settings - Fork 0
/
camera.c
53 lines (48 loc) · 937 Bytes
/
camera.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//
// camera.c
//
//
// Created by Malika Aubakirova on 2/18/14.
//
//
#include <stdio.h>
#include "raytracer.h"
#include <stdlib.h>
camera *camera_new(vec *loc, unsigned int h, unsigned int w)
{
camera* newc = malloc(sizeof(camera));
if(newc == NULL) {
printf("camera_new: Cannot allocate\n");
exit (1);
}
newc->loc = vec_dup(loc);
newc->h = h;
newc->w = w;
return newc;
}
camera *camera_dup(camera *c)
{
camera* newc = malloc(sizeof(camera));
if(newc == NULL) {
printf("camera_new: Cannot allocate\n");
exit (1);
}
newc->loc = vec_dup(c->loc);
newc->h = c->h;
newc->w = c->w;
return newc;
}
void camera_print(camera *c)
{
printf("\n\tCamera\n");
printf("Location:\n");
vec_print(c->loc);
printf("Size w=%u h=%u:\n", c->w, c->h);
return;
}
void camera_free(camera *c)
{
vec_free(c->loc);
free(c);
return;
}