Files Classes Functions Hierarchy
#include <d3meshiterrecursive.h>
Public Member Functions | |
| d3meshiterrecursive (vector< simplexD2linked > &_vi, B &_op) | |
| Pass the mesh and binary operator in. | |
| void | eval (uintc s0) |
| Recursivly process the simplex by applying the binary operator. | |
| void | evallinear () |
| Iterate over vi and recursivly process each simplex. | |
Public Attributes | |
| vector< simplexD2linked > & | vi |
| B & | op |
Definition at line 23 of file d3meshiterrecursive.h.
| d3meshiterrecursive< B >::d3meshiterrecursive | ( | vector< simplexD2linked > & | _vi, | |
| B & | _op | |||
| ) | [inline] |
| void d3meshiterrecursive< B >::eval | ( | uintc | s0 | ) | [inline] |
Recursivly process the simplex by applying the binary operator.
Definition at line 43 of file d3meshiterrecursive.h.
References simplexD2linked::isnull(), simplexD2linked::ni, d3meshiterrecursive< B >::op, and d3meshiterrecursive< B >::vi.
Referenced by d3meshiterrecursive< B >::evallinear().
00044 { 00045 assert(s0>0); 00046 assert( s0<vi.size() ); 00047 00048 if (vi[s0].isnull()==true) 00049 return; 00050 00051 process.clear(); 00052 process.push_back(s0); 00053 00054 uint k; 00055 simplexD2linked * x; 00056 uint psz; 00057 uint nb; 00058 uint visz; 00059 for (; process.empty()==false; ) 00060 { 00061 psz = process.size(); 00062 k = process[psz-1]; 00063 process.pop_back(); 00064 x = & vi[k]; 00065 assert(x->isnull()==false); 00066 for (uint i=0; i<3; ++i) 00067 { 00068 nb = x->ni[i]; 00069 visz = vi.size(); 00070 if (op.eval(k,i)) 00071 { 00072 if (nb!=0) 00073 process.push_back(nb); 00074 process.push_back(k); 00075 00076 for (uint j=visz; j<vi.size(); ++j) 00077 process.push_back(j); 00078 i=10; // kill loop 00079 } 00080 } 00081 } 00082 00083 }
| void d3meshiterrecursive< B >::evallinear | ( | ) | [inline] |
Iterate over vi and recursivly process each simplex.
Definition at line 86 of file d3meshiterrecursive.h.
References d3meshiterrecursive< B >::eval(), and d3meshiterrecursive< B >::vi.
Referenced by menu01< T >::readBufferedTerminationAction().
| B& d3meshiterrecursive< B >::op |
Definition at line 29 of file d3meshiterrecursive.h.
Referenced by d3meshiterrecursive< B >::eval().
| vector<simplexD2linked>& d3meshiterrecursive< B >::vi |
Definition at line 28 of file d3meshiterrecursive.h.
Referenced by d3meshiterrecursive< B >::eval(), and d3meshiterrecursive< B >::evallinear().
1.5.8