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

📄 cogencomposite.cxx

📁 Delaunay三角形的网格剖分程序
💻 CXX
字号:
#include "cogencomposite.hxx"#include "cogenpoints.hxx"cogenComposite	CogenComposite::cogencomposite() const {return (CogenComposite*) this;}class cogPairIntersection: public cogPairToSegment{        cogSegment operator()(cogSegment s1,cogSegment s2)        	{if(s1.index()<s2.index()) return s1; return s2;}};class cogPairUnion: public cogPairToSegment{        cogSegment operator()(cogSegment s1,cogSegment s2)        	{if(s1.index()>s2.index()) return s1; return s2;}};class cogPairSplit: public cogPairToSegment{        cogSegment operator()(cogSegment s1,cogSegment s2)                {if(s1 != single) return s1; return s2;}        cogSegment single;public:        cogPairSplit(cogRegion r):single(r){;}};class cogPairOverlay: public cogPairToSegment{        cogSegment operator()(cogSegment s1,cogSegment s2)        	{if(s1 == single) return s1; return s2;}        cogSegment single;public:        cogPairOverlay(cogRegion s):single(s){;}};CogenUnion::CogenUnion():CogenComposite(new cogPairUnion,new cogPairUnion){;}CogenIntersection::CogenIntersection():CogenComposite(new cogPairIntersection,new cogPairIntersection){;}CogenSplit::CogenSplit(cogRegion r):CogenComposite(new cogPairSplit(r),new cogPairUnion){;}CogenOverlay::CogenOverlay(cogRegion r):CogenComposite(new cogPairOverlay(r),new cogPairUnion){;}CogenComposite::CogenComposite(cogPairToSegment *r, cogPairToSegment *f)  :region(r),face(f),   wzRange(sizeof(cogenerator)),   generator(base){}CogenComposite::~CogenComposite(){  wzIndex i;  wzRangeLoop(*this,i){    generator[i] = 0;  }  }void CogenComposite::setDelta(cogFloat delta){  wzIndex i;  wzRangeLoop(*this,i){    generator[i]->geometry()->setDelta(delta);  }  Cogeometry::setDelta(delta);}wzIndex	CogenComposite::Point(wzPoint& p0) const{  cogSegment r0 = defaultRegion;  wzIndex i;  wzRangeLoop(*this,i){    generator[i]->geometry()->Point(p0);    r0 = (*region)(r0,p0.segment());  }  p0.segment() = r0;  return cogRCRegionFound;}/*wzIndex	CogenComposite::Line (cogFlag1& f, const cogLine& s) const{  return Cogeometry::Line(f,s);}*/wzIndex	CogenComposite::BoundaryCondition(cogFlag1& f) const{  cogSegment f0 = defaultFace;  wzIndex i;  wzRangeLoop(*this,i){    generator[i]->geometry()->BoundaryCondition(f);    f0 = (*face)(f0,f.p1.segment());  }  f.p1.segment() = f0;  return cogRCConditionFound;}void		CogenComposite::endInitialization() {  setDelta(Delta);}wzIndex CogenComposite::add(cogenerator gen){  wzIndex i = create();  gen->endInitialization();  generator[i] = gen;  return i;}wzIndex CogenComposite::add(cogeometry geo){  cogenerator simple = new CogenPoints(new wzPointList,geo);  return add(simple);}

⌨️ 快捷键说明

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