#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 entity { using T3 = typename vect_t3::vect_t; public: __device__ entity() : pos_(vect_create(0)), rot_(vect_create(0)), scale_(vect_create(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(0)), scale_(vect_create(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