refiner.h

Go to the documentation of this file.
00001 #ifndef __refiner_h
00002 #define __refiner_h
00003 
00004 #include "meshinterface.h"
00005 #include "nmatrix.h"
00006 
00007 /*************************************************************/
00008 
00009 namespace Gascoigne
00010 {
00011 class PointRefiner
00012 {
00013   const MeshInterface& H;
00014   const Vertex2d& V;
00015 
00016   nmatrix<double> A;
00017   bool VertexInQuad(int);
00018 
00019  public:
00020 
00021   PointRefiner(const MeshInterface& h, const Vertex2d& v) 
00022     : H(h), V(v), A(2,2) {}
00023 
00024   void BuildCellList(std::vector<int>&);
00025 };
00026 
00027 /*************************************************************/
00028 
00029 class CircleRefiner 
00030 {
00031   const MeshInterface&  H;
00032   const Vertex3d&  V;
00033   double R;
00034 
00035   bool QuadOnRadius(int) const;
00036 
00037  public:
00038 
00039   CircleRefiner(const MeshInterface& h, const Vertex3d& v, double r) 
00040     : H(h), V(v), R(r) {}
00041 
00042   void BuildCellList(std::vector<int>&);
00043 };
00044 
00045 /*************************************************************/
00046 
00047 class CylinderRefiner 
00048 {
00049   const MeshInterface&  H;
00050   const Vertex3d&  V;
00051   double R;
00052   int D;
00053 
00054   bool QuadInCylinder(int) const;
00055 
00056  public:
00057 
00058   CylinderRefiner(const MeshInterface& h, const Vertex3d& v, 
00059                   double r, int d)
00060     : H(h), V(v), R(r), D(d) {}
00061 
00062   void BuildCellList(std::vector<int>&);
00063 };
00064 
00065 /*************************************************************/
00066 
00067 class BallRefiner 
00068 {
00069   const MeshInterface&  H;
00070   const Vertex3d&  V;
00071   double R;
00072   
00073   bool QuadInBall(int) const;
00074 
00075  public:
00076   
00077   BallRefiner(const MeshInterface& h, const Vertex3d& v, 
00078               double r)
00079     : H(h), V(v), R(r) {}
00080 
00081   void BuildCellList(std::vector<int>&);
00082 };
00083 }
00084 
00085 /*************************************************************/
00086 
00087 #endif

Generated on Thu Sep 14 10:34:37 2006 for Gascoigne by  doxygen 1.4.7