summaryrefslogtreecommitdiff
path: root/entity.cuh
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