tavli

annotate src/object.h @ 6:a0d30f6f20d4

- texture coordinate generation in class Mesh - wood texture
author John Tsiombikas <nuclear@member.fsf.org>
date Fri, 26 Jun 2015 04:22:06 +0300
parents b41ceead1708
children a8e26f163f99
rev   line source
nuclear@1 1 #ifndef OBJECT_H_
nuclear@1 2 #define OBJECT_H_
nuclear@1 3
nuclear@1 4 #include "mesh.h"
nuclear@3 5 #include "geom.h"
nuclear@6 6 #include "vmath/vmath.h"
nuclear@6 7
nuclear@6 8 struct Material {
nuclear@6 9 Vector3 diffuse;
nuclear@6 10 Vector3 specular;
nuclear@6 11 float shininess;
nuclear@6 12 float alpha;
nuclear@6 13 };
nuclear@1 14
nuclear@1 15 class Object {
nuclear@1 16 private:
nuclear@1 17 Mesh *mesh;
nuclear@1 18 Matrix4x4 matrix;
nuclear@4 19 unsigned int tex;
nuclear@6 20 Matrix4x4 tex_matrix;
nuclear@1 21
nuclear@1 22 public:
nuclear@6 23 Material mtl;
nuclear@6 24
nuclear@1 25 Object();
nuclear@1 26 ~Object();
nuclear@1 27
nuclear@1 28 Matrix4x4 &xform();
nuclear@1 29 const Matrix4x4 &xform() const;
nuclear@1 30
nuclear@6 31 Matrix4x4 &tex_xform();
nuclear@6 32 const Matrix4x4 &tex_xform() const;
nuclear@6 33
nuclear@1 34 void set_mesh(Mesh *m);
nuclear@1 35 Mesh *get_mesh() const;
nuclear@1 36
nuclear@4 37 void set_texture(unsigned int tex);
nuclear@4 38
nuclear@1 39 void draw() const;
nuclear@3 40
nuclear@3 41 bool intersect(const Ray &ray, HitPoint *hit) const;
nuclear@1 42 };
nuclear@1 43
nuclear@1 44 #endif // OBJECT_H_