cogsimple.hxx

来自「有限元学习研究用源代码(老外的),供科研人员参考」· HXX 代码 · 共 68 行

HXX
68
字号
#ifndef cogsimple_hxx
#define cogsimple_hxx

#ifndef cogfunction_hxx
#include "cogfunction.hxx"
#endif
class CogeometryPlane;
class CogeometryEllipsoid;

class CogeometryPlane: 
public 	CogeometryWithRegions, 
public	cogPointToSegment{
        cogFloat a[3];
	cogFloat d;
	cogRegion rminus;
	cogRegion rplus;
public:
	CogeometryPlane(cogFloat  x,   cogFloat  y=0, cogFloat  z=0,
			cogFloat ax=1, cogFloat ay=1, cogFloat az=1, 
			cogRegion rpositive=2, cogRegion rnegative=1);
	CogeometryPlane(cogRegion rpositive=2, cogRegion rnegative=1);
        cogSegment operator()(const cogPoint& p) const;
	void setDirection(cogFloat x=1, cogFloat y=0, cogFloat z=0);
	void setPoint(cogFloat x=0, cogFloat y=0, cogFloat z=0);
};

class CogeometryEllipsoid:
public 	CogeometryWithRegions, 
public	cogPointToSegment{
	cogFloat c[3];
	cogFloat r[3];
	cogRegion rin;
	cogRegion rout;
public:
	CogeometryEllipsoid(cogFloat  x=0, cogFloat  y=0, cogFloat  z=0,
			    cogFloat rx=1, cogFloat ry=1, cogFloat rz=1, 
			    cogRegion rinside=2, cogRegion routside=1);
	CogeometryEllipsoid(cogRegion rinside=2, cogRegion routside=1);
        cogSegment operator()(const cogPoint& p) const;
	void setCenter(cogFloat x=0, cogFloat y=0, cogFloat z=0);
	void setRadius(cogFloat rx=1, cogFloat ry=1, cogFloat rz=1);
	void setSphere(cogFloat r=1);
	void moveCenter(cogFloat x=0, cogFloat y=0, cogFloat z=0);
	void stretchRadius(cogFloat fx=1, cogFloat fy=1, cogFloat fz=1);
	void stretchRadius(cogFloat f=1);
};

class CogeometryTorus:
public 	CogeometryWithRegions, 
public	cogPointToSegment{
	cogFloat c[3];
	cogFloat rp,rs,rz2;
	cogRegion rin;
	cogRegion rout;
public:
	CogeometryTorus(cogFloat  x=0, cogFloat  y=0, cogFloat  z=0,
			    cogFloat rbig=1, cogFloat rsmall=0.5, 
			    cogRegion rinside=2, cogRegion routside=1);
	CogeometryTorus(cogRegion rinside=2, cogRegion routside=1);
        cogSegment operator()(const cogPoint& p) const;
	void setCenter(cogFloat x=0, cogFloat y=0, cogFloat z=0);
	void setScale(cogFloat rbig=1.0, cogFloat rsmall=0.5);
	void moveCenter(cogFloat x=0, cogFloat y=0, cogFloat z=0);
};


#endif

⌨️ 快捷键说明

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