📄 cogenerator.hxx
字号:
#ifndef cogenerator_hxx#define cogenerator_hxx#include "wzpoint.hxx"#include "wzgrid.hxx"#ifndef wzchart_hxx#include "wzchart.hxx"#endif#ifndef wzmetric_hxx#include "wzmetric.hxx"#endif#ifndef wztensorgrid_hxx#include "wztensorgrid.hxx"#endifclass 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 + -