erebus

annotate liberebus/src/object.cc @ 0:4abdce1361b9

initial commit
author John Tsiombikas <nuclear@member.fsf.org>
date Sun, 27 Apr 2014 16:02:47 +0300
parents
children 474a0244f57d
rev   line source
nuclear@0 1 #include "object.h"
nuclear@0 2
nuclear@0 3 Object::Object()
nuclear@0 4 {
nuclear@0 5 name = "<unnamed>";
nuclear@0 6 inv_xform_valid = false;
nuclear@0 7 }
nuclear@0 8
nuclear@0 9 ObjType Object::get_type() const
nuclear@0 10 {
nuclear@0 11 return ObjType::null;
nuclear@0 12 }
nuclear@0 13
nuclear@0 14 void Object::set_name(const char *name)
nuclear@0 15 {
nuclear@0 16 this->name = name;
nuclear@0 17 }
nuclear@0 18
nuclear@0 19 const char *Object::get_name() const
nuclear@0 20 {
nuclear@0 21 return name.c_str();
nuclear@0 22 }
nuclear@0 23
nuclear@0 24 void Object::set_xform(const Matrix4x4 &mat)
nuclear@0 25 {
nuclear@0 26 xform = mat;
nuclear@0 27 inv_xform_valid = false;
nuclear@0 28 }
nuclear@0 29
nuclear@0 30 void Object::set_xform(const Matrix4x4 &mat, const Matrix4x4 &inv_mat)
nuclear@0 31 {
nuclear@0 32 xform = mat;
nuclear@0 33 inv_xform = inv_mat;
nuclear@0 34 inv_xform_valid = true;
nuclear@0 35 }
nuclear@0 36
nuclear@0 37 Matrix4x4 &Object::get_xform()
nuclear@0 38 {
nuclear@0 39 inv_xform_valid = false;
nuclear@0 40 return xform;
nuclear@0 41 }
nuclear@0 42
nuclear@0 43 const Matrix4x4 &Object::get_xform() const
nuclear@0 44 {
nuclear@0 45 return xform;
nuclear@0 46 }
nuclear@0 47
nuclear@0 48 const Matrix4x4 &Object::get_inv_xform() const
nuclear@0 49 {
nuclear@0 50 if(!inv_xform_valid) {
nuclear@0 51 inv_xform = xform.inverse();
nuclear@0 52 inv_xform_valid = true;
nuclear@0 53 }
nuclear@0 54 return inv_xform;
nuclear@0 55 }
nuclear@0 56
nuclear@0 57 bool Object::intersect(const Ray &ray, RayHit *hit) const
nuclear@0 58 {
nuclear@0 59 return false;
nuclear@0 60 }