blob: 737ef8b75c45cc203700821bb06dd5cc848aa28d (
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
29
30
31
|
#ifndef ENTITY_H
#define ENTITY_H
#include "common.cuh"
//we could make a template to allow double percision, but start with float
//idk how nessesary it is yet so I'll go ahead.
//I know I needed it for zoomin far into the mandelbrot ig, so it's not
//out of the question
template<class T> class entity {
using T3 = typename vect_t3<T>::vect_t;
public:
__device__ entity() : pos_(vect_create<T3>(0)), rot_(vect_create<T3>(0)), scale_(vect_create<T3>(0)) {};
__device__ entity(const T3 pos, const T3 rot, const T3 scale) : pos_(pos), rot_(rot), scale_(scale) {};
__device__ entity(const float3 pos) : pos_(pos), rot_(vect_create<T3>(0)), scale_(vect_create<T3>(0)) {};
T3 get_pos() const { return pos_; }
T3 get_rot() const { return rot_; }
T3 get_scale() const { return scale_; }
__device__ void set_pos(const T3 pos) { pos_ = pos; }
__device__ void set_rot(const T3 rot) { rot_ = rot; }
__device__ void set_scale(const T3 scale) { scale_ = scale; }
protected:
T3 pos_;
T3 rot_;
T3 scale_;
};
#endif
|