00001 00009 #ifndef TRISTRIP_H 00010 #define TRISTRIP_H 00011 00012 00013 // Gluebase includes 00014 #define OUTSIDE_GLUE_CORE 00015 #include <std/hash.H> 00016 00017 #include "ISVertex.H" 00018 00019 namespace InSpace { 00020 00021 class ISMesh; 00022 00023 00024 class TriStrip 00025 { 00026 public: 00027 TriStrip(ISMesh *m) { 00028 _mesh = m; 00029 } 00030 00031 virtual ~TriStrip() {} 00032 00033 void addVertex(ISVertex *v) { 00034 _verts += v; 00035 } 00036 00037 ISVertex* lastVert() { 00038 if (_verts.num() >= 1) 00039 return _verts[_verts.num()-1]; 00040 return NULL; 00041 } 00042 00043 ISVertex* lastLastVert() { 00044 if (_verts.num() >= 2) 00045 return _verts[_verts.num()-2]; 00046 return NULL; 00047 } 00048 00049 int numVerts() { return _verts.num(); } 00050 00051 ISVertex* vertex(int n) { 00052 if ((n>=0) && (n < _verts.num())) 00053 return _verts[n]; 00054 else { 00055 cerr << "TriStrip Error: vertex index out of range." << endl; 00056 return NULL; 00057 } 00058 } 00059 00060 protected: 00061 ISMesh *_mesh; 00062 00063 ARRAY<ISVertex*> _verts; 00064 }; 00065 00066 } 00067 #endif 00068 00069 00070