00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef _TRIANGLEMESH_H
00013 #define _TRIANGLEMESH_H
00014
00015 #include "Canvas.h"
00016 #include <vector>
00017
00018
00019
00020
00021
00022
00023
00024 struct TriangleFace
00025 {
00026 TriangleFace(int I, int J, int K, int Ti=-1, int Tj=-1, int Tk=-1, int Ni=-1, int Nj=-1, int Nk=-1) :
00027 i(I), j(J), k(K), ti(Ti), tj(Tj), tk(Tk), ni(Ni), nj(Nj), nk(Nk) { }
00028
00029 int i, j, k;
00030 int ni, nj, nk;
00031 int ti, tj, tk;
00032 };
00033
00034
00035
00036
00037
00038 struct TriangleMesh
00039 {
00040 TriangleMesh(const string obj_fname);
00041 TriangleMesh() { }
00042
00043 void Draw(Canvas& canvas) const { }
00044
00045 void init();
00046
00047 std :: vector<Point> V;
00048 std :: vector<Vector> N;
00049 std :: vector<RGB> T;
00050 std :: vector<TriangleFace> F;
00051 int total_triangles;
00052
00053 bool has_normal;
00054 bool has_texture;
00055 Canvas* texture;
00056 };
00057
00058
00059 #endif