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_ |