⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cogregionfunction.hxx

📁 Delaunay三角形的网格剖分程序
💻 HXX
字号:
#ifndef cogregionfunction_hxx#define cogregionfunction_hxx#ifndef cog_hxx#include "cog.hxx"#endif#include "cog1d.hxx"class CogeometryCharFunction: public CogeometryDecorator{  wzFloat	level;  wzIndex	modus;  wzRegion	old;  wzRegion	region;  wzIndex	func;public:  CogeometryCharFunction(cogeometry o, wzRegion r, wzIndex f=0, wzFloat l=0)    :CogeometryDecorator(o),level(l),func(f),region(r),modus(0),old(){;}  void		inRegion(wzRegion r)		{old=r; modus=1;}  void		notInRegion(wzRegion r)		{old=r; modus=2;}  void		setLevel(wzFloat l)		{level=l;}  cogIndex	Point(cogPoint& p0) const;};class CogeometryWithRegions: public Cogeometry{  const wzPointToSegment& f;public:  CogeometryWithRegions(const wzPointToSegment& func)    :f(func){;}  CogeometryWithRegions(cogSegment (*func)(const cogPoint& p))    :f(* new wzSimplePointToSegment(func)) {;}  cogIndex     Point(cogPoint& p0) const;};// this uses a real-valued function and an 1D geometry to define a geometry;class CogeometryByFunction: public Cogeometry{  const wzPointToFloat& f;  cogeometry g;public:  CogeometryByFunction(const wzPointToFloat& func)    :f(func),g(new Cogeometry1D()){;}  CogeometryByFunction(const wzPointToFloat& func, cogeometry geom1D)    :f(func),g(geom1D){;}  CogeometryByFunction(wzFloat (*func)(const wzPoint& p))    :f(* new wzSimplePointToFloat(func)),g(new Cogeometry1D()) {;}  CogeometryByFunction(wzFloat (*func)(const wzPoint& p), cogeometry geom1D)    :f(* new wzSimplePointToFloat(func)),g(geom1D) {;}  virtual cogIndex	Point(cogPoint& p0) const;  virtual wzIndex	BoundaryCondition(cogFlag1& f) const;};class CogeometryByMap: public Cogeometry{  const wzPointToPoint& m;  cogeometry g;public:  CogeometryByMap(const wzPointToPoint& map		  ,cogeometry geom)    :m(map),g(geom){;}  CogeometryByMap(void (*map)(wzPoint& p, const wzPoint& o)		  ,cogeometry geom)    :m(* new wzSimplePointToPoint(map)),g(geom){;}  cogIndex     Point(cogPoint& p0) const;};// pattern for special functions implementation - see also simple.hxxclass CogeometrySimpleRegions:  public wzPointToSegment,  public CogeometryWithRegions{public:  cogSegment (*f)(const cogPoint& p);  CogeometrySimpleRegions(cogSegment (*func)(const cogPoint& p))    :CogeometryWithRegions(*(wzPointToSegment*)this),f(func){;}  cogSegment operator()(const cogPoint& p) const  {return f(p);}};class CogeometrySimpleFunction:  public wzPointToFloat,  public CogeometryByFunction{public:  cogFloat (*f)(const cogPoint& p);  CogeometrySimpleFunction(cogFloat (*func)(const cogPoint& p)			   ,cogeometry geom) // = new Cogeometry1D())    :CogeometryByFunction(*(wzPointToFloat*)this,geom),f(func){;}  cogFloat operator()(const cogPoint& p) const  {return f(p);}};class CogeometrySimpleMap:  public wzPointToPoint,  public CogeometryByMap{public:        void (*m)(cogPoint&, const cogPoint&);	CogeometrySimpleMap(void (*map)(cogPoint&,const cogPoint&)			    ,cogeometry geom) // = new Cogeometry1D())		:CogeometryByMap(*(wzPointToPoint*)this,geom),m(map){;}        void operator()(cogPoint& p, const cogPoint& pold) const		{m(p,pold);}};#define CogeometryOfRegions CogeometrySimpleRegions#define CogeometryByRegions CogeometryWithRegions#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -