boundarymesh.h

Go to the documentation of this file.
00001 
00008 #ifndef BOUNDARYMESH_H
00009 #define BOUNDARYMESH_H
00010 
00011 #include <iostream>
00012 
00013 #include "boundarycomplex.h"
00014 #include "cell.h"
00015 #include "cellcomplex.h"
00016 #include "util.h"
00017 
00018 class BezierMesh;
00019 class DataStore;
00020 
00024 class BoundaryMesh : public BoundaryComplex {
00025 private:
00026 
00027     /* define these as private to prevent copying of BoundaryMesh */
00028     BoundaryMesh(const BoundaryMesh &o);
00029     const BoundaryMesh& operator=( const BoundaryMesh &o);
00030 
00031 private:
00032     /* Data members */
00033     BezierMesh *beziermesh;
00034     DataStore *datastore;
00035 public:
00036 
00037     BoundaryMesh(PersistantStore&, DataStore *);
00038     void set_bezier_mesh(BezierMesh*);
00039 
00040     BoundaryVertex* add_boundary_vertex( const Point2D& p );
00041     BoundaryEdge* add_boundary_edge( BoundaryVertex *v0, BoundaryVertex *v1, const std::vector<Point2D> &newd, const std::vector<double> &newk, Movement fixed , int color, double restlength);
00042     BoundaryEdge* add_boundary_edge( BoundaryVertex *v0, BoundaryVertex *v1, const std::vector<Point2D> &newd, const std::vector<double> &newk );
00043     BoundaryFace* add_boundary_face( const std::vector<BoundaryEdge*> &edges, double minangle, int color );
00044 
00045     void delete_vertex(BoundaryVertex *v);
00046     void delete_edge(BoundaryEdge *e);
00047 
00048     void bbox( Point2D &top, Point2D &bot );
00049 
00050     typedef Vertex_Hash_T Boundary_Vertex_Hash_T;
00051     typedef Edge_Hash_T Boundary_Edge_Hash_T;
00052     typedef Face_Hash_T Boundary_Face_Hash_T;
00053 
00054 protected:
00055     friend std::ostream& operator<<( std::ostream &stream, const BoundaryMesh &bm);
00056 };
00057 
00058 
00059 #endif /*_BOUNDARYMESH_H */

Generated on Mon May 24 09:53:30 2010 for TUMBLE by  doxygen 1.5.2