Mesh.h

00001 
00006 #ifndef MESH_H
00007 #define MESH_H
00008 
00009 
00010 /*
00011 ** ---------------------------------------------------------------
00012 ** Includes:
00013 */
00014 #include "Polygon.h"
00015 
00016 /*
00017 ** ---------------------------------------------------------------
00018 ** Definitions:
00019 */
00020 
00022 
00029 class Mesh : Polygon {
00030 
00031 public:
00033         Mesh (int n);
00034 
00036         Mesh(const Mesh &mesh);
00037 
00039         virtual ~Mesh();
00040 
00042         int length() const;
00044         int elements_n_vertices() const;
00046         PolygonArray *elements() const;
00047 
00049         virtual insert(Polygon *p);
00051         virtual void transform(const AffineTransform &t);
00053         virtual void homoxform(const PerspectiveTransform &t);
00054 
00055 private :
00056 
00058         int elements_n_vertices;
00059 
00061         PolygonArray *polylist;
00062         
00063 };
00064 
00065 inline
00066 Mesh::Mesh (int n)
00067         : elements_n_vertices(n)
00068 {
00069         polylist = new PolygonArray();
00070 }
00071 
00072 inline
00073 Mesh::Mesh(const Mesh &mesh)
00074         : elements_n_vertices(mesh.elements_n_vertices())
00075 {
00076         polylist = mesh.elements();
00077 }
00078 
00079 inline
00080 Mesh::~Mesh()
00081 {
00082         polylist->clearAll();
00083         delete polylist;
00084 }
00085 
00086 inline int
00087 Mesh::length() const
00088 {
00089         return polylist->size();
00090 }
00091 
00092 inline int
00093 Mesh::elements_n_vertices()
00094 {
00095         return elements_n_vertices;
00096 }
00097 
00098 inline PolyArray*
00099 Mesh::elements() const
00100 {
00101         return polylist;
00102 }
00103 
00104 
00106 
00111 class TriMesh : Mesh {
00112 
00113 public:
00114 
00116         TriMesh();
00117 
00119         static Val parse(int pass, Pval *plist);
00120 
00121 };
00122 
00123 inline
00124 TriMesh::TriMesh() 
00125         : Mesh(3)
00126 {
00127 }
00128 
00129 ofstream &operator<<(ofstream &out,const TriMesh &mesh);
00130 
00131 #endif //MESH_H

Generated on Thu Jul 5 00:16:33 2007 for S3D by  doxygen 1.4.6