blob: 6e5178c976860bc81f21f17df9a3075d97bd3f81 (
plain)
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
|
#ifndef VIEWPOINT_H
#define VIEWPOINT_H
#include "vector.h"
// 100 degrees
#define FOV 1.74533
typedef struct {
// Viewpoint dimensions
unsigned int width;
unsigned int height;
// Position and orientation
vector_t position, target;
// Viewpoint shift vectors
// Calculated at initialisation
vector_t qx, qy;
// Left button center pixel location
vector_t blc;
} viewpoint_t;
// Todo handle initial setup
void viewpoint_init(viewpoint_t *view);
void viewpoint_ray(viewpoint_t *view, vector_t *r, unsigned x, unsigned y);
#endif
|