📄 cogenrefine.hxx
字号:
#ifndef cogenrefine_hxx#define cogenrefine_hxx#ifndef cogenerator_hxx#include "cogenerator.hxx"#endif#ifndef wzmap_hxx#include "wzmap.hxx"#endifclass CogenRefineItem{protected: friend class CogenRefine; wzFloat dist[wzPointDim]; wzFloat near[wzPointDim]; wzFloat x[wzPointDim]; wzSegment s; wzSegment so; wzIndex typ;};class CogenRefinementFunctionIsotropic :public CogenDecorator, public wzDiagonalMetricSimple{ wzmetric refinement() const {return (CogenRefinementFunctionIsotropic*)this;} wzmetric oldRefinement; wzIndex off;public: CogenRefinementFunctionIsotropic(cogenerator gen, wzIndex off = 0);protected: virtual void getMetric(wzMetricData& data, const wzPoint& p) const; virtual void getMetric(wzMetricData& data, const cogFlag1& f) const;};class CogenRefinementFunctionAnisotropic :public CogenDecorator, public wzDiagonalMetricSimple{ wzmetric oldRefinement; wzIndex off; wzIndex dim;public: CogenRefinementFunctionAnisotropic(cogenerator gen, wzIndex off = 0, wzIndex dim=3); wzmetric refinement() const {return (CogenRefinementFunctionAnisotropic*)this;}protected: virtual void getMetric(wzMetricData& data, const wzPoint& p) const; virtual void getMetric(wzMetricData& data, const cogFlag1& f) const;};class CogenRefine :public CogenDecorator, public wzDiagonalMetricSimple{ wzmetric oldRefinement; wzIndex PointMode; wzSimpleRange nList; wzSimpleRange fList; wzArray<CogenRefineItem> nItem; wzArray<CogenRefineItem> fItem;public: wzmetric refinement() const {return (CogenRefine*)this;} cogenerator generator() const {return (CogenRefine*)this;} cogenRefine cogenrefine() const; CogenRefine(cogenerator gen); wzIndex refinementInRegion(wzFloat dx, wzFloat dy, wzFloat dz, wzRegion r); wzIndex refinementNearPoint(wzFloat dx, wzFloat dy, wzFloat dz, wzFloat nx, wzFloat ny, wzFloat nz, wzFloat xx, wzFloat yy, wzFloat zz); wzIndex refinementNearFace(wzFloat dx, wzFloat dy, wzFloat dz, wzFace f); wzIndex refinementNearBoundary(wzFloat dx, wzFloat dy, wzFloat dz, wzRegion r); wzIndex refinementBetween(wzFloat dx, wzFloat dy, wzFloat dz, wzRegion r1, wzRegion r2); // isotropic variants: wzIndex refinementIsotropicInRegion(wzFloat d, wzRegion r); wzIndex refinementIsotropicNearPoint(wzFloat d, wzFloat n, wzFloat xx, wzFloat yy, wzFloat zz); wzIndex refinementIsotropicNearBoundary(wzFloat d, wzRegion r); wzIndex refinementIsotropicBetween(wzFloat d, wzRegion r1, wzRegion r2); wzIndex refinementIsotropicNearFace(wzFloat d, wzFace f); void setPointModeRectangular(); void setPointModeSpherical();protected: //virtual wzpoints generatePoints(cogeometry g,wzmetric r) const; virtual void getMetric(wzMetricData& data, const wzPoint& p) const; virtual void getMetric(wzMetricData& data, const cogFlag1& f) const;};typedef wzProxy<CogenRefine> cogenRefine;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -