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

📄 wztensorgrid.cxx

📁 Delaunay三角形的网格剖分程序
💻 CXX
字号:
#include "wztensorgrid.hxx"wzFloat wzTensorGrid::epsilon = 1.e-7;wzTensorGrid::wzTensorGrid(wzIndex dim, wzFloat eps){  int i;  for(i=0;i<wzPointDim;i++){    x[i].reinitialize(n[i]);    r[i] = 0;  }  checked = 0;}void wzTensorGrid::check() const{  if(!checked){throw wzFailure();}}void wzTensorGrid::add(wzIndex i, wzFloat f){  int l; wzFloat t;  if(checked){throw wzFailure();}  if(f <= -wzInfty) return;  if(f >=  wzInfty) return;  wzRangeLoop(n[i],l){    t=x[i][l];    if(t < f-epsilon) continue;    if(t < f+epsilon) return;    x[i][l] = f; f = t;  }  l = n[i].create(); x[i][l] = f;}void wzTensorGrid::getBox(wzFloat *min, wzFloat *max) const{  for(int i=0;i<wzPointDim;i++){    min[i] = x[i][n[i].first()];    max[i] = x[i][n[i].last()];  }}void wzTensorGrid::endInitialization(wzFloat *min, wzFloat *max){  int i;  if(checked){throw wzFailure();}  for(i=wzPointDim-1;i>=0;i--){    if(n[i].length()>1){      dim = i+1; break;    }    if(n[i].length()==0) add(i,min[i]);    if(n[i].length()==0) add(i,max[i]);    if(n[i].length()==0) add(i,0);  }  for(i=0;i<dim;i++){    if(n[i].length()==0){add(i,min[i]); add(i,max[i]);}    if(n[i].length()==0){add(i,0); add(i,1);}    if(n[i].length()==1){add(i,min[i]);}    if(n[i].length()==1){add(i,max[i]);}    if(n[i].length()==1){      if(min[i]>0) 	add(i,x[i][0]+1);      else		add(i,0);    }    if(n[i].length()==1){add(i,1);}  }  checked = 1;}    

⌨️ 快捷键说明

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