📄 cogenerator.hxx
字号:
#ifndef cogenerator_hxx
#define cogenerator_hxx
#include "wzpoint.hxx"
#include "wzgrid.hxx"
#include "ibgtypes.hxx"
#ifndef wzchart_hxx
#include "wzchart.hxx"
#endif
#ifndef wzmetric_hxx
#include "wzmetric.hxx"
#endif
#ifndef wztensorgrid_hxx
#include "wztensorgrid.hxx"
#endif
class CogenOctree;
class CogenRefine;
class CogenChart;
class CogenComposite;
class CogenPoints;
typedef wzProxy<CogenOctree> cogenOctree;
typedef wzProxy<CogenChart> cogenChart;
typedef wzProxy<CogenRefine> cogenRefine;
typedef wzProxy<CogenComposite> cogenComposite;
typedef wzProxy<CogenPoints> cogenPoints;
class Cogenerator
:public virtual wzProxyTarget
{
public:
virtual cogeometry geometry() const {return 0;}
virtual wzmetric refinement() const {return 0;}
virtual wzchart chart() const {return 0;}
virtual wzFloat chi(const wzPoint&) const {return -1;};
virtual wzpoints generatePoints(cogeometry g,wzmetric r,wzchart c) const;
virtual wzgrid generateGrid(cogeometry g,wzpoints plist) const;
virtual cogenOctree cogenoctree() const;
virtual cogenChart cogenchart() const;
virtual cogenRefine cogenrefine() const;
virtual cogenComposite cogencomposite() const;
virtual cogenPoints cogenpoints() const;
virtual void endInitialization() {}
virtual ~Cogenerator() {}
// calls:
wzgrid generateGrid(cogeometry g,wzmetric r,wzchart c) const;
wzgrid generateGrid(char* pointlistfile) const;
wzgrid generateGrid(wzpoints plist) const;
wzgrid generateGrid1(wzpoints plist) const;
// operator() calls give a message, generateGrid not:
wzgrid operator()(cogeometry g,wzmetric r,wzchart c) const;
wzgrid operator()(cogeometry g) const
{return operator()(g,refinement(),chart());}
wzgrid operator()(wzmetric ref) const
{return operator()(geometry(),ref,chart());}
wzgrid operator()() const
{return operator()(geometry(),refinement(),chart());}
};
typedef wzProxy<Cogenerator> cogenerator;
class CogenDecorator
:public Cogenerator
{
protected:
virtual void initialize(){}
cogenerator original;
public:
virtual cogenOctree cogenoctree() const;
virtual cogenChart cogenchart() const;
virtual cogenRefine cogenrefine() const;
virtual cogenComposite cogencomposite() const;
virtual cogenPoints cogenpoints() const;
virtual cogeometry geometry() const {return original->geometry();}
virtual wzmetric refinement() const {return original->refinement();}
virtual wzchart chart() const {return original->chart();}
virtual wzFloat chi(const wzPoint& p) const {return original->chi(p);}
CogenDecorator(cogenerator content);//:original(content){initialize();}
cogenerator getContent() const {return original;}
void replaceContent(cogenerator c){original = c; initialize();}
virtual wzpoints generatePoints(cogeometry g,wzmetric m,wzchart c) const
{return original->generatePoints(g,m,c);}
virtual void endInitialization()
{original->endInitialization();}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -