Compounds | |
class | guge::AltMethodTable |
class | guge::MethodTable |
struct | guge::PatternRec |
Functions | |
template<class T> bool | RegularIntersectLines (const point< T > &A, const point< T > &B, const point< T > &a, const point< T > &b, T *lambda, T *mu) |
template<class T> bool | IntersectTriangles (const triangle< T > &tri0, const triangle< T > &tri1, point< T > *retP1, point< T > *retP2) |
template<class T, class HP, class EP> bool | IsLinear (const int n, const Ptr< HP > &Pw, const T tol) |
template bool | IsLinear< float, hpoint< float >, point< float > > (const int n, const Ptr< hpoint< float > > &Pw, const float tol) |
template bool | IsLinear< double, hpoint< double >, point< double > > (const int n, const Ptr< hpoint< double > > &Pw, const double tol) |
template bool | IsLinear< float, point< float >, point< float > > (const int n, const Ptr< point< float > > &Pw, const float tol) |
template bool | IsLinear< double, point< double >, point< double > > (const int n, const Ptr< point< double > > &Pw, const double tol) |
template bool | IsLinear< float, hpoint2< float >, point2< float > > (const int n, const Ptr< hpoint2< float > > &Pw, const float tol) |
template bool | IsLinear< double, hpoint2< double >, point2< double > > (const int n, const Ptr< hpoint2< double > > &Pw, const double tol) |
template bool | IsLinear< float, point2< float >, point2< float > > (const int n, const Ptr< point2< float > > &Pw, const float tol) |
template bool | IsLinear< double, point2< double >, point2< double > > (const int n, const Ptr< point2< double > > &Pw, const double tol) |
template<class T, class HP> bool | IsPlanar (const int nu, const int nv, const Ptr< Ptr< HP > > &Pw, const T tol) |
template bool | IsPlanar (const int nu, const int nv, const Ptr< Ptr< hpoint< float > > > &Pw, const float tol) |
template bool | IsPlanar (const int nu, const int nv, const Ptr< Ptr< hpoint< double > > > &Pw, const double tol) |
template bool | IsPlanar (const int nu, const int nv, const Ptr< Ptr< point< float > > > &Pw, const float tol) |
template bool | IsPlanar (const int nu, const int nv, const Ptr< Ptr< point< double > > > &Pw, const double tol) |
template<class T> GULAPI bool | isRectangle (int nP, const Ptr< point2< T > > &P, T &u1, T &u2, T &v1, T &v2) |
template GULAPI bool | isRectangle (int nP, const Ptr< point2< float > > &P, float &u1, float &u2, float &v1, float &v2) |
template GULAPI bool | isRectangle (int nP, const Ptr< point2< double > > &P, double &u1, double &u2, double &v1, double &v2) |
template<class T> GULAPI bool | isRectangle (int nP, const Ptr< gul::point2< T > > &P, T &u1, T &u2, T &v1, T &v2) |
template<class T> void | RenumberVerts (const point< T > &P1, const point< T > &P2, const point< T > &P3, const point< T > &T1, const point< T > &T2, const point< T > &T3, bool inv, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw1 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw2 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw3 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw3a (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw4 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw5 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw6 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw6a (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw7 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw7a (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw8 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw9 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw10 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw10a (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw11 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw12 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw12a (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw13 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw13a (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | Draw14 (unsigned char pat, point< T > *med, point< T > *norm, void(*func)(bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *fdat) |
template<class T> void | FirstPlane (int nx, int ny, Ptr< Ptr< T > > F0, Ptr< Ptr< unsigned char > > Pat1) |
template<class T> void | NextPlane (int nx, int ny, Ptr< Ptr< T > > Fi, Ptr< Ptr< unsigned char > > Pat0, Ptr< Ptr< unsigned char > > Pat1) |
void | Harmonize (int k, int j, int i, int nx, int ny, int nz, Ptr< Ptr< Ptr< unsigned char > > > flags) |
template<class T> GULAPI void | MarchingCube (T x0, T y0, T z0, T dx, T dy, T dz, int nx, int ny, int nz, Ptr< Ptr< Ptr< T > > > F, void(*trifunc)(const bool, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, const point< T > *, void *), void *tridata) |
template GULAPI void | MarchingCube (float x0, float y0, float z0, float dx, float dy, float dz, int nx, int ny, int nz, Ptr< Ptr< Ptr< float > > > F, void(*trifunc)(const bool, const point< float > *, const point< float > *, const point< float > *, const point< float > *, const point< float > *, const point< float > *, void *), void *tridata) |
template GULAPI void | MarchingCube (double x0, double y0, double z0, double dx, double dy, double dz, int nx, int ny, int nz, Ptr< Ptr< Ptr< double > > > F, void(*trifunc)(const bool, const point< double > *, const point< double > *, const point< double > *, const point< double > *, const point< double > *, const point< double > *, void *), void *tridata) |
template<class T> void | UpdateBoundingBoxH (const int nP, const Ptr< hpoint< T > > &Pw, T &minx, T &maxx, T &miny, T &maxy, T &minz, T &maxz) |
template<class T> void | UpdateBoundingBoxH (const int nP, const Ptr< hpoint2< T > > &Pw, T &minx, T &maxx, T &miny, T &maxy) |
template<class T> void | UpdateBoundingBoxH (const int nP, const Ptr< hpoint1< T > > &Pw, T &minx, T &maxx) |
template<class T> void | UpdateBoundingBoxE (const int nP, const Ptr< point< T > > &P, T &minx, T &maxx, T &miny, T &maxy, T &minz, T &maxz) |
template<class T> void | UpdateBoundingBoxE (const int nP, const Ptr< point2< T > > &P, T &minx, T &maxx, T &miny, T &maxy) |
template<class T> void | UpdateBoundingBoxE (const int nP, const Ptr< point1< T > > &P, T &minx, T &maxx) |
template<class T> void | CalcBoundingBoxE (const int nP, const Ptr< point< T > > &P, T &minx, T &maxx, T &miny, T &maxy, T &minz, T &maxz) |
template<class T> void | CalcBoundingBoxE (const int nP, const Ptr< point2< T > > &P, T &minx, T &maxx, T &miny, T &maxy) |
template<class T> void | CalcBoundingBoxE (const int nP, const Ptr< point1< T > > &P, T &minx, T &maxx) |
template<class T> void | CalcBoundingBoxH (const int nP, const Ptr< hpoint< T > > &Pw, T &minx, T &maxx, T &miny, T &maxy, T &minz, T &maxz) |
template<class T> void | CalcBoundingBoxH (const int nP, const Ptr< hpoint2< T > > &Pw, T &minx, T &maxx, T &miny, T &maxy) |
template<class T> void | CalcBoundingBoxH (const int nP, const Ptr< hpoint1< T > > &Pw, T &minx, T &maxx) |
template<class HP, class EP> void | CalcBoundingBoxVerts (int nPw, const Ptr< HP > &Pw, EP &minP, EP &maxP) |
template<class HP, class EP> void | UpdateBoundingBoxVerts (int nPw, const Ptr< HP > &Pw, EP &minP, EP &maxP) |
template<> void | CalcBoundingBoxVerts (int nP, const Ptr< point1< float > > &P, point1< float > &minP, point1< float > &maxP) |
template<> void | CalcBoundingBoxVerts (int nP, const Ptr< point1< double > > &P, point1< double > &minP, point1< double > &maxP) |
template<> void | CalcBoundingBoxVerts (int nPw, const Ptr< hpoint1< float > > &Pw, point1< float > &minP, point1< float > &maxP) |
template<> void | CalcBoundingBoxVerts (int nPw, const Ptr< hpoint1< double > > &Pw, point1< double > &minP, point1< double > &maxP) |
template<> void | CalcBoundingBoxVerts (int nP, const Ptr< point2< float > > &P, point2< float > &minP, point2< float > &maxP) |
template<> void | CalcBoundingBoxVerts (int nP, const Ptr< point2< double > > &P, point2< double > &minP, point2< double > &maxP) |
template<> void | CalcBoundingBoxVerts (int nPw, const Ptr< hpoint2< float > > &Pw, point2< float > &minP, point2< float > &maxP) |
template<> void | CalcBoundingBoxVerts (int nPw, const Ptr< hpoint2< double > > &Pw, point2< double > &minP, point2< double > &maxP) |
template<> void | CalcBoundingBoxVerts (int nP, const Ptr< point< float > > &P, point< float > &minP, point< float > &maxP) |
template<> void | CalcBoundingBoxVerts (int nP, const Ptr< point< double > > &P, point< double > &minP, point< double > &maxP) |
template<> void | CalcBoundingBoxVerts (int nPw, const Ptr< hpoint< float > > &Pw, point< float > &minP, point< float > &maxP) |
template<> void | CalcBoundingBoxVerts (int nPw, const Ptr< hpoint< double > > &Pw, point< double > &minP, point< double > &maxP) |
template<> void | UpdateBoundingBoxVerts (int nP, const Ptr< point1< float > > &P, point1< float > &minP, point1< float > &maxP) |
template<> void | UpdateBoundingBoxVerts (int nP, const Ptr< point1< double > > &P, point1< double > &minP, point1< double > &maxP) |
template<> void | UpdateBoundingBoxVerts (int nPw, const Ptr< hpoint1< float > > &Pw, point1< float > &minP, point1< float > &maxP) |
template<> void | UpdateBoundingBoxVerts (int nPw, const Ptr< hpoint1< double > > &Pw, point1< double > &minP, point1< double > &maxP) |
template<> void | UpdateBoundingBoxVerts (int nP, const Ptr< point2< float > > &P, point2< float > &minP, point2< float > &maxP) |
template<> void | UpdateBoundingBoxVerts (int nP, const Ptr< point2< double > > &P, point2< double > &minP, point2< double > &maxP) |
template<> void | UpdateBoundingBoxVerts (int nPw, const Ptr< hpoint2< float > > &Pw, point2< float > &minP, point2< float > &maxP) |
template<> void | UpdateBoundingBoxVerts (int nPw, const Ptr< hpoint2< double > > &Pw, point2< double > &minP, point2< double > &maxP) |
template<> void | UpdateBoundingBoxVerts (int nP, const Ptr< point< float > > &P, point< float > &minP, point< float > &maxP) |
template<> void | UpdateBoundingBoxVerts (int nP, const Ptr< point< double > > &P, point< double > &minP, point< double > &maxP) |
template<> void | UpdateBoundingBoxVerts (int nPw, const Ptr< hpoint< float > > &Pw, point< float > &minP, point< float > &maxP) |
template<> void | UpdateBoundingBoxVerts (int nPw, const Ptr< hpoint< double > > &Pw, point< double > &minP, point< double > &maxP) |
template<class T> void | NormalizePointsE (const int nP, const Ptr< point< T > > P, const T minx, const T scalex, const T miny, const T scaley, const T minz, const T scalez) |
template<class T> void | NormalizePointsE (const int nP, const Ptr< point2< T > > P, const T minx, const T scalex, const T miny, const T scaley) |
template<class T> void | NormalizePointsH (const int nP, const Ptr< hpoint< T > > Pw, const T minx, const T scalex, const T miny, const T scaley, const T minz, const T scalez) |
template<class T> void | DeNormalizePointsE (const int nP, const Ptr< point< T > > P, const T minx, const T scalex, const T miny, const T scaley, const T minz, const T scalez) |
template<class T> void | DeNormalizePointsE (const int nP, const Ptr< point2< T > > P, const T minx, const T scalex, const T miny, const T scaley) |
template<class T> void | DeNormalizePointsH (const int nP, const Ptr< hpoint< T > > Pw, const T minx, const T scalex, const T miny, const T scaley, const T minz, const T scalez) |
template<class T1, class T2> void | set (gul::bounding_box< T1 > &box, const gul::point< T2 > &minP, const gul::point< T2 > &maxP) |
template<class T1, class T2> void | set (gul::bounding_box< T1 > &box, const gul::hpoint< T2 > &minP, const gul::hpoint< T2 > &maxP) |
template<class T1, class T2> void | set (gul::bounding_box< T1 > &box, const gul::point2< T2 > &minP, const gul::point2< T2 > &maxP) |
template<class T1, class T2> void | set (gul::bounding_box< T1 > &box, const gul::hpoint2< T2 > &minP, const gul::hpoint2< T2 > &maxP) |
template<class T1, class T2> void | set (gul::bounding_box< T1 > &box, const gul::point1< T2 > &minP, const gul::point1< T2 > &maxP) |
Variables | |
template class | MethodTable< float > |
template class | MethodTable< double > |
template class | AltMethodTable< float > |
template class | AltMethodTable< double > |
int | EdgePerms [8][8] |
int | VertexPerms [24][8] |
PatternRec | PatternTable [256] |
|
Definition at line 178 of file guge_normalize.h.
00180 { 00181 minx = maxx = P[0].x; 00182 00183 UpdateBoundingBoxE( nP, P, minx, maxx ); 00184 } |
|
Definition at line 167 of file guge_normalize.h.
00170 { 00171 minx = maxx = P[0].x; 00172 miny = maxy = P[0].y; 00173 00174 UpdateBoundingBoxE( nP, P, minx, maxx, miny, maxy ); 00175 } |
|
Definition at line 154 of file guge_normalize.h.
00158 { 00159 minx = maxx = P[0].x; 00160 miny = maxy = P[0].y; 00161 minz = maxz = P[0].z; 00162 00163 UpdateBoundingBoxE( nP, P, minx, maxx, miny, maxy, minz, maxz ); 00164 } |
|
Definition at line 219 of file guge_normalize.h.
00221 { 00222 T w = Pw[0].w; 00223 00224 minx = maxx = Pw[0].x / w; 00225 00226 UpdateBoundingBoxH( nP, Pw, minx, maxx ); 00227 } |
|
Definition at line 206 of file guge_normalize.h.
00209 { 00210 T w = Pw[0].w; 00211 00212 minx = maxx = Pw[0].x / w; 00213 miny = maxy = Pw[0].y / w; 00214 00215 UpdateBoundingBoxH( nP, Pw, minx, maxx, miny, maxy ); 00216 } |
|
Definition at line 191 of file guge_normalize.h.
00195 { 00196 T w = Pw[0].w; 00197 00198 minx = maxx = Pw[0].x / w; 00199 miny = maxy = Pw[0].y / w; 00200 minz = maxz = Pw[0].z / w; 00201 00202 UpdateBoundingBoxH( nP, Pw, minx, maxx, miny, maxy, minz, maxz ); 00203 } |
|
Definition at line 309 of file guge_normalize.h.
00311 { 00312 CalcBoundingBoxH( nPw, Pw, minP.x, maxP.x, minP.y, maxP.y, minP.z, maxP.z ); 00313 } |
|
Definition at line 303 of file guge_normalize.h.
00305 { 00306 CalcBoundingBoxH( nPw, Pw, minP.x, maxP.x, minP.y, maxP.y, minP.z, maxP.z ); 00307 } |
|
Definition at line 297 of file guge_normalize.h.
00299 { 00300 CalcBoundingBoxE( nP, P, minP.x, maxP.x, minP.y, maxP.y, minP.z, maxP.z ); 00301 } |
|
Definition at line 291 of file guge_normalize.h.
00293 { 00294 CalcBoundingBoxE( nP, P, minP.x, maxP.x, minP.y, maxP.y, minP.z, maxP.z ); 00295 } |
|
Definition at line 284 of file guge_normalize.h.
00286 { 00287 CalcBoundingBoxH( nPw, Pw, minP.x, maxP.x, minP.y, maxP.y ); 00288 } |
|
Definition at line 278 of file guge_normalize.h.
00280 { 00281 CalcBoundingBoxH( nPw, Pw, minP.x, maxP.x, minP.y, maxP.y ); 00282 } |
|
Definition at line 272 of file guge_normalize.h.
00274 { 00275 CalcBoundingBoxE( nP, P, minP.x, maxP.x, minP.y, maxP.y ); 00276 } |
|
Definition at line 266 of file guge_normalize.h.
00268 { 00269 CalcBoundingBoxE( nP, P, minP.x, maxP.x, minP.y, maxP.y ); 00270 } |
|
Definition at line 259 of file guge_normalize.h.
00261 { 00262 CalcBoundingBoxH( nPw, Pw, minP.x, maxP.x ); 00263 } |
|
Definition at line 253 of file guge_normalize.h.
00255 { 00256 CalcBoundingBoxH( nPw, Pw, minP.x, maxP.x ); 00257 } |
|
Definition at line 247 of file guge_normalize.h.
00249 { 00250 CalcBoundingBoxE( nP, P, minP.x, maxP.x ); 00251 } |
|
Definition at line 241 of file guge_normalize.h.
00243 { 00244 CalcBoundingBoxE( nP, P, minP.x, maxP.x ); 00245 } |
|
|
|
Definition at line 458 of file guge_normalize.h.
00461 { 00462 for( int i = 0; i < nP; i++ ) 00463 { 00464 P[i].x = P[i].x * (scalex) + minx; 00465 P[i].y = P[i].y * (scaley) + miny; 00466 } 00467 } |
|
Definition at line 445 of file guge_normalize.h.
00449 { 00450 for( int i = 0; i < nP; i++ ) 00451 { 00452 P[i].x = P[i].x * (scalex) + minx; 00453 P[i].y = P[i].y * (scaley) + miny; 00454 P[i].z = P[i].z * (scalez) + minz; 00455 } 00456 } |
|
Definition at line 473 of file guge_normalize.h.
00477 { 00478 int i; 00479 T w; 00480 for( i = 0; i < nP; i++ ) 00481 { 00482 w = Pw[i].w; 00483 Pw[i].x = Pw[i].x * (scalex) + w * minx; 00484 Pw[i].y = Pw[i].y * (scaley) + w * miny; 00485 Pw[i].z = Pw[i].z * (scalez) + w * minz; 00486 } 00487 } |
|
Definition at line 111 of file guge_marchcube.cpp.
00120 { 00121 int *perm; 00122 bool inv = PatternTable[pat].nbits > 4; 00123 perm = VertexPerms[PatternTable[pat].perm]; 00124 FUNC( MPT(0,2), MPT(0,4), MPT(0,1), NPT(0,2), NPT(0,4), NPT(0,1) ); 00125 } |
|
Definition at line 381 of file guge_marchcube.cpp.
00390 { 00391 int *perm; 00392 bool inv = PatternTable[pat].nbits > 4; 00393 perm = VertexPerms[PatternTable[pat].perm]; 00394 FUNC( MPT(0,4), MPT(1,3), MPT(0,2), NPT(0,4), NPT(1,3), NPT(0,2) ); 00395 FUNC( MPT(0,4), MPT(1,5), MPT(1,3), NPT(0,4), NPT(1,5), NPT(1,3) ); 00396 FUNC( MPT(4,6), MPT(2,6), MPT(5,7), NPT(4,6), NPT(2,6), NPT(5,7) ); 00397 FUNC( MPT(5,7), MPT(2,6), MPT(3,7), NPT(5,7), NPT(2,6), NPT(3,7) ); 00398 } |
|
Definition at line 399 of file guge_marchcube.cpp.
00408 { 00409 int *perm; 00410 bool inv = PatternTable[pat].nbits > 4; 00411 perm = VertexPerms[PatternTable[pat].perm]; 00412 FUNC( MPT(0,2), MPT(2,6), MPT(3,7), NPT(0,2), NPT(2,6), NPT(3,7) ); 00413 FUNC( MPT(0,2), MPT(3,7), MPT(1,3), NPT(0,2), NPT(3,7), NPT(1,3) ); 00414 FUNC( MPT(4,6), MPT(0,4), MPT(5,7), NPT(4,6), NPT(0,4), NPT(5,7) ); 00415 FUNC( MPT(0,4), MPT(1,5), MPT(5,7), NPT(0,4), NPT(1,5), NPT(5,7) ); 00416 00417 } |
|
Definition at line 426 of file guge_marchcube.cpp.
00435 { 00436 int *perm; 00437 bool inv = PatternTable[pat].nbits > 4; 00438 perm = VertexPerms[PatternTable[pat].perm]; 00439 FUNC( MPT(4,6), MPT(0,4), MPT(1,5), NPT(4,6), NPT(0,4), NPT(1,5) ); 00440 FUNC( MPT(4,6), MPT(1,5), MPT(6,7), NPT(4,6), NPT(1,5), NPT(6,7) ); 00441 FUNC( MPT(6,7), MPT(1,5), MPT(1,3), NPT(6,7), NPT(1,5), NPT(1,3) ); 00442 FUNC( MPT(1,3), MPT(2,3), MPT(6,7), NPT(1,3), NPT(2,3), NPT(6,7) ); 00443 } |
|
Definition at line 452 of file guge_marchcube.cpp.
00461 { 00462 int *perm; 00463 bool inv = PatternTable[pat].nbits > 4; 00464 perm = VertexPerms[PatternTable[pat].perm]; 00465 FUNC( MPT(0,4), MPT(1,5), MPT(2,6), NPT(0,4), NPT(1,5), NPT(2,6) ); 00466 FUNC( MPT(2,6), MPT(1,3), MPT(2,3), NPT(2,6), NPT(1,3), NPT(2,3) ); 00467 FUNC( MPT(1,3), MPT(2,6), MPT(1,5), NPT(1,3), NPT(2,6), NPT(1,5) ); 00468 FUNC( MPT(6,7), MPT(3,7), MPT(5,7), NPT(6,7), NPT(3,7), NPT(5,7) ); 00469 } |
|
Definition at line 470 of file guge_marchcube.cpp.
00479 { 00480 int *perm; 00481 bool inv = PatternTable[pat].nbits > 4; 00482 perm = VertexPerms[PatternTable[pat].perm]; 00483 FUNC( MPT(0,4), MPT(1,5), MPT(2,6), NPT(0,4), NPT(1,5), NPT(2,6) ); 00484 FUNC( MPT(1,3), MPT(2,3), MPT(3,7), NPT(1,3), NPT(2,3), NPT(3,7) ); 00485 FUNC( MPT(1,5), MPT(5,7), MPT(6,7), NPT(1,5), NPT(5,7), NPT(6,7) ); 00486 FUNC( MPT(6,7), MPT(2,6), MPT(1,5), NPT(6,7), NPT(2,6), NPT(1,5) ); 00487 } |
|
Definition at line 495 of file guge_marchcube.cpp.
00504 { 00505 int *perm; 00506 bool inv = PatternTable[pat].nbits > 4; 00507 perm = VertexPerms[PatternTable[pat].perm]; 00508 FUNC( MPT(0,2), MPT(0,4), MPT(0,1), NPT(0,2), NPT(0,4), NPT(0,1) ); 00509 FUNC( MPT(2,3), MPT(1,3), MPT(3,7), NPT(2,3), NPT(1,3), NPT(3,7) ); 00510 FUNC( MPT(4,5), MPT(5,7), MPT(1,5), NPT(4,5), NPT(5,7), NPT(1,5) ); 00511 FUNC( MPT(4,6), MPT(2,6), MPT(6,7), NPT(4,6), NPT(2,6), NPT(6,7) ); 00512 } |
|
Definition at line 513 of file guge_marchcube.cpp.
00522 { 00523 int *perm; 00524 bool inv = PatternTable[pat].nbits > 4; 00525 perm = VertexPerms[PatternTable[pat].perm]; 00526 FUNC( MPT(0,1), MPT(1,3), MPT(1,5), NPT(0,1), NPT(1,3), NPT(1,5) ); 00527 FUNC( MPT(0,2), MPT(2,6), MPT(2,3), NPT(0,2), NPT(2,6), NPT(2,3) ); 00528 FUNC( MPT(4,6), MPT(0,4), MPT(4,5), NPT(4,6), NPT(0,4), NPT(4,5) ); 00529 FUNC( MPT(6,7), MPT(5,7), MPT(3,7), NPT(6,7), NPT(5,7), NPT(3,7) ); 00530 } |
|
Definition at line 538 of file guge_marchcube.cpp.
00547 { 00548 int *perm; 00549 bool inv = PatternTable[pat].nbits > 4; 00550 perm = VertexPerms[PatternTable[pat].perm]; 00551 FUNC( MPT(5,7), MPT(2,6), MPT(0,4), NPT(5,7), NPT(2,6), NPT(0,4) ); 00552 FUNC( MPT(5,7), MPT(2,3), MPT(2,6), NPT(5,7), NPT(2,3), NPT(2,6) ); 00553 FUNC( MPT(5,7), MPT(1,3), MPT(2,3), NPT(5,7), NPT(1,3), NPT(2,3) ); 00554 FUNC( MPT(0,4), MPT(4,5), MPT(5,7), NPT(0,4), NPT(4,5), NPT(5,7) ); 00555 } |
|
Definition at line 133 of file guge_marchcube.cpp.
|
|
Definition at line 156 of file guge_marchcube.cpp.
|
|
Definition at line 172 of file guge_marchcube.cpp.
00181 { 00182 int *perm; 00183 bool inv = PatternTable[pat].nbits > 4; 00184 perm = VertexPerms[PatternTable[pat].perm]; 00185 FUNC( MPT(0,4), MPT(4,5), MPT(0,2), NPT(0,4), NPT(4,5), NPT(0,2) ); 00186 FUNC( MPT(4,5), MPT(5,7), MPT(0,2), NPT(4,5), NPT(5,7), NPT(0,2) ); 00187 FUNC( MPT(0,2), MPT(5,7), MPT(1,5), NPT(0,2), NPT(5,7), NPT(1,5) ); 00188 FUNC( MPT(1,5), MPT(0,1), MPT(0,2), NPT(1,5), NPT(0,1), NPT(0,2) ); 00189 } |
|
Definition at line 197 of file guge_marchcube.cpp.
|
|
Definition at line 220 of file guge_marchcube.cpp.
00229 { 00230 int *perm; 00231 bool inv = PatternTable[pat].nbits > 4; 00232 perm = VertexPerms[PatternTable[pat].perm]; 00233 FUNC( MPT(0,2), MPT(0,4), MPT(2,3), NPT(0,2), NPT(0,4), NPT(2,3) ); 00234 FUNC( MPT(0,4), MPT(3,7), MPT(2,3), NPT(0,4), NPT(3,7), NPT(2,3) ); 00235 FUNC( MPT(0,4), MPT(1,5), MPT(3,7), NPT(0,4), NPT(1,5), NPT(3,7) ); 00236 } |
|
Definition at line 244 of file guge_marchcube.cpp.
00253 { 00254 int *perm; 00255 bool inv = PatternTable[pat].nbits > 4; 00256 perm = VertexPerms[PatternTable[pat].perm]; 00257 FUNC( MPT(0,2), MPT(1,5), MPT(1,3), NPT(0,2), NPT(1,5), NPT(1,3) ); 00258 FUNC( MPT(0,2), MPT(0,4), MPT(1,5), NPT(0,2), NPT(0,4), NPT(1,5) ); 00259 FUNC( MPT(6,7), MPT(3,7), MPT(5,7), NPT(6,7), NPT(3,7), NPT(5,7) ); 00260 } |
|
Definition at line 261 of file guge_marchcube.cpp.
00270 { 00271 int *perm; 00272 bool inv = PatternTable[pat].nbits > 4; 00273 perm = VertexPerms[PatternTable[pat].perm]; 00274 FUNC( MPT(0,2), MPT(3,7), MPT(1,3), NPT(0,2), NPT(3,7), NPT(1,3) ); 00275 FUNC( MPT(0,2), MPT(6,7), MPT(3,7), NPT(0,2), NPT(6,7), NPT(3,7) ); 00276 FUNC( MPT(0,2), MPT(0,4), MPT(6,7), NPT(0,2), NPT(0,4), NPT(6,7) ); 00277 FUNC( MPT(0,4), MPT(1,5), MPT(6,7), NPT(0,4), NPT(1,5), NPT(6,7) ); 00278 FUNC( MPT(1,5), MPT(5,7), MPT(6,7), NPT(1,5), NPT(5,7), NPT(6,7) ); 00279 } |
|
Definition at line 288 of file guge_marchcube.cpp.
00297 { 00298 int *perm; 00299 bool inv = PatternTable[pat].nbits > 4; 00300 perm = VertexPerms[PatternTable[pat].perm]; 00301 FUNC( MPT(0,2), MPT(0,4), MPT(0,1), NPT(0,2), NPT(0,4), NPT(0,1) ); 00302 FUNC( MPT(2,3), MPT(1,3), MPT(3,7), NPT(2,3), NPT(1,3), NPT(3,7) ); 00303 FUNC( MPT(1,5), MPT(4,5), MPT(5,7), NPT(1,5), NPT(4,5), NPT(5,7) ); 00304 } |
|
Definition at line 305 of file guge_marchcube.cpp.
00314 { 00315 int *perm; 00316 bool inv = PatternTable[pat].nbits > 4; 00317 perm = VertexPerms[PatternTable[pat].perm]; 00318 FUNC( MPT(2,3), MPT(5,7), MPT(3,7), NPT(2,3), NPT(5,7), NPT(3,7) ); 00319 FUNC( MPT(0,2), MPT(5,7), MPT(2,3), NPT(0,2), NPT(5,7), NPT(2,3) ); 00320 FUNC( MPT(5,7), MPT(0,2), MPT(4,5), NPT(5,7), NPT(0,2), NPT(4,5) ); 00321 FUNC( MPT(4,5), MPT(0,2), MPT(0,4), NPT(4,5), NPT(0,2), NPT(0,4) ); 00322 FUNC( MPT(0,1), MPT(1,3), MPT(1,5), NPT(0,1), NPT(1,3), NPT(1,5) ); 00323 } |
|
Definition at line 333 of file guge_marchcube.cpp.
|
|
Definition at line 356 of file guge_marchcube.cpp.
00365 { 00366 int *perm; 00367 bool inv = PatternTable[pat].nbits > 4; 00368 perm = VertexPerms[PatternTable[pat].perm]; 00369 FUNC( MPT(4,5), MPT(1,5), MPT(1,3), NPT(4,5), NPT(1,5), NPT(1,3) ); 00370 FUNC( MPT(4,5), MPT(1,3), MPT(4,6), NPT(4,5), NPT(1,3), NPT(4,6) ); 00371 FUNC( MPT(4,6), MPT(1,3), MPT(2,3), NPT(4,6), NPT(1,3), NPT(2,3) ); 00372 FUNC( MPT(4,6), MPT(2,3), MPT(2,6), NPT(4,6), NPT(2,3), NPT(2,6) ); 00373 } |
|
Definition at line 682 of file guge_marchcube.cpp.
00688 { 00689 T f; 00690 int ix,iy; 00691 00692 /* --- initial code for iy=0,ix=0 --- */ 00693 00694 Pat1[0][0] = 0x00; /*initialize new pattern */ 00695 00696 f = F0[0][0]; /* get function value */ 00697 if( f < 0.0 ) 00698 { 00699 Pat1[0][0] |= 0x01; /* influenced patterns */ 00700 } 00701 /* --- initial code for iy=0 and ix = 1,..,nx ---- */ 00702 00703 for( ix=1; ix<=nx; ix++ ) 00704 { 00705 Pat1[0][ix] = 0x00; /*initialize new pattern */ 00706 00707 f = F0[0][ix]; /* get function value */ 00708 if( f < 0.0 ) 00709 { 00710 Pat1[0][ix] |= 0x01; /* influenced patterns */ 00711 Pat1[0][ix-1] |= 0x02; 00712 } 00713 } 00714 for( iy=1; iy<=ny; iy++ ) 00715 { 00716 /* --- initial code for ix = 0 --- */ 00717 00718 Pat1[iy][0] = 0x00; /*initialize new pattern */ 00719 00720 f = F0[iy][0]; /* get function value */ 00721 if( f < 0.0 ) 00722 { 00723 Pat1[iy][0] |= 0x01; /* influenced patterns */ 00724 Pat1[iy-1][0] |= 0x04; 00725 } 00726 /* ---- code for ix=1,..,nx ---- */ 00727 00728 for( ix=1; ix<=nx; ix++ ) 00729 { 00730 Pat1[iy][ix] = 0x00; /*initialize new pattern */ 00731 00732 f = F0[iy][ix]; /* get function value */ 00733 if( f < 0.0 ) 00734 { 00735 Pat1[iy][ix] |= 0x01; /* influenced patterns */ 00736 Pat1[iy][ix-1] |= 0x02; 00737 Pat1[iy-1][ix] |= 0x04; 00738 Pat1[iy-1][ix-1] |= 0x08; 00739 } 00740 } 00741 } 00742 } |
|
Definition at line 824 of file guge_marchcube.cpp.
00827 { 00828 if( (flags[i][j][k]&(DRAW_ALT|CON_SPECIAL)) != 0 ) 00829 return; 00830 00831 flags[i][j][k] |= DRAW_ALT; 00832 00833 if( ((flags[i][j][k]&CON_X1)!=0) && (k>0) ) 00834 Harmonize( k-1, j, i, nx, ny, nz, flags ); 00835 00836 if( ((flags[i][j][k]&CON_X2)!=0) && (k<nx-1) ) 00837 Harmonize( k+1, j, i, nx, ny, nz, flags ); 00838 00839 if( ((flags[i][j][k]&CON_Y1)!=0) && (j>0) ) 00840 Harmonize( k, j-1, i, nx, ny, nz, flags ); 00841 00842 if( ((flags[i][j][k]&CON_Y2)!=0) && (j<ny-1) ) 00843 Harmonize( k, j+1, i, nx, ny, nz, flags ); 00844 00845 if( ((flags[i][j][k]&CON_Z1)!=0) && (i>0) ) 00846 Harmonize( k, j, i-1, nx, ny, nz, flags ); 00847 00848 if( ((flags[i][j][k]&CON_Z2)!=0) && (i<nz-1) ) 00849 Harmonize( k, j, i+1, nx, ny, nz, flags ); 00850 } |
|
|
|
Definition at line 47 of file guge_linear.cpp.
00049 { 00050 EP A,B,b,u0,X; 00051 point<T> L,H,R; 00052 int i; 00053 bool bzero; 00054 00055 A = euclid( Pw[0] ); 00056 B = euclid( Pw[n] ); 00057 00058 b = B - A; 00059 bzero = rel_equal(B,A,rtr<T>::zero_tol()); 00060 00061 if( !bzero ) 00062 { 00063 normalize( &u0, b ); 00064 L = cross_product( u0, A ); 00065 00066 for( i = 1; i < n; i++ ) 00067 { 00068 X = euclid( Pw[i] ); 00069 00070 H = cross_product( u0, X ); 00071 R = H - L; 00072 00073 if( !abs_equal( H, L, tol ) ) 00074 return false; 00075 } 00076 } 00077 else 00078 { 00079 for( i = 0; i <= n; i++ ) 00080 { 00081 X = euclid( Pw[i] ); 00082 B = X - A; 00083 00084 if( !abs_equal(X,A,tol) ) 00085 return false; 00086 } 00087 } 00088 return true; 00089 } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 123 of file guge_linear.cpp.
00125 { 00126 point<T> A,B,C,D,b,c,d,h,n0,u0,X,H,L,R; 00127 T r,l; 00128 bool is_point,is_plane, bzero,czero,dzero; 00129 int i,j; 00130 00131 A = euclid( Pw[0][0] ); 00132 B = euclid( Pw[nv][0] ); 00133 C = euclid( Pw[nv][nu] ); 00134 D = euclid( Pw[0][nu] ); 00135 00136 b = B - A; 00137 bzero = rel_equal( B, A, rtr<T>::zero_tol() ); 00138 c = C - A; 00139 czero = rel_equal( C, A, rtr<T>::zero_tol() ); 00140 d = D - A; 00141 dzero = rel_equal( D, A, rtr<T>::zero_tol() ); 00142 00143 is_point = false; 00144 is_plane = false; 00145 00146 if( bzero && czero && dzero ) /* Punkt */ 00147 is_point = true; 00148 else /* Ebene */ 00149 { 00150 if( (!bzero) && (!czero) ) 00151 { 00152 h = cross_product( b, c ); 00153 is_plane = !zero_sine( b, c, rtr<T>::zero_tol() ); /* b || c ??? */ 00154 } 00155 00156 if( is_plane ) 00157 { 00158 normalize( &n0, h ); 00159 } 00160 else 00161 { 00162 if( (!bzero) && (!dzero) ) 00163 { 00164 h = cross_product( b, d ); 00165 is_plane = !zero_sine( b, d, rtr<T>::zero_tol() ); /* b || d ??? */ 00166 } 00167 00168 if( is_plane ) 00169 { 00170 normalize( &n0, h ); 00171 } 00172 else 00173 { 00174 if( (!czero) && (!dzero) ) 00175 { 00176 h = cross_product( c, d ); 00177 is_plane = !zero_sine( c, d, rtr<T>::zero_tol() ); /* c || d ??? */ 00178 } 00179 00180 if( is_plane ) 00181 { 00182 normalize( &n0, h ); 00183 } 00184 else /* Gerade */ 00185 if( !bzero ) 00186 normalize( &u0, b ); 00187 else 00188 if( !czero ) 00189 normalize( &u0, c ); 00190 else 00191 normalize( &u0, d ); 00192 } 00193 } 00194 } 00195 00196 if( is_plane ) 00197 { 00198 r = n0 * A; 00199 if( r < 0 ) 00200 { 00201 r = -r; 00202 n0 = -n0; 00203 } 00204 00205 for( j = 0; j <= nv; j++ ) 00206 for( i = 0; i <= nu; i++ ) 00207 { 00208 X = euclid( Pw[j][i] ); 00209 00210 l = n0 * X; 00211 if( gul::rtr<T>::fabs( l - r ) > tol ) return false; 00212 } 00213 } 00214 else if( !is_point ) 00215 { 00216 L = cross_product( u0, A ); 00217 00218 for( j = 0; j <= nv; j++ ) 00219 for( i = 0; i <= nu; i++ ) 00220 { 00221 X = euclid( Pw[j][i] ); 00222 00223 H = cross_product( u0, X ); 00224 R = H - L; 00225 00226 if( !abs_equal( H, L, tol ) ) 00227 return false; 00228 } 00229 } 00230 else 00231 { 00232 for( j = 0; j <= nv; j++ ) 00233 for( i = 0; i <= nu; i++ ) 00234 { 00235 X = euclid( Pw[j][i] ); 00236 R = X - A; 00237 00238 if( !abs_equal( X, A, tol ) ) 00239 return false; 00240 } 00241 } 00242 return true; 00243 } |
|
|
|
|
|
|
|
Definition at line 264 of file guge_linear.cpp.
00266 { 00267 if( nP != 5 ) return false; 00268 00269 // last point must be the same as the first one 00270 if( (P[0].x != P[4].x) || (P[0].y != P[4].y) ) 00271 return false; 00272 00273 if( P[0].y == P[1].y ) 00274 { 00275 if( (P[2].y != P[3].y) || 00276 (P[3].x != P[0].x) || (P[2].x != P[1].x) ) 00277 return false; 00278 00279 if( P[3].y < P[0].y ) 00280 { 00281 v1 = P[3].y; 00282 v2 = P[0].y; 00283 } 00284 else 00285 { 00286 v1 = P[0].y; 00287 v2 = P[3].y; 00288 } 00289 if( P[2].x < P[0].x ) 00290 { 00291 u1 = P[2].x; 00292 u2 = P[0].x; 00293 } 00294 else 00295 { 00296 u1 = P[0].x; 00297 u2 = P[2].x; 00298 } 00299 } 00300 else if( P[0].x == P[1].x ) 00301 { 00302 if( (P[2].x != P[3].x) || 00303 (P[3].y != P[0].y) || (P[2].y != P[1].y) ) 00304 return false; 00305 00306 if( P[3].x < P[0].x ) 00307 { 00308 u1 = P[3].x; 00309 u2 = P[0].x; 00310 } 00311 else 00312 { 00313 u1 = P[0].x; 00314 u2 = P[3].x; 00315 } 00316 if( P[2].y < P[0].y ) 00317 { 00318 u1 = P[2].x; 00319 u2 = P[0].x; 00320 } 00321 else 00322 { 00323 u1 = P[0].x; 00324 u2 = P[2].x; 00325 } 00326 } 00327 else 00328 return false; 00329 00330 return true; 00331 } |
|
|
|
|
|
Definition at line 853 of file guge_marchcube.cpp.
00870 { 00871 Ptr< Ptr< Ptr<unsigned char> > > Pat,Flags; 00872 unsigned char pat,pat0; 00873 int i,j,k,iz; 00874 T dx2,dy2,dz2,bx0,by0,bz0,bx1,by1,bz1,f,a; 00875 point<T> M[12],G[12],D[8]; 00876 unsigned char ders; 00877 00878 dx2 = dx+dx; 00879 dy2 = dy+dy; 00880 dz2 = dz+dz; 00881 00882 Pat.reserve_pool(nz+1); 00883 Flags.reserve_pool(nz+1); 00884 00885 for( i = 0; i <= nz; i++ ) 00886 { 00887 Pat[i].reserve_pool(ny+1); 00888 Flags[i].reserve_pool(ny+1); 00889 00890 for( j = 0; j <= ny; j++ ) 00891 { 00892 Pat[i][j].reserve_pool(nx+1); 00893 Flags[i][j].reserve_pool(nx+1); 00894 } 00895 } 00896 00897 FirstPlane( nx, ny, F[0], Pat[0] ); 00898 00899 for( i=1; i <= nz; i++ ) 00900 { 00901 NextPlane( nx, ny, F[i], Pat[i-1], Pat[i] ); 00902 } 00903 00904 for( k = 0; k < nz; k++ ) 00905 for( i = 0; i < ny; i++ ) 00906 for( j = 0; j < nx; j++ ) 00907 Flags[k][i][j] = 0x00; 00908 00909 for( k = 1; k < nz; k++ ) 00910 { 00911 for( i = 1; i < ny; i++ ) 00912 { 00913 for( j = 1; j < nx; j++ ) 00914 { 00915 pat = Pat[k][i][j]; 00916 00917 if( ((pat & 0x33)==0x21)||((pat & 0x33)==0x12) ) 00918 { 00919 Flags[k][i][j] |= CON_Y1; 00920 Flags[k][i-1][j] |= CON_Y2; 00921 00922 pat0 = Pat[k][i-1][j]; 00923 if( 00924 ((PatternTable[pat].nbits>4)&&(PatternTable[pat0].nbits<=4))|| 00925 ((PatternTable[pat].nbits<=4)&&(PatternTable[pat0].nbits>4)) 00926 ) 00927 { 00928 Flags[k][i][j] |= CON_SPECIAL; 00929 Flags[k][i-1][j] |= CON_SPECIAL; 00930 00931 if( (k&1) ) 00932 { 00933 if( ((!(i&1)) && (!(j&1))) || 00934 (((i&1)) && ((j&1))) ) 00935 Flags[k][i][j] |= DRAW_ALT; 00936 else 00937 Flags[k][i-1][j] |= DRAW_ALT; 00938 } 00939 else 00940 { 00941 if( ((!(i&1)) && (!(j&1))) || 00942 ((i&1) && (j&1)) ) 00943 Flags[k][i-1][j] |= DRAW_ALT; 00944 else 00945 Flags[k][i][j] |= DRAW_ALT; 00946 } 00947 } 00948 } 00949 00950 if( ((pat & 0x55)==0x41)||((pat & 0x55)==0x14) ) 00951 { 00952 Flags[k][i][j] |= CON_X1; 00953 Flags[k][i][j-1] |= CON_X2; 00954 00955 pat0 = Pat[k][i][j-1]; 00956 if( 00957 ((PatternTable[pat].nbits>4)&&(PatternTable[pat0].nbits<=4))|| 00958 ((PatternTable[pat].nbits<=4)&&(PatternTable[pat0].nbits>4)) 00959 ) 00960 { 00961 Flags[k][i][j] |= CON_SPECIAL; 00962 Flags[k][i][j-1] |= CON_SPECIAL; 00963 00964 if( (k&1) ) 00965 { 00966 if( ((!(i&1)) && (!(j&1))) || 00967 ((i&1) && (j&1)) ) 00968 Flags[k][i][j] |= DRAW_ALT; 00969 else 00970 Flags[k][i][j-1] |= DRAW_ALT; 00971 } 00972 else 00973 { 00974 if( ((!(i&1)) && (!(j&1))) || 00975 ((i&1) && (j&1)) ) 00976 Flags[k][i][j-1] |= DRAW_ALT; 00977 else 00978 Flags[k][i][j] |= DRAW_ALT; 00979 } 00980 } 00981 } 00982 00983 if( ((pat & 0x0f)==0x09)||((pat & 0x0f)==0x06) ) 00984 { 00985 Flags[k][i][j] |= CON_Z1; 00986 Flags[k-1][i][j] |= CON_Z2; 00987 00988 pat0 = Pat[k-1][i][j]; 00989 if( 00990 ((PatternTable[pat].nbits>4)&&(PatternTable[pat0].nbits<=4))|| 00991 ((PatternTable[pat].nbits<=4)&&(PatternTable[pat0].nbits>4)) 00992 ) 00993 { 00994 Flags[k][i][j] |= CON_SPECIAL; 00995 Flags[k-1][i][j] |= CON_SPECIAL; 00996 00997 if( (k&1) ) 00998 { 00999 if( ((!(i&1)) && (!(j&1))) || 01000 ((i&1) && (j&1)) ) 01001 Flags[k][i][j] |= DRAW_ALT; 01002 else 01003 Flags[k-1][i][j] |= DRAW_ALT; 01004 } 01005 else 01006 { 01007 if( ((!(i&1)) && (!(j&1))) || 01008 ((i&1) && (j&1)) ) 01009 Flags[k-1][i][j] |= DRAW_ALT; 01010 else 01011 Flags[k][i][j] |= DRAW_ALT; 01012 } 01013 } 01014 } 01015 01016 01017 } 01018 } 01019 } 01020 01021 for( i = 0; i < nz; i++ ) 01022 for( j = 0; j < ny; j++ ) 01023 for( k = 0; k < nx; k++ ) 01024 { 01025 if( ((Flags[i][j][k]&CON_X1)!=0) && (k>0) ) 01026 Harmonize( k-1, j, i, nx, ny, nz, Flags ); 01027 01028 if( ((Flags[i][j][k]&CON_X2)!=0) && (k<nx-1) ) 01029 Harmonize( k+1, j, i, nx, ny, nz, Flags ); 01030 01031 if( ((Flags[i][j][k]&CON_Y1)!=0) && (j>0) ) 01032 Harmonize( k, j-1, i, nx, ny, nz, Flags ); 01033 01034 if( ((Flags[i][j][k]&CON_Y2)!=0) && (j<ny-1) ) 01035 Harmonize( k, j+1, i, nx, ny, nz, Flags ); 01036 01037 if( ((Flags[i][j][k]&CON_Z1)!=0) && (i>0) ) 01038 Harmonize( k, j, i-1, nx, ny, nz, Flags ); 01039 01040 if( ((Flags[i][j][k]&CON_Z2)!=0) && (i<nz-1) ) 01041 Harmonize( k, j, i+1, nx, ny, nz, Flags ); 01042 } 01043 01044 01045 for( iz=1,bz0=z0+dz; iz < nz-1; iz++,bz0+=dz ) 01046 { 01047 for( i=1,by0=y0+dy; i < ny-1; i++,by0+=dy ) 01048 { 01049 for( j=1,bx0=x0+dx; j < nx-1; j++,bx0+=dx ) 01050 { 01051 pat = Pat[iz][i][j]; 01052 01053 if( (pat != 0x00) && (pat != 0xff) ) 01054 { 01055 bx1 = bx0+dx; 01056 by1 = by0+dy; 01057 bz1 = bz0+dz; 01058 ders = 0; 01059 01060 if( ((pat & 0x03) == 0x01) || ((pat & 0x03) == 0x02) ) 01061 { 01062 DER( D[0], iz, i, j ); 01063 DER( D[1], iz, i, j+1 ); 01064 ders |= 0x03; 01065 01066 f=F[iz][i][j+1]; /* intersection */ 01067 a=F[iz][i][j]; 01068 VEC( M[0], bx0+a*dx/(a-f), by0, bz0 ); 01069 01070 G[0].x = D[0].x + (M[0].x-bx0)*(D[1].x-D[0].x)/dx; 01071 G[0].y = D[0].y + (M[0].x-bx0)*(D[1].y-D[0].y)/dx; 01072 G[0].z = D[0].z + (M[0].x-bx0)*(D[1].z-D[0].z)/dx; 01073 normalize(&G[0],G[0]); 01074 } 01075 if( ((pat & 0x05) == 0x01) || ((pat & 0x05) == 0x04) ) 01076 { 01077 if( (ders & 0x01) == 0 ) 01078 DER( D[0], iz, i, j ); 01079 if( (ders & 0x04) == 0 ) 01080 DER( D[2], iz, i+1, j ); 01081 ders |= 0x05; 01082 01083 f=F[iz][i+1][j]; /* intersection */ 01084 a=F[iz][i][j]; 01085 VEC( M[2], bx0, by0+a*dy/(a-f), bz0 ); 01086 01087 G[2].x = D[0].x + (M[2].y-by0)*(D[2].x-D[0].x)/dy; 01088 G[2].y = D[0].y + (M[2].y-by0)*(D[2].y-D[0].y)/dy; 01089 G[2].z = D[0].z + (M[2].y-by0)*(D[2].z-D[0].z)/dy; 01090 normalize(&G[2],G[2]); 01091 } 01092 if( ((pat & 0x0a) == 0x02) || ((pat & 0x0a) == 0x08) ) 01093 { 01094 if( (ders & 0x02) == 0 ) 01095 DER( D[1], iz, i, j+1 ); 01096 if( (ders & 0x08) == 0 ) 01097 DER( D[3], iz, i+1, j+1 ); 01098 ders |= 0x0a; 01099 01100 f=F[iz][i+1][j+1]; /* intersection */ 01101 a=F[iz][i][j+1]; 01102 VEC( M[3], bx1, by0+a*dy/(a-f), bz0 ); 01103 01104 G[3].x = D[1].x + (M[3].y-by0)*(D[3].x-D[1].x)/dy; 01105 G[3].y = D[1].y + (M[3].y-by0)*(D[3].y-D[1].y)/dy; 01106 G[3].z = D[1].z + (M[3].y-by0)*(D[3].z-D[1].z)/dy; 01107 normalize(&G[3],G[3]); 01108 } 01109 if( ((pat & 0x0c) == 0x04) || ((pat & 0x0c) == 0x08) ) 01110 { 01111 if( (ders & 0x04) == 0 ) 01112 DER( D[2], iz, i+1, j ); 01113 if( (ders & 0x08) == 0 ) 01114 DER( D[3], iz, i+1, j+1 ); 01115 ders |= 0x0c; 01116 01117 f=F[iz][i+1][j+1]; /* intersection */ 01118 a=F[iz][i+1][j]; 01119 VEC( M[1], bx0+a*dx/(a-f), by1, bz0 ); 01120 01121 G[1].x = D[2].x + (M[1].x-bx0)*(D[3].x-D[2].x)/dx; 01122 G[1].y = D[2].y + (M[1].x-bx0)*(D[3].y-D[2].y)/dx; 01123 G[1].z = D[2].z + (M[1].x-bx0)*(D[3].z-D[2].z)/dx; 01124 normalize(&G[1],G[1]); 01125 } 01126 01127 01128 if( ((pat & 0x30) == 0x10) || ((pat & 0x30) == 0x20) ) 01129 { 01130 if( (ders & 0x10) == 0 ) 01131 DER( D[4], iz+1, i, j ); 01132 if( (ders & 0x20) == 0 ) 01133 DER( D[5], iz+1, i, j+1 ); 01134 ders |= 0x30; 01135 01136 f=F[iz+1][i][j+1]; /* intersection */ 01137 a=F[iz+1][i][j]; 01138 VEC( M[4], bx0+a*dx/(a-f), by0, bz1 ); 01139 01140 G[4].x = D[4].x + (M[4].x-bx0)*(D[5].x-D[4].x)/dx; 01141 G[4].y = D[4].y + (M[4].x-bx0)*(D[5].y-D[4].y)/dx; 01142 G[4].z = D[4].z + (M[4].x-bx0)*(D[5].z-D[4].z)/dx; 01143 normalize(&G[4],G[4]); 01144 } 01145 if( ((pat & 0x50) == 0x10) || ((pat & 0x50) == 0x40) ) 01146 { 01147 if( (ders & 0x10) == 0 ) 01148 DER( D[4], iz+1, i, j ); 01149 if( (ders & 0x40) == 0 ) 01150 DER( D[6], iz+1, i+1, j ); 01151 ders |= 0x50; 01152 01153 f=F[iz+1][i+1][j]; /* intersection */ 01154 a=F[iz+1][i][j]; 01155 VEC( M[6], bx0, by0+a*dy/(a-f), bz1 ); 01156 01157 G[6].x = D[4].x + (M[6].y-by0)*(D[6].x-D[4].x)/dy; 01158 G[6].y = D[4].y + (M[6].y-by0)*(D[6].y-D[4].y)/dy; 01159 G[6].z = D[4].z + (M[6].y-by0)*(D[6].z-D[4].z)/dy; 01160 normalize(&G[6],G[6]); 01161 } 01162 if( ((pat & 0xa0) == 0x20) || ((pat & 0xa0) == 0x80) ) 01163 { 01164 if( (ders & 0x20) == 0 ) 01165 DER( D[5], iz+1, i, j+1 ); 01166 if( (ders & 0x80) == 0 ) 01167 DER( D[7], iz+1, i+1, j+1 ); 01168 ders |= 0xa0; 01169 01170 f=F[iz+1][i+1][j+1]; /* intersection */ 01171 a=F[iz+1][i][j+1]; 01172 VEC( M[7], bx1, by0+a*dy/(a-f), bz1 ); 01173 01174 G[7].x = D[5].x + (M[7].y-by0)*(D[7].x-D[5].x)/dy; 01175 G[7].y = D[5].y + (M[7].y-by0)*(D[7].y-D[5].y)/dy; 01176 G[7].z = D[5].z + (M[7].y-by0)*(D[7].z-D[5].z)/dy; 01177 normalize(&G[7],G[7]); 01178 } 01179 if( ((pat & 0xc0) == 0x40) || ((pat & 0xc0) == 0x80) ) 01180 { 01181 if( (ders & 0x40) == 0 ) 01182 DER( D[6], iz+1, i+1, j ); 01183 if( (ders & 0x80) == 0 ) 01184 DER( D[7], iz+1, i+1, j+1 ); 01185 ders |= 0xc0; 01186 01187 f=F[iz+1][i+1][j+1]; /* intersection */ 01188 a=F[iz+1][i+1][j]; 01189 VEC( M[5], bx0+a*dx/(a-f), by1, bz1 ); 01190 01191 G[5].x = D[6].x + (M[5].x-bx0)*(D[7].x-D[6].x)/dx; 01192 G[5].y = D[6].y + (M[5].x-bx0)*(D[7].y-D[6].y)/dx; 01193 G[5].z = D[6].z + (M[5].x-bx0)*(D[7].z-D[6].z)/dx; 01194 normalize(&G[5],G[5]); 01195 } 01196 01197 01198 if( ((pat & 0x11) == 0x01) || ((pat & 0x11) == 0x10) ) 01199 { 01200 if( (ders & 0x01) == 0 ) 01201 DER( D[0], iz, i, j ); 01202 if( (ders & 0x10) == 0 ) 01203 DER( D[4], iz+1, i, j ); 01204 ders |= 0x11; 01205 01206 f=F[iz+1][i][j]; /* intersection */ 01207 a=F[iz][i][j]; 01208 VEC( M[8], bx0, by0, bz0+a*dz/(a-f) ); 01209 01210 G[8].x = D[0].x + (M[8].z-bz0)*(D[4].x-D[0].x)/dz; 01211 G[8].y = D[0].y + (M[8].z-bz0)*(D[4].y-D[0].y)/dz; 01212 G[8].z = D[0].z + (M[8].z-bz0)*(D[4].z-D[0].z)/dz; 01213 normalize(&G[8],G[8]); 01214 } 01215 if( ((pat & 0x22) == 0x02) || ((pat & 0x22) == 0x20) ) 01216 { 01217 if( (ders & 0x02) == 0 ) 01218 DER( D[1], iz, i, j+1 ); 01219 if( (ders & 0x20) == 0 ) 01220 DER( D[5], iz+1, i, j+1 ); 01221 ders |= 0x22; 01222 01223 f=F[iz+1][i][j+1]; /* intersection */ 01224 a=F[iz][i][j+1]; 01225 VEC( M[9], bx1, by0, bz0+a*dz/(a-f) ); 01226 01227 G[9].x = D[1].x + (M[9].z-bz0)*(D[5].x-D[1].x)/dz; 01228 G[9].y = D[1].y + (M[9].z-bz0)*(D[5].y-D[1].y)/dz; 01229 G[9].z = D[1].z + (M[9].z-bz0)*(D[5].z-D[1].z)/dz; 01230 normalize(&G[9],G[9]); 01231 } 01232 if( ((pat & 0x44) == 0x04) || ((pat & 0x44) == 0x40) ) 01233 { 01234 if( (ders & 0x04) == 0 ) 01235 DER( D[2], iz, i+1, j ); 01236 if( (ders & 0x40) == 0 ) 01237 DER( D[6], iz+1, i+1, j ); 01238 ders |= 0x44; 01239 01240 f=F[iz+1][i+1][j]; /* intersection */ 01241 a=F[iz][i+1][j]; 01242 VEC( M[10], bx0, by1, bz0+a*dz/(a-f) ); 01243 01244 G[10].x = D[2].x + (M[10].z-bz0)*(D[6].x-D[2].x)/dz; 01245 G[10].y = D[2].y + (M[10].z-bz0)*(D[6].y-D[2].y)/dz; 01246 G[10].z = D[2].z + (M[10].z-bz0)*(D[6].z-D[2].z)/dz; 01247 normalize(&G[10],G[10]); 01248 } 01249 if( ((pat & 0x88) == 0x08) || ((pat & 0x88) == 0x80) ) 01250 { 01251 if( (ders & 0x08) == 0 ) 01252 DER( D[3], iz, i+1, j+1 ); 01253 if( (ders & 0x80) == 0 ) 01254 DER( D[7], iz+1, i+1, j+1 ); 01255 ders |= 0x88; 01256 01257 f=F[iz+1][i+1][j+1]; /* intersection */ 01258 a=F[iz][i+1][j+1]; 01259 VEC( M[11], bx1, by1, bz0+a*dz/(a-f) ); 01260 01261 G[11].x = D[3].x + (M[11].z-bz0)*(D[7].x-D[3].x)/dz; 01262 G[11].y = D[3].y + (M[11].z-bz0)*(D[7].y-D[3].y)/dz; 01263 G[11].z = D[3].z + (M[11].z-bz0)*(D[7].z-D[3].z)/dz; 01264 normalize(&G[11],G[11]); 01265 } 01266 01267 if( (Flags[iz][i][j]&DRAW_ALT)!=0 ) 01268 { 01269 if( AltMethodTable<T>::get(PatternTable[pat].method) != 0 ) 01270 AltMethodTable<T>::get(PatternTable[pat].method) 01271 ( pat, M, G, trifunc, tridata ); 01272 } 01273 else 01274 { 01275 if( MethodTable<T>::get(PatternTable[pat].method) != NULL ) 01276 MethodTable<T>::get(PatternTable[pat].method) 01277 ( pat, M, G, trifunc, tridata ); 01278 } 01279 } 01280 } 01281 } 01282 } 01283 } |
|
Definition at line 748 of file guge_marchcube.cpp.
00755 { 00756 T f; 00757 int ix,iy; 00758 00759 /* --- initial code for iy=0,ix=0 --- */ 00760 00761 Pat1[0][0] = 0x00; /*initialize new pattern */ 00762 00763 f = Fi[0][0]; /* get function value */ 00764 if( f < 0.0 ) 00765 { 00766 Pat1[0][0] |= 0x01; /* influenced patterns */ 00767 } 00768 /* --- initial code for iy=0 and ix = 1,..,nx ---- */ 00769 00770 for( ix=1; ix<=nx; ix++ ) 00771 { 00772 Pat1[0][ix] = 0x00; /*initialize new pattern */ 00773 00774 f = Fi[0][ix]; /* get function value */ 00775 if( f < 0.0 ) 00776 { 00777 Pat1[0][ix] |= 0x01; /* influenced patterns */ 00778 Pat1[0][ix-1] |= 0x02; 00779 Pat0[0][ix] |= 0x10; 00780 Pat0[0][ix-1] |= 0x20; 00781 } 00782 } 00783 for( iy=1; iy<=ny; iy++ ) 00784 { 00785 /* --- initial code for ix = 0 --- */ 00786 00787 Pat1[iy][0] = 0x00; /*initialize new pattern */ 00788 00789 f = Fi[iy][0]; /* get function value */ 00790 if( f < 0.0 ) 00791 { 00792 Pat1[iy][0] |= 0x01; /* influenced patterns */ 00793 Pat1[iy-1][0] |= 0x04; 00794 Pat0[iy][0] |= 0x10; 00795 Pat0[iy-1][0] |= 0x40; 00796 } 00797 /* ---- code for ix=1,..,nx ---- */ 00798 00799 for( ix=1; ix<=nx; ix++ ) 00800 { 00801 Pat1[iy][ix] = 0x00; /*initialize new pattern */ 00802 00803 f = Fi[iy][ix]; /* get function value */ 00804 if( f < 0.0 ) 00805 { 00806 Pat1[iy][ix] |= 0x01; /* influenced patterns */ 00807 Pat1[iy][ix-1] |= 0x02; 00808 Pat1[iy-1][ix] |= 0x04; 00809 Pat1[iy-1][ix-1] |= 0x08; 00810 Pat0[iy][ix] |= 0x10; 00811 Pat0[iy][ix-1] |= 0x20; 00812 Pat0[iy-1][ix] |= 0x40; 00813 Pat0[iy-1][ix-1] |= 0x80; 00814 } 00815 } 00816 } 00817 } |
|
Definition at line 410 of file guge_normalize.h.
00413 { 00414 for( int i = 0; i < nP; i++ ) 00415 { 00416 P[i].x = (P[i].x - minx) / (scalex); 00417 P[i].y = (P[i].y - miny) / (scaley); 00418 } 00419 } |
|
Definition at line 397 of file guge_normalize.h.
00401 { 00402 for( int i = 0; i < nP; i++ ) 00403 { 00404 P[i].x = (P[i].x - minx) / (scalex); 00405 P[i].y = (P[i].y - miny) / (scaley); 00406 P[i].z = (P[i].z - minz) / (scalez); 00407 } 00408 } |
|
Definition at line 425 of file guge_normalize.h.
00429 { 00430 int i; 00431 T w; 00432 for( i = 0; i < nP; i++ ) 00433 { 00434 w = Pw[i].w; 00435 Pw[i].x = (Pw[i].x - w*minx) / (scalex); 00436 Pw[i].y = (Pw[i].y - w*miny) / (scaley); 00437 Pw[i].z = (Pw[i].z - w*minz) / (scalez); 00438 } 00439 } |
|
|
|
Definition at line 59 of file guge_marchcube.cpp.
00068 { 00069 point<T> a,b,N; 00070 T s; 00071 00072 if( !inv ) 00073 { 00074 a = P2 - P1; 00075 b = P3 - P1; 00076 N = cross_product( a, b ); 00077 00078 s=(T1.x+T2.x+T3.x)*N.x + (T1.y+T2.y+T3.y)*N.y + (T1.z+T2.z+T3.z)*N.z; 00079 00080 if( s > 0.0 ) 00081 func(0,&P1,&P2,&P3,&T1,&T2,&T3,fdat); 00082 else 00083 func(1,&P1,&P3,&P2,&T1,&T3,&T2,fdat); /* front and back faces swapped */ 00084 } 00085 else 00086 { 00087 a = P3 - P1; 00088 b = P2 - P1; 00089 N = cross_product( a, b ); 00090 00091 s=(T1.x+T2.x+T3.x)*N.x + (T1.y+T2.y+T3.y)*N.y + (T1.z+T2.z+T3.z)*N.z; 00092 00093 if( s > 0.0 ) 00094 func(0,&P1,&P3,&P2,&T1,&T3,&T2,fdat); 00095 else 00096 func(1,&P1,&P2,&P3,&T1,&T2,&T3,fdat); 00097 } 00098 } |
|
Definition at line 535 of file guge_normalize.h.
|
|
Definition at line 524 of file guge_normalize.h.
|
|
Definition at line 513 of file guge_normalize.h.
|
|
Definition at line 501 of file guge_normalize.h.
|
|
Definition at line 490 of file guge_normalize.h.
|
|
Definition at line 139 of file guge_normalize.h.
00141 { 00142 for( int i = 0; i < nP; i++ ) 00143 { 00144 if( P[i].x < minx ) minx = P[i].x; 00145 else if( P[i].x > maxx ) maxx = P[i].x; 00146 } 00147 } |
|
Definition at line 124 of file guge_normalize.h.
00127 { 00128 for( int i = 0; i < nP; i++ ) 00129 { 00130 if( P[i].x < minx ) minx = P[i].x; 00131 else if( P[i].x > maxx ) maxx = P[i].x; 00132 00133 if( P[i].y < miny ) miny = P[i].y; 00134 else if( P[i].y > maxy ) maxy = P[i].y; 00135 } 00136 } |
|
Definition at line 105 of file guge_normalize.h.
00109 { 00110 for( int i = 0; i < nP; i++ ) 00111 { 00112 if( P[i].x < minx ) minx = P[i].x; 00113 else if( P[i].x > maxx ) maxx = P[i].x; 00114 00115 if( P[i].y < miny ) miny = P[i].y; 00116 else if( P[i].y > maxy ) maxy = P[i].y; 00117 00118 if( P[i].z < minz ) minz = P[i].z; 00119 else if( P[i].z > maxz ) maxz = P[i].z; 00120 } 00121 } |
|
Definition at line 86 of file guge_normalize.h.
00088 { 00089 T x,w; 00090 int i; 00091 00092 for( i = 0; i < nP; i++ ) 00093 { 00094 w = Pw[i].w; 00095 00096 x = Pw[i].x / w; 00097 if( x < minx ) minx = x; 00098 else if( x > maxx ) maxx = x; 00099 } 00100 } |
|
Definition at line 64 of file guge_normalize.h.
00067 { 00068 T x,y,w; 00069 int i; 00070 00071 for( i = 0; i < nP; i++ ) 00072 { 00073 w = Pw[i].w; 00074 00075 x = Pw[i].x / w; 00076 if( x < minx ) minx = x; 00077 else if( x > maxx ) maxx = x; 00078 00079 y = Pw[i].y / w; 00080 if( y < miny ) miny = y; 00081 else if( y > maxy ) maxy = y; 00082 } 00083 } |
|
Definition at line 37 of file guge_normalize.h.
00041 { 00042 T x,y,z,w; 00043 int i; 00044 00045 for( i = 0; i < nP; i++ ) 00046 { 00047 w = Pw[i].w; 00048 00049 x = Pw[i].x / w; 00050 if( x < minx ) minx = x; 00051 else if( x > maxx ) maxx = x; 00052 00053 y = Pw[i].y / w; 00054 if( y < miny ) miny = y; 00055 else if( y > maxy ) maxy = y; 00056 00057 z = Pw[i].z / w; 00058 if( z < minz ) minz = z; 00059 else if( z > maxz ) maxz = z; 00060 } 00061 } |
|
Definition at line 385 of file guge_normalize.h.
00387 { 00388 UpdateBoundingBoxH( nPw, Pw, minP.x, maxP.x, minP.y, maxP.y, minP.z, maxP.z ); 00389 } |
|
Definition at line 379 of file guge_normalize.h.
00381 { 00382 UpdateBoundingBoxH( nPw, Pw, minP.x, maxP.x, minP.y, maxP.y, minP.z, maxP.z ); 00383 } |
|
Definition at line 373 of file guge_normalize.h.
00375 { 00376 UpdateBoundingBoxE( nP, P, minP.x, maxP.x, minP.y, maxP.y, minP.z, maxP.z ); 00377 } |
|
Definition at line 367 of file guge_normalize.h.
00369 { 00370 UpdateBoundingBoxE( nP, P, minP.x, maxP.x, minP.y, maxP.y, minP.z, maxP.z ); 00371 } |
|
Definition at line 360 of file guge_normalize.h.
00362 { 00363 UpdateBoundingBoxH( nPw, Pw, minP.x, maxP.x, minP.y, maxP.y ); 00364 } |
|
Definition at line 354 of file guge_normalize.h.
00356 { 00357 UpdateBoundingBoxH( nPw, Pw, minP.x, maxP.x, minP.y, maxP.y ); 00358 } |
|
Definition at line 348 of file guge_normalize.h.
00350 { 00351 UpdateBoundingBoxE( nP, P, minP.x, maxP.x, minP.y, maxP.y ); 00352 } |
|
Definition at line 342 of file guge_normalize.h.
00344 { 00345 UpdateBoundingBoxE( nP, P, minP.x, maxP.x, minP.y, maxP.y ); 00346 } |
|
Definition at line 335 of file guge_normalize.h.
00337 { 00338 UpdateBoundingBoxH( nPw, Pw, minP.x, maxP.x ); 00339 } |
|
Definition at line 329 of file guge_normalize.h.
00331 { 00332 UpdateBoundingBoxH( nPw, Pw, minP.x, maxP.x ); 00333 } |
|
Definition at line 323 of file guge_normalize.h.
00325 { 00326 UpdateBoundingBoxE( nP, P, minP.x, maxP.x ); 00327 } |
|
Definition at line 317 of file guge_normalize.h.
00319 { 00320 UpdateBoundingBoxE( nP, P, minP.x, maxP.x ); 00321 } |
|
|
|
Definition at line 637 of file guge_marchcube.cpp. |
|
Definition at line 636 of file guge_marchcube.cpp. |
|
Initial value: { { 0, 0, 2, 0, 8, 0, 0, 0}, { 0, 0, 0, 3, 0, 9, 0, 0}, { 2, 0, 0, 1, 0, 0,10, 0}, { 0, 3, 1, 0, 0, 0, 0,11}, { 8, 0, 0, 0, 0, 4, 6, 0}, { 0, 9, 0, 0, 4, 0, 0, 7}, { 0, 0,10, 0, 6, 0, 0, 5}, { 0, 0, 0,11, 0, 7, 5, 0}, } Definition at line 27 of file guge_mcpattern.cpp. |
|
Definition at line 577 of file guge_marchcube.cpp. |
|
Definition at line 576 of file guge_marchcube.cpp. |
|
Definition at line 73 of file guge_mcpattern.cpp. |
|
Initial value: { {0,1,2,3,4,5,6,7}, {1,3,0,2,5,7,4,6}, {3,2,1,0,7,6,5,4}, {2,0,3,1,6,4,7,5}, {4,5,0,1,6,7,2,3}, {0,4,1,5,2,6,3,7}, {1,0,5,4,3,2,7,6}, {5,1,4,0,7,3,6,2}, {5,7,1,3,4,6,0,2}, {1,5,3,7,0,4,2,6}, {3,1,7,5,2,0,6,4}, {7,3,5,1,6,2,4,0}, {6,4,2,0,7,5,3,1}, {2,6,0,4,3,7,1,5}, {0,2,4,6,1,3,5,7}, {4,0,6,2,5,1,7,3}, {7,6,3,2,5,4,1,0}, {3,7,2,6,1,5,0,4}, {2,3,6,7,0,1,4,5}, {6,2,7,3,4,0,5,1}, {5,4,7,6,1,0,3,2}, {7,5,6,4,3,1,2,0}, {6,7,4,5,2,3,0,1}, {4,6,5,7,0,2,1,3}, } Definition at line 46 of file guge_mcpattern.cpp. |