#include <bcell2d_voronoi_impl2d.hpp>
Definition at line 79 of file bcell2d_voronoi_impl2d.hpp.
typedef algebraic_surface<C,Ref> AlgebraicSurface [inherited] |
Definition at line 75 of file bcell3d_algebraic_surface.hpp.
Definition at line 71 of file bcell3d_algebraic_surface.hpp.
typedef bounding_box<C, REF_OF(V) > BoundingBox |
Reimplemented from bcell3d_algebraic_surface< C, V >.
Definition at line 88 of file bcell2d_voronoi_impl2d.hpp.
Reimplemented from bcell3d_algebraic_surface< C, V >.
Definition at line 85 of file bcell2d_voronoi_impl2d.hpp.
Reimplemented from bcell3d< C, V >.
Definition at line 70 of file bcell3d_algebraic_surface.hpp.
Reimplemented from bcell3d_algebraic_surface< C, V >.
Definition at line 84 of file bcell2d_voronoi_impl2d.hpp.
typedef Topology::Face Face [inherited] |
Definition at line 67 of file bcell3d_algebraic_surface.hpp.
Definition at line 92 of file bcell2d_voronoi_impl2d.hpp.
Reimplemented from bcell3d_algebraic_surface< C, V >.
Definition at line 82 of file bcell2d_voronoi_impl2d.hpp.
typedef bcell2d_voronoi_impl2d<C,V>::Polynomial Polynomial |
Reimplemented from bcell3d_algebraic_surface< C, V >.
Definition at line 87 of file bcell2d_voronoi_impl2d.hpp.
typedef solver_implicit<C,V> Solver [inherited] |
Reimplemented from bcell3d< C, V >.
Definition at line 82 of file bcell3d_algebraic_surface.hpp.
Reimplemented from bcell3d_algebraic_surface< C, V >.
Definition at line 91 of file bcell2d_voronoi_impl2d.hpp.
typedef tpl3d<C,V> Topology3d [inherited] |
Reimplemented from bcell3d< C, V >.
Definition at line 62 of file bcell3d_algebraic_surface.hpp.
Definition at line 83 of file bcell2d_voronoi_impl2d.hpp.
bcell2d_voronoi_impl2d | ( | const Polynomial & | pol, | |
const BoundingBox & | bx | |||
) | [inline] |
Definition at line 204 of file bcell2d_voronoi_impl2d.hpp.
00205 : Cell3dAlgebraicSurface(pol,bx) 00206 { 00207 //low=upp=NULL; 00208 }
bcell2d_voronoi_impl2d | ( | const char * | s, | |
const BoundingBox & | b | |||
) | [inline] |
Definition at line 212 of file bcell2d_voronoi_impl2d.hpp.
00213 : Cell3dAlgebraicSurface(s,b) 00214 { 00215 //low=upp=NULL; 00216 }
bcell2d_voronoi_impl2d | ( | voronoi_site2d< C, V > * | cv, | |
const BoundingBox & | b | |||
) | [inline] |
Definition at line 219 of file bcell2d_voronoi_impl2d.hpp.
References bcell2d_voronoi_impl2d< C, V >::equation(), and bounding_box< C, V >::zmax().
00220 : Cell3dAlgebraicSurface(cv->distfunc(),b) 00221 { 00222 //low=upp=NULL; 00223 std::cout<<"created voronoi bcell, "<< this->equation() <<std::endl; 00224 std::cout<<"box "<< b<<", zmax "<< b.zmax() <<std::endl; 00225 00226 00227 }
bcell2d_voronoi_impl2d | ( | const bcell2d_voronoi_impl2d< C, V > & | cl | ) | [inline] |
Definition at line 97 of file bcell2d_voronoi_impl2d.hpp.
00098 : Cell3dAlgebraicSurface(cl) {}
BoundingBox boundingBox | ( | ) | const [inline, inherited] |
Reimplemented from cell3d< C, V >.
Definition at line 81 of file bcell3d.hpp.
Referenced by bcell3d< C, V >::intersections().
00081 { return (BoundingBox)*this; }
Point center | ( | void | ) | [inline, inherited] |
Reimplemented in bcell3d< C, V >.
Definition at line 75 of file cell3d.hpp.
References bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
Point center | ( | void | ) | const [inline, virtual, inherited] |
Reimplemented from bcell3d< C, V >.
Definition at line 110 of file bcell3d_algebraic_surface.hpp.
References bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
C center_value | ( | ) | [inline, inherited] |
Definition at line 113 of file bcell3d_algebraic_surface.hpp.
References bcell3d_algebraic_surface< C, V >::m_polynomial.
00113 { return m_polynomial(0.5,0.5,0.5); }
void compute_boundary | ( | ) | [inline] |
Definition at line 164 of file bcell2d_voronoi_impl2d.hpp.
00165 { 00166 00167 // BoundingBox * b( (BoundingBox*)this ); 00168 //Seq<mmx::GMP::rational> bx; 00169 //bx<<as<mmx::GMP::rational>( ((BoundingBox*)this)->xmin()); 00170 //bx<<as<mmx::GMP::rational>(this->xmax()); 00171 //bx<<as<mmx::GMP::rational>(this->ymin()); 00172 //bx<<as<mmx::GMP::rational>(this->ymax()); 00173 00174 //Solver::edge_point(this->n_intersections, this->m_polynomial, Solver::north_edge, b); 00175 //Solver::edge_point(this->s_intersections, this->m_polynomial, Solver::south_edge, b); 00176 //Solver::edge_point(this->w_intersections, this->m_polynomial, Solver::west_edge , b); 00177 //Solver::edge_point(this->e_intersections, this->m_polynomial, Solver::east_edge , b); 00178 // Solver::extremal(this->m_singular, this->m_polynomial, b); 00179 00180 }
Definition at line 179 of file bcell3d.hpp.
References bcell3d< C, V >::b_neighbors, mmx::shape::check_overlap(), bcell3d< C, V >::e_neighbors, bcell3d< C, V >::f_neighbors, bcell3d< C, V >::n_neighbors, bcell3d< C, V >::s_neighbors, Seq< C, R >::search(), SELF, and bcell3d< C, V >::w_neighbors.
Referenced by bcell3d_algebraic_surface< C, V >::split().
00180 { 00181 int i; 00182 bool flag; 00183 00184 //copy horizontally 00185 b->e_neighbors= this->e_neighbors ; 00186 foreach(SELF* cl,b->e_neighbors) { 00187 i= cl->w_neighbors.search(this); 00188 cl->w_neighbors[i]= b; 00189 } 00190 00191 a->w_neighbors= this->w_neighbors ; 00192 foreach(SELF* cl,a->w_neighbors) { 00193 i= cl->e_neighbors.search(this); 00194 cl->e_neighbors[i]= a; 00195 } 00196 00197 //update vertically 00198 foreach(SELF* cl,this->s_neighbors) { 00199 flag=false; 00200 if ( check_overlap(cl,a,0) //) 00201 && ( check_overlap(cl,a,1) || check_overlap(cl,a,2)) ) 00202 { 00203 //assert( cl->ymax()== a->ymin() ); 00204 a->s_neighbors<< cl; 00205 i= cl->n_neighbors.search(this); 00206 cl->n_neighbors[i]= a; 00207 flag=true; 00208 } 00209 if ( check_overlap(cl,b,0) //) 00210 && ( check_overlap(cl,a,1) || check_overlap(cl,a,2)) ) 00211 { 00212 //assert( cl->ymax()== b->ymin() ); 00213 b->s_neighbors<< cl; 00214 if (!flag) 00215 { 00216 i= cl->n_neighbors.search(this); 00217 cl->n_neighbors[i]= b; 00218 } 00219 else 00220 cl->n_neighbors << b; 00221 } 00222 } 00223 foreach(SELF* cl,this->n_neighbors) { 00224 flag=false; 00225 if ( check_overlap(cl,a,0) //) 00226 && ( check_overlap(cl,a,1) || check_overlap(cl,a,2)) ) 00227 { 00228 a->n_neighbors<< cl; 00229 i= cl->s_neighbors.search(this); 00230 cl->s_neighbors[i]= a; 00231 flag=true; 00232 } 00233 if ( check_overlap(cl,b,0) //) 00234 && ( check_overlap(cl,a,1) || check_overlap(cl,a,2)) ) 00235 { 00236 b->n_neighbors<< cl; 00237 if (!flag) 00238 { 00239 i= cl->s_neighbors.search(this); 00240 cl->s_neighbors[i]= b; 00241 } 00242 else 00243 cl->s_neighbors << b; 00244 } 00245 } 00246 00247 //update depth 00248 foreach(SELF* cl,this->f_neighbors) { 00249 flag=false; 00250 if ( check_overlap(cl,a,0) //) 00251 && ( check_overlap(cl,a,1) || check_overlap(cl,a,2)) ) 00252 { 00253 //assert( cl->ymax()== a->ymin() ); 00254 a->f_neighbors<< cl; 00255 i= cl->b_neighbors.search(this); 00256 cl->b_neighbors[i]= a; 00257 flag=true; 00258 } 00259 if ( check_overlap(cl,b,0) //) 00260 && ( check_overlap(cl,a,1) || check_overlap(cl,a,2)) ) 00261 { 00262 //assert( cl->ymax()== b->ymin() ); 00263 b->f_neighbors<< cl; 00264 if (!flag) 00265 { 00266 i= cl->b_neighbors.search(this); 00267 cl->b_neighbors[i]= b; 00268 } 00269 else 00270 cl->b_neighbors << b; 00271 } 00272 } 00273 foreach(SELF* cl,this->b_neighbors) { 00274 flag=false; 00275 if ( check_overlap(cl,a,0) //) 00276 && ( check_overlap(cl,a,1) || check_overlap(cl,a,2)) ) 00277 { 00278 a->b_neighbors<< cl; 00279 i= cl->f_neighbors.search(this); 00280 cl->f_neighbors[i]= a; 00281 flag=true; 00282 } 00283 if ( check_overlap(cl,b,0) //) 00284 && ( check_overlap(cl,a,1) || check_overlap(cl,a,2)) ) 00285 { 00286 b->b_neighbors<< cl; 00287 if (!flag) 00288 { 00289 i= cl->f_neighbors.search(this); 00290 cl->f_neighbors[i]= b; 00291 } 00292 else 00293 cl->f_neighbors << b; 00294 } 00295 } 00296 }
Definition at line 299 of file bcell3d.hpp.
References bcell3d< C, V >::b_neighbors, mmx::shape::check_overlap(), bcell3d< C, V >::e_neighbors, bcell3d< C, V >::f_neighbors, bcell3d< C, V >::n_neighbors, bcell3d< C, V >::s_neighbors, Seq< C, R >::search(), SELF, and bcell3d< C, V >::w_neighbors.
Referenced by bcell3d_algebraic_surface< C, V >::split().
00300 { 00301 int i; 00302 bool flag; 00303 00304 //copy vertically 00305 a->s_neighbors= this->s_neighbors ; 00306 foreach(SELF* cl,a->s_neighbors) { 00307 i= cl->n_neighbors.search(this); 00308 cl->n_neighbors[i]= a; 00309 } 00310 b->n_neighbors= this->n_neighbors ; 00311 foreach(SELF* cl,b->n_neighbors) { 00312 i= cl->s_neighbors.search(this); 00313 cl->s_neighbors[i]= b; 00314 } 00315 00316 //update horizontally 00317 foreach(SELF* cl,this->w_neighbors) { 00318 flag=false; 00319 if ( check_overlap(cl,a,1) //) 00320 && ( check_overlap(cl,a,0) || check_overlap(cl,a,2)) ) 00321 { 00322 //assert( cl->xmax()== a->xmin() ); 00323 a->w_neighbors<< cl; 00324 i= cl->e_neighbors.search(this); 00325 cl->e_neighbors[i]= a; 00326 flag=true; 00327 } 00328 if ( check_overlap(cl,b,1) //) 00329 && ( check_overlap(cl,a,0) || check_overlap(cl,a,2)) ) 00330 { 00331 //assert( cl->xmax()== b->xmin() ); 00332 b->w_neighbors<< cl; 00333 if (!flag) 00334 { 00335 i= cl->e_neighbors.search(this); 00336 cl->e_neighbors[i]= b; 00337 } 00338 else 00339 cl->e_neighbors << b; 00340 } 00341 } 00342 foreach(SELF* cl,this->e_neighbors) { 00343 flag=false; 00344 if ( check_overlap(cl,a,1) //) 00345 && ( check_overlap(cl,a,0) || check_overlap(cl,a,2)) ) 00346 { 00347 a->e_neighbors<< cl; 00348 i= cl->w_neighbors.search(this); 00349 cl->w_neighbors[i]= a; 00350 flag=true; 00351 } 00352 if ( check_overlap(cl,b,1) //) 00353 && ( check_overlap(cl,a,0) || check_overlap(cl,a,2)) ) 00354 { 00355 b->e_neighbors<< cl; 00356 if (!flag) 00357 { 00358 i= cl->w_neighbors.search(this); 00359 cl->w_neighbors[i]= b; 00360 } 00361 else 00362 cl->w_neighbors << b; 00363 } 00364 } 00365 00366 00367 //update depth 00368 foreach(SELF* cl,this->f_neighbors) { 00369 flag=false; 00370 if ( check_overlap(cl,a,1) //) 00371 && ( check_overlap(cl,a,0) || check_overlap(cl,a,2)) ) 00372 { 00373 //assert( cl->xmax()== a->xmin() ); 00374 a->f_neighbors<< cl; 00375 i= cl->b_neighbors.search(this); 00376 cl->b_neighbors[i]= a; 00377 flag=true; 00378 } 00379 if ( check_overlap(cl,b,1) //) 00380 && ( check_overlap(cl,a,0) || check_overlap(cl,a,2)) ) 00381 { 00382 //assert( cl->xmax()== b->xmin() ); 00383 b->f_neighbors<< cl; 00384 if (!flag) 00385 { 00386 i= cl->b_neighbors.search(this); 00387 cl->b_neighbors[i]= b; 00388 } 00389 else 00390 cl->b_neighbors << b; 00391 } 00392 } 00393 foreach(SELF* cl,this->b_neighbors) { 00394 flag=false; 00395 if ( check_overlap(cl,a,1) //) 00396 && ( check_overlap(cl,a,0) || check_overlap(cl,a,2)) ) 00397 { 00398 a->b_neighbors<< cl; 00399 i= cl->f_neighbors.search(this); 00400 cl->f_neighbors[i]= a; 00401 flag=true; 00402 } 00403 if ( check_overlap(cl,b,1) //) 00404 && ( check_overlap(cl,a,0) || check_overlap(cl,a,2)) ) 00405 { 00406 b->b_neighbors<< cl; 00407 if (!flag) 00408 { 00409 i= cl->f_neighbors.search(this); 00410 cl->f_neighbors[i]= b; 00411 } 00412 else 00413 cl->f_neighbors << b; 00414 } 00415 } 00416 }
Definition at line 420 of file bcell3d.hpp.
References bcell3d< C, V >::b_neighbors, mmx::shape::check_overlap(), bcell3d< C, V >::e_neighbors, bcell3d< C, V >::f_neighbors, bcell3d< C, V >::n_neighbors, bcell3d< C, V >::s_neighbors, Seq< C, R >::search(), SELF, and bcell3d< C, V >::w_neighbors.
Referenced by bcell3d_algebraic_surface< C, V >::split().
00421 { 00422 int i; 00423 bool flag; 00424 00425 //copy vertically 00426 a->f_neighbors= this->f_neighbors ; 00427 foreach(SELF* cl,a->f_neighbors) { 00428 i= cl->b_neighbors.search(this); 00429 cl->b_neighbors[i]= a; 00430 } 00431 b->b_neighbors= this->b_neighbors ; 00432 foreach(SELF* cl,b->b_neighbors) { 00433 i= cl->f_neighbors.search(this); 00434 cl->f_neighbors[i]= b; 00435 } 00436 00437 //update horizontally 00438 foreach(SELF* cl,this->w_neighbors) { 00439 flag=false; 00440 if ( check_overlap(cl,a,2) //) 00441 && ( check_overlap(cl,a,0) || check_overlap(cl,a,1)) ) 00442 { 00443 //assert( cl->xmax()== a->xmin() ); 00444 a->w_neighbors<< cl; 00445 i= cl->e_neighbors.search(this); 00446 cl->e_neighbors[i]= a; 00447 flag=true; 00448 } 00449 if ( check_overlap(cl,b,2) //) 00450 && ( check_overlap(cl,a,0) || check_overlap(cl,a,1)) ) 00451 { 00452 //assert( cl->xmax()== b->xmin() ); 00453 b->w_neighbors<< cl; 00454 if (!flag) 00455 { 00456 i= cl->e_neighbors.search(this); 00457 cl->e_neighbors[i]= b; 00458 } 00459 else 00460 cl->e_neighbors << b; 00461 } 00462 } 00463 foreach(SELF* cl,this->e_neighbors) { 00464 flag=false; 00465 if ( check_overlap(cl,a,2) //) 00466 && ( check_overlap(cl,a,0) || check_overlap(cl,a,1)) ) 00467 { 00468 a->e_neighbors<< cl; 00469 i= cl->w_neighbors.search(this); 00470 cl->w_neighbors[i]= a; 00471 flag=true; 00472 } 00473 if ( check_overlap(cl,b,2) //) 00474 && ( check_overlap(cl,a,0) || check_overlap(cl,a,1)) ) 00475 { 00476 b->e_neighbors<< cl; 00477 if (!flag) 00478 { 00479 i= cl->w_neighbors.search(this); 00480 cl->w_neighbors[i]= b; 00481 } 00482 else 00483 cl->w_neighbors << b; 00484 } 00485 } 00486 //update vertically 00487 foreach(SELF* cl,this->s_neighbors) { 00488 flag=false; 00489 if ( check_overlap(cl,a,0) //) 00490 && ( check_overlap(cl,a,0) || check_overlap(cl,a,1)) ) 00491 { 00492 //assert( cl->ymax()== a->ymin() ); 00493 a->s_neighbors<< cl; 00494 i= cl->n_neighbors.search(this); 00495 cl->n_neighbors[i]= a; 00496 flag=true; 00497 } 00498 if ( check_overlap(cl,b,0) //) 00499 && ( check_overlap(cl,a,0) || check_overlap(cl,a,1)) ) 00500 { 00501 //assert( cl->ymax()== b->ymin() ); 00502 b->s_neighbors<< cl; 00503 if (!flag) 00504 { 00505 i= cl->n_neighbors.search(this); 00506 cl->n_neighbors[i]= b; 00507 } 00508 else 00509 cl->n_neighbors << b; 00510 } 00511 } 00512 foreach(SELF* cl,this->n_neighbors) { 00513 flag=false; 00514 if ( check_overlap(cl,a,2) //) 00515 && ( check_overlap(cl,a,0) || check_overlap(cl,a,1)) ) 00516 { 00517 a->n_neighbors<< cl; 00518 i= cl->s_neighbors.search(this); 00519 cl->s_neighbors[i]= a; 00520 flag=true; 00521 } 00522 if ( check_overlap(cl,b,2) //) 00523 && ( check_overlap(cl,a,0) || check_overlap(cl,a,1)) ) 00524 { 00525 b->n_neighbors<< cl; 00526 if (!flag) { 00527 i= cl->s_neighbors.search(this); 00528 cl->s_neighbors[i]= b; 00529 } 00530 else 00531 cl->s_neighbors << b; 00532 } 00533 } 00534 }
bool contains | ( | double | x, | |
double | y, | |||
double | z, | |||
bool | strict = false | |||
) | [inline, inherited] |
Definition at line 226 of file bounding_box.hpp.
References bounding_box< C, V >::m_xmax, bounding_box< C, V >::m_xmin, bounding_box< C, V >::m_ymax, bounding_box< C, V >::m_ymin, bounding_box< C, V >::m_zmax, and bounding_box< C, V >::m_zmin.
00227 { 00228 if(!strict) 00229 return (((m_xmin <= x) && (x <= m_xmax)) 00230 && ((m_ymin <= y) && (y <= m_ymax)) 00231 && ((m_zmin <= z) && (z <= m_zmax))) ; 00232 else 00233 return (((m_xmin < x) && (x < m_xmax)) 00234 && ((m_ymin < y) && (y < m_ymax)) 00235 && ((m_zmin < z) && (z < m_zmax))) ; 00236 }
bool contains | ( | double | x, | |
double | y, | |||
bool | strict = false | |||
) | [inline, inherited] |
Definition at line 215 of file bounding_box.hpp.
References bounding_box< C, V >::m_xmax, bounding_box< C, V >::m_xmin, bounding_box< C, V >::m_ymax, and bounding_box< C, V >::m_ymin.
bool contains | ( | double | x, | |
bool | strict = false | |||
) | [inline, inherited] |
Definition at line 206 of file bounding_box.hpp.
References bounding_box< C, V >::m_xmax, and bounding_box< C, V >::m_xmin.
void disconnect | ( | ) | [inline, inherited] |
Definition at line 537 of file bcell3d.hpp.
References bcell3d< C, V >::b_neighbors, Seq< C, R >::clear(), bcell3d< C, V >::e_neighbors, bcell3d< C, V >::f_neighbors, bcell3d< C, V >::n_neighbors, bcell3d< C, V >::s_neighbors, and bcell3d< C, V >::w_neighbors.
00538 { 00539 this->e_neighbors.clear(); 00540 this->w_neighbors.clear(); 00541 this->n_neighbors.clear(); 00542 this->s_neighbors.clear(); 00543 this->b_neighbors.clear(); 00544 this->f_neighbors.clear(); 00545 }
bool edge_point | ( | Point ** | CELL, | |
int | cube_index | |||
) | const [inline, inherited] |
Definition at line 501 of file bcell3d_algebraic_surface.hpp.
References solver_implicit< C, V >::east_back_edge, solver_implicit< C, V >::east_front_edge, solver_implicit< C, V >::edge_point(), bcell3d_algebraic_surface< C, V >::equation(), mmx::tensor::face(), solver_implicit< C, V >::north_back_edge, solver_implicit< C, V >::north_east_edge, solver_implicit< C, V >::north_front_edge, solver_implicit< C, V >::north_west_edge, Seq< C, R >::resize(), Seq< C, R >::size(), solver_implicit< C, V >::south_back_edge, solver_implicit< C, V >::south_east_edge, solver_implicit< C, V >::south_front_edge, solver_implicit< C, V >::south_west_edge, solver_implicit< C, V >::west_back_edge, and solver_implicit< C, V >::west_front_edge.
00501 { 00502 00503 BoundingBox* bx = (BoundingBox*)this; 00504 Seq<Point*> F; 00505 Polynomial bk, ft; 00506 00507 tensor::face(bk, equation(), 2, 0); 00508 if (cube_index & 1) { 00509 Solver::edge_point(F, bk, Solver::north_back_edge, *bx); 00510 if(F.size()==0) { 00511 std::cout<<"Problem in MC0"<<std::endl; 00512 return false; 00513 } else 00514 CELL[0] = F[0]; 00515 F.resize(0); 00516 } 00517 if (cube_index & 2) { 00518 Solver::edge_point(F, bk, Solver::east_back_edge , *bx); 00519 if(F.size()==0) { 00520 std::cout<<"Problem in MC1"<<std::endl; 00521 return false; 00522 } else 00523 CELL[1] = F[0]; 00524 F.resize(0); 00525 } 00526 if (cube_index & 4) { 00527 Solver::edge_point(F, bk, Solver::south_back_edge, *bx); 00528 if(F.size()==0) { 00529 std::cout<<"Problem in MC2"<<std::endl; 00530 return false; 00531 } else 00532 CELL[2] = F[0]; 00533 F.resize(0); 00534 } 00535 if (cube_index & 8) { 00536 Solver::edge_point(F, bk, Solver::west_back_edge , *bx); 00537 if(F.size()==0) { 00538 std::cout<<"Problem in MC3"<<std::endl; 00539 } else 00540 CELL[3] = F[0]; 00541 F.resize(0); 00542 } 00543 00544 tensor::face(ft,equation(), 2, 1); 00545 00546 if (cube_index & 16) { 00547 Solver::edge_point(F, ft, Solver::north_front_edge, *bx); 00548 if(F.size()==0) { 00549 std::cout<<"Problem in MC4 "<<std::endl; 00550 return false; 00551 } else 00552 CELL[4] = F[0]; 00553 F.resize(0); 00554 } 00555 00556 if (cube_index & 32) { 00557 Solver::edge_point(F, ft, Solver::east_front_edge , *bx); 00558 if(F.size()==0) { 00559 std::cout<<"Problem in MC5"<<std::endl; 00560 return false; 00561 } else 00562 CELL[5] = F[0]; 00563 F.resize(0); 00564 } 00565 00566 if (cube_index & 64) { 00567 Solver::edge_point(F, ft, Solver::south_front_edge, *bx); 00568 if(F.size()==0) { 00569 std::cout<<"Problem in MC6"<<std::endl; 00570 return false; 00571 } else 00572 CELL[6] = F[0]; 00573 F.resize(0); 00574 } 00575 00576 if (cube_index & 128) { 00577 Solver::edge_point(F, ft, Solver::west_front_edge , *bx); 00578 if(F.size()==0) { 00579 std::cout<<"Problem in MC7"<<std::endl; 00580 return false; 00581 } else 00582 CELL[7] = F[0]; 00583 F.resize(0); 00584 } 00585 00586 tensor::face(ft, equation(), 1, 1); 00587 if (cube_index & 256) { 00588 Solver::edge_point(F, ft, Solver::north_west_edge, *bx); 00589 if(F.size()==0) { 00590 std::cout<<"Problem in MC8"<<std::endl; 00591 return false; 00592 } else 00593 CELL[8] = F[0]; 00594 F.resize(0); 00595 } 00596 00597 if (cube_index & 512) { 00598 Solver::edge_point(F, ft, Solver::north_east_edge, *bx); 00599 if(F.size()==0) { 00600 std::cout<<"Problem in MC9"<<std::endl; 00601 return false; 00602 } else 00603 CELL[9] = F[0]; 00604 F.resize(0); 00605 } 00606 00607 tensor::face(bk, equation(), 1, 0); 00608 00609 if (cube_index & 1024) { 00610 Solver::edge_point(F, bk, Solver::south_east_edge, *bx); 00611 if(F.size()==0) { 00612 std::cout<<"Problem in MC10"<<std::endl; 00613 return false; 00614 } else 00615 CELL[10] = F[0]; 00616 F.resize(0); 00617 } 00618 00619 if (cube_index & 2048) { 00620 Solver::edge_point(F, bk, Solver::south_west_edge, *bx); 00621 if(F.size()==0) { 00622 std::cout<<"Problem in MC11"<<std::endl; 00623 return false; 00624 } else 00625 CELL[11] = F[0]; 00626 F.resize(0); 00627 } 00628 00629 return true; 00630 }
const Polynomial& equation | ( | void | ) | const [inline, inherited] |
Reimplemented in bcell2d_voronoi_impl2d< C, V >.
Definition at line 119 of file bcell3d_algebraic_surface.hpp.
References bcell3d_algebraic_surface< C, V >::m_polynomial.
Referenced by bcell3d_algebraic_surface< C, V >::edge_point(), and bcell3d_algebraic_surface< C, V >::is_regular().
00119 {return m_polynomial;}
Polynomial equation | ( | void | ) | [inline] |
Reimplemented from bcell3d_algebraic_surface< C, V >.
Definition at line 100 of file bcell2d_voronoi_impl2d.hpp.
References bcell3d_algebraic_surface< C, V >::m_polynomial.
Referenced by bcell2d_voronoi_impl2d< C, V >::bcell2d_voronoi_impl2d().
00100 { return this->m_polynomial; }
Polynomial get_polynomial | ( | ) | const [inline, inherited] |
Definition at line 120 of file bcell3d_algebraic_surface.hpp.
References bcell3d_algebraic_surface< C, V >::m_polynomial.
00120 {return m_polynomial;}
bcell2d_voronoi_impl2d< C, V >::Vector gradient | ( | const Point & | p | ) | [inline] |
Definition at line 266 of file bcell2d_voronoi_impl2d.hpp.
References mmx::diff(), bcell3d_algebraic_surface< C, V >::m_polynomial, bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), and bounding_box< C, V >::ymin().
00266 { 00267 Polynomial 00268 dx= diff(this->m_polynomial,0), 00269 dy= diff(this->m_polynomial,1); 00270 double 00271 u0= (p[0]-this->xmin())/(this->xmax()-this->xmin()), 00272 u1= (p[1]-this->ymin())/(this->ymax()-this->ymin()); 00273 Vector v; 00274 v[0] = dx(u0,u1); 00275 v[1] = dy(u0,u1); 00276 return v; 00277 }
void insert | ( | Face * | p | ) | [inline, inherited] |
Definition at line 116 of file bcell3d_algebraic_surface.hpp.
References bcell3d_algebraic_surface< C, V >::m_faces.
00116 { m_faces<< p; }
void insert | ( | Point * | p | ) | [inline, inherited] |
Definition at line 115 of file bcell3d_algebraic_surface.hpp.
References bcell3d_algebraic_surface< C, V >::m_points.
00115 { m_points<< p; }
bool insert_regular | ( | Topology * | t | ) | [inline, virtual] |
Reimplemented from bcell3d_algebraic_surface< C, V >.
Definition at line 243 of file bcell2d_voronoi_impl2d.hpp.
References topology< C, V >::insert().
00243 { 00244 00245 //std::cout<<"regular voronoi bcell" <<std::endl; 00246 t->insert((BoundingBox*)this,false); 00247 return true; 00248 00249 }
bool insert_singular | ( | Topology * | t | ) | [inline, virtual] |
Reimplemented from bcell3d_algebraic_surface< C, V >.
Definition at line 252 of file bcell2d_voronoi_impl2d.hpp.
bounding_box< C, V > * intersect | ( | const bounding_box< C, V > & | other | ) | [inline, inherited] |
Definition at line 319 of file bounding_box.hpp.
References mmx::shape::mmxmax(), mmx::shape::mmxmin(), SELF, bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
Referenced by bounding_box< double, V >::operator*().
00319 { 00320 SELF * bcell = new SELF ; 00321 bcell->set_xmin(mmxmax(this->xmin(), other.xmin())) ; 00322 bcell->set_xmax(mmxmin(this->xmax(), other.xmax())) ; 00323 bcell->set_ymin(mmxmax(this->ymin(), other.ymin())) ; 00324 bcell->set_ymax(mmxmin(this->ymax(), other.ymax())) ; 00325 bcell->set_zmin(mmxmax(this->zmin(), other.zmin())) ; 00326 bcell->set_zmax(mmxmin(this->zmax(), other.zmax())) ; 00327 return bcell ; 00328 }
void intersected | ( | bounding_box< C, V > * | other | ) | [inline, inherited] |
Definition at line 299 of file bounding_box.hpp.
References mmx::shape::mmxmax(), mmx::shape::mmxmin(), bounding_box< C, V >::set_xmax(), bounding_box< C, V >::set_xmin(), bounding_box< C, V >::set_ymax(), bounding_box< C, V >::set_ymin(), bounding_box< C, V >::set_zmax(), bounding_box< C, V >::set_zmin(), bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
00299 { 00300 set_xmin(mmxmax(this->xmin(), other->xmin())) ; 00301 set_xmax(mmxmin(this->xmax(), other->xmax())) ; 00302 set_ymin(mmxmax(this->ymin(), other->ymin())) ; 00303 set_ymax(mmxmin(this->ymax(), other->ymax())) ; 00304 set_zmin(mmxmax(this->zmin(), other->zmin())) ; 00305 set_zmax(mmxmin(this->zmax(), other->zmax())) ; 00306 }
Definition at line 564 of file bcell3d.hpp.
References solver_implicit< C, V >::back_face, bcell3d< C, V >::boundingBox(), solver_implicit< C, V >::east_face, solver_implicit< C, V >::front_face, bcell3d< C, V >::m_boundary, solver_implicit< C, V >::north_face, solver_implicit< C, V >::south_face, and solver_implicit< C, V >::west_face.
00565 { 00566 Seq<Point *> l; 00567 switch(i) { 00568 case 0://south 00569 foreach(Point* p, this->m_boundary) 00570 if (Solver::south_face.is_valid(*p,this->boundingBox())) 00571 l << p ; 00572 return l; 00573 case 1://east 00574 foreach(Point* p, this->m_boundary) 00575 if (Solver::east_face.is_valid(*p,this->boundingBox())) 00576 l << p ; 00577 return l; 00578 case 2://north 00579 foreach(Point* p, this->m_boundary) 00580 if (Solver::north_face.is_valid(*p,this->boundingBox())) 00581 l << p ; 00582 return l; 00583 case 3://west 00584 foreach(Point* p, this->m_boundary) 00585 if (Solver::west_face.is_valid(*p,this->boundingBox())) 00586 l << p ; 00587 return l; 00588 case 4://front 00589 foreach(Point* p, this->m_boundary) 00590 if (Solver::front_face.is_valid(*p,this->boundingBox())) 00591 l << p ; 00592 return l; 00593 case 5://back 00594 foreach(Point* p, this->m_boundary) 00595 if (Solver::back_face.is_valid(*p,this->boundingBox())) 00596 l << p ; 00597 return l; 00598 default: 00599 return (Seq<Point *>()); 00600 } 00601 }
Definition at line 125 of file bcell2d_voronoi_impl2d.hpp.
References bcell2d_voronoi_impl2d< C, V >::e_intersections, bcell2d_voronoi_impl2d< C, V >::n_intersections, Seq< C, R >::reversed(), bcell2d_voronoi_impl2d< C, V >::s_intersections, and bcell2d_voronoi_impl2d< C, V >::w_intersections.
Referenced by bcell2d_voronoi_impl2d< C, V >::pair(), and bcell2d_voronoi_impl2d< C, V >::starting_point().
00125 { 00126 std::cout<<"NEED intersections \n"; 00127 Seq<Point *> r; 00128 r<< this->s_intersections; 00129 r<< this->e_intersections; 00130 r<< this->n_intersections.reversed(); 00131 r<< this->w_intersections.reversed(); 00132 return ( r ); 00133 }
bool intersects | ( | bounding_box< C, V > * | other, | |
bool | strict = true | |||
) | [inline, inherited] |
Definition at line 239 of file bounding_box.hpp.
References bounding_box< C, V >::is0D(), bounding_box< C, V >::is1D(), bounding_box< C, V >::is2D(), bounding_box< C, V >::is3d(), mmx::shape::mmxmax(), mmx::shape::mmxmin(), bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
00240 { 00241 if(this->is0D()) 00242 return (this->xmin() == other->xmin()) ; 00243 else if(this->is1D()) 00244 if(strict) 00245 return ((mmxmax(this->xmin(), other->xmin()) < mmxmin(this->xmax(), other->xmax()))) ; 00246 else 00247 return ((mmxmax(this->xmin(), other->xmin()) <= mmxmin(this->xmax(), other->xmax()))) ; 00248 else if(this->is2D()) 00249 if(strict) 00250 return ((mmxmax(this->xmin(), other->xmin()) < mmxmin(this->xmax(), other->xmax())) && 00251 (mmxmax(this->ymin(), other->ymin()) < mmxmin(this->ymax(), other->ymax()))) ; 00252 else 00253 return ((mmxmax(this->xmin(), other->xmin()) <= mmxmin(this->xmax(), other->xmax())) && 00254 (mmxmax(this->ymin(), other->ymin()) <= mmxmin(this->ymax(), other->ymax()))) ; 00255 else if(this->is3d()) { 00256 if(strict) 00257 return ((mmxmax(this->xmin(), other->xmin()) < mmxmin(this->xmax(), other->xmax())) && 00258 (mmxmax(this->ymin(), other->ymin()) < mmxmin(this->ymax(), other->ymax())) && 00259 (mmxmax(this->zmin(), other->zmin()) < mmxmin(this->zmax(), other->zmax()))) ; 00260 else 00261 return ((mmxmax(this->xmin(), other->xmin()) <= mmxmin(this->xmax(), other->xmax())) && 00262 (mmxmax(this->ymin(), other->ymin()) <= mmxmin(this->ymax(), other->ymax())) && 00263 (mmxmax(this->zmin(), other->zmin()) <= mmxmin(this->zmax(), other->zmax()))) ; 00264 } 00265 return false ; 00266 }
bool is0D | ( | void | ) | const [inline, inherited] |
Definition at line 80 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::intersects(), and bounding_box< C, V >::unites().
bool is1D | ( | void | ) | const [inline, inherited] |
Definition at line 81 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::intersects(), and bounding_box< C, V >::unites().
bool is2D | ( | void | ) | const [inline, inherited] |
Definition at line 82 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::intersects(), and bounding_box< C, V >::unites().
bool is3d | ( | void | ) | const [inline, inherited] |
Definition at line 83 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::intersects(), and bounding_box< C, V >::unites().
bool is_active | ( | void | ) | const [inline, virtual, inherited] |
Implements bcell3d< C, V >.
Definition at line 202 of file bcell3d_algebraic_surface.hpp.
References mmx::has_sign_variation(), and bcell3d_algebraic_surface< C, V >::m_polynomial.
00202 { 00203 //BoundingBox* bbx=(BoundingBox*)this; 00204 00205 // cout<<(BoundingBox*)this<<endl; 00206 // cout<<m_polynomial.rep()<<endl; 00207 // cout<<has_sign_variation(m_polynomial.begin(),m_polynomial.end())<<endl; 00208 00209 // Seq<Point*> lp; 00210 // Polynomial ft, bk; 00211 // tensor::face(ft,m_polynomial, 2, 1); 00212 00213 // solver_implicit::edge_point(lp, m_polynomial, north_front_edge, bbx); 00214 // solver_implicit::edge_point(lp, m_polynomial, south_front_edge, bbx); 00215 // solver_implicit::edge_point(lp, m_polynomial, west_front_edge , bbx); 00216 // solver_implicit::edge_point(lp, m_polynomial, east_front_edge , bbx); 00217 00218 // tensor::face(bk, m_polynomial, 2, 0); 00219 // solver_implicit::edge_point(lp, bk, north_back_edge, bbx); 00220 // solver_implicit::edge_point(lp, bk, south_back_edge, bbx); 00221 // solver_implicit::edge_point(lp, bk, west_back_edge , bbx); 00222 // solver_implicit::edge_point(lp, bk, east_back_edge , bbx); 00223 00224 // tensor::face(m_polynomial, m_polynomial, 1, 1); 00225 // solver_implicit::edge_point(lp, ft, west_edge, bbx); 00226 // solver_implicit::edge_point(lp, ft, east_edge, bbx); 00227 00228 // tensor::face(bk, m_polynomial, 1, 0); 00229 // solver_implicit::edge_point(lp, bk, west_edge, bbx); 00230 // solver_implicit::edge_point(lp, bk, east_edge, bbx); 00231 00232 // foreach(Point* p, lp) std::cout<<" "<<p->x()<<" "<<p->y()<<" "<<p->z()<<std::endl; 00233 00234 return has_sign_variation(m_polynomial.begin(),m_polynomial.end()); 00235 }
bool is_active | ( | void | ) | [inline] |
Definition at line 236 of file bcell2d_voronoi_impl2d.hpp.
bool is_adjacent | ( | cell3d< C, V > * | c | ) | [inline, virtual, inherited] |
Definition at line 114 of file cell3d.hpp.
References bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
00114 { 00115 if(this->xmax()<c2->xmin() || c2->xmax()<this->xmin()) 00116 return false; 00117 if(this->ymax()<c2->ymin() || c2->ymax()<this->ymin()) 00118 return false; 00119 if(this->zmax()<c2->zmin() || c2->zmax()<this->zmin()) 00120 return false; 00121 if((this->xmax()==c2->xmin() || c2->xmax()==this->xmin())) { 00122 if((this->ymax()==c2->ymin() || c2->ymax()==this->ymin()) || 00123 (this->zmax()==c2->zmin() || c2->zmax()==this->zmin()) ) 00124 return false; 00125 } else if((this->ymax()==c2->ymin() || c2->ymax()==this->ymin()) && 00126 (this->zmax()==c2->zmin() || c2->zmax()==this->zmin()) ) 00127 return false; 00128 return true; 00129 }
bool is_intersected | ( | void | ) | [inline, virtual] |
Reimplemented from bcell3d_algebraic_surface< C, V >.
Definition at line 104 of file bcell2d_voronoi_impl2d.hpp.
References bcell2d_voronoi_impl2d< C, V >::nb_intersect().
00104 {return (this->nb_intersect()>0);};
bool is_regular | ( | void | ) | [inline, virtual] |
Reimplemented from bcell3d_algebraic_surface< C, V >.
Definition at line 230 of file bcell2d_voronoi_impl2d.hpp.
void join0 | ( | bcell3d< C, V > * | b | ) | [inline, inherited] |
Definition at line 158 of file bcell3d.hpp.
References bcell3d< C, V >::e_neighbors.
00159 { 00160 this->e_neighbors << b; 00161 b->w_neighbors << this; 00162 }
void join1 | ( | bcell3d< C, V > * | b | ) | [inline, inherited] |
Definition at line 165 of file bcell3d.hpp.
References bcell3d< C, V >::n_neighbors.
00166 { 00167 b->s_neighbors << this; 00168 this->n_neighbors << b; 00169 }
void join2 | ( | bcell3d< C, V > * | b | ) | [inline, inherited] |
Definition at line 172 of file bcell3d.hpp.
References bcell3d< C, V >::b_neighbors.
00173 { 00174 b->f_neighbors << this; 00175 this->b_neighbors << b; 00176 }
double lower | ( | ) | [inline] |
Definition at line 149 of file bcell2d_voronoi_impl2d.hpp.
References bcell3d_algebraic_surface< C, V >::m_polynomial.
00150 { 00151 return double(*std::min_element( this->m_polynomial.begin(), 00152 this->m_polynomial.end() ) ); 00153 }
int mc_index | ( | void | ) | const [inline, inherited] |
Definition at line 483 of file bcell3d_algebraic_surface.hpp.
References bcell3d_algebraic_surface< C, V >::vertex_eval().
00483 { 00484 00485 double isolevel = 0; 00486 int CubeIndex=0; 00487 00488 if (vertex_eval(0,1,0) <= isolevel) CubeIndex |= 1; 00489 if (vertex_eval(1,1,0) <= isolevel) CubeIndex |= 2; 00490 if (vertex_eval(1,0,0) <= isolevel) CubeIndex |= 4; 00491 if (vertex_eval(0,0,0) <= isolevel) CubeIndex |= 8; 00492 if (vertex_eval(0,1,1) <= isolevel) CubeIndex |= 16; 00493 if (vertex_eval(1,1,1) <= isolevel) CubeIndex |= 32; 00494 if (vertex_eval(1,0,1) <= isolevel) CubeIndex |= 64; 00495 if (vertex_eval(0,0,1) <= isolevel) CubeIndex |= 128; 00496 00497 return CubeIndex; 00498 }
unsigned nb_intersect | ( | void | ) | const [inline] |
Definition at line 135 of file bcell2d_voronoi_impl2d.hpp.
References bcell2d_voronoi_impl2d< C, V >::e_intersections, bcell2d_voronoi_impl2d< C, V >::n_intersections, bcell2d_voronoi_impl2d< C, V >::s_intersections, Seq< C, R >::size(), and bcell2d_voronoi_impl2d< C, V >::w_intersections.
Referenced by bcell2d_voronoi_impl2d< C, V >::is_intersected().
00135 { 00136 return (this->n_intersections.size()+ 00137 this->s_intersections.size()+ 00138 this->e_intersections.size()+ 00139 this->w_intersections.size() ); 00140 }
Definition at line 103 of file bcell3d.hpp.
References bcell3d< C, V >::b_neighbors, bcell3d< C, V >::e_neighbors, bcell3d< C, V >::f_neighbors, bcell3d< C, V >::n_neighbors, bcell3d< C, V >::s_neighbors, and bcell3d< C, V >::w_neighbors.
00103 { 00104 Seq<bcell3d *> t; 00105 t<< s_neighbors ; 00106 t<< e_neighbors ; 00107 t<< n_neighbors ; 00108 t<< b_neighbors ; 00109 t<< w_neighbors ; 00110 t<< f_neighbors ; 00111 return t; } ;
double & operator() | ( | unsigned | v, | |
unsigned | s | |||
) | [inline, inherited] |
Definition at line 356 of file bounding_box.hpp.
References bounding_box< C, V >::m_xmax, bounding_box< C, V >::m_xmin, bounding_box< C, V >::m_ymax, bounding_box< C, V >::m_ymin, bounding_box< C, V >::m_zmax, and bounding_box< C, V >::m_zmin.
double operator() | ( | unsigned | v, | |
unsigned | s | |||
) | const [inline, inherited] |
Definition at line 343 of file bounding_box.hpp.
References bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
bounding_box<C,V>* operator* | ( | const bounding_box< C, V > & | other | ) | [inline, inherited] |
Definition at line 103 of file bounding_box.hpp.
00103 { return intersect(other) ; }
bounding_box<C,V>* operator+ | ( | const bounding_box< C, V > & | other | ) | [inline, inherited] |
Definition at line 104 of file bounding_box.hpp.
00104 { return unite(other) ; }
bcell2d_voronoi_impl2d< C, V >::Point * pair | ( | typename bcell2d_voronoi_impl2d< C, V >::Point * | p, | |
int & | sgn | |||
) | [inline, virtual] |
Definition at line 335 of file bcell2d_voronoi_impl2d.hpp.
References bcell2d_voronoi_impl2d< C, V >::intersections(), and Seq< C, R >::size().
00335 { 00336 // Pair: returns a neighboring point on the component (p,sgn) 00337 // The candidates are the 2 neighbor intersections of p in *this 00338 00339 Seq<Point*> all; 00340 int a; 00341 all= this->intersections(); 00342 a = all.size(); 00343 if (a==2)// regular bcell with a single branch 00344 { return (all[0]==p ? all[1]: all[0]); } 00345 00346 std::cout<<"...pair Trouble"<< this<<std::endl; 00347 return (all[0]); 00348 }
void polygonise | ( | Topology3d * | t | ) | [inline, virtual, inherited] |
Implements bcell3d< C, V >.
Definition at line 364 of file bcell3d_algebraic_surface.hpp.
00364 { 00365 marching_cube::polygonise(*t, *this); 00366 }
typedef REF_OF | ( | V | ) | [inherited] |
void set_xmax | ( | double | x | ) | [inline, inherited] |
Definition at line 74 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::intersected(), and bounding_box< C, V >::united().
00074 { this->m_xmax = x ; }
void set_xmin | ( | double | x | ) | [inline, inherited] |
Definition at line 73 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::intersected(), and bounding_box< C, V >::united().
00073 { this->m_xmin = x ; }
void set_ymax | ( | double | y | ) | [inline, inherited] |
Definition at line 76 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::intersected(), and bounding_box< C, V >::united().
00076 { this->m_ymax = y ; }
void set_ymin | ( | double | y | ) | [inline, inherited] |
Definition at line 75 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::intersected(), and bounding_box< C, V >::united().
00075 { this->m_ymin = y ; }
void set_zmax | ( | double | z | ) | [inline, inherited] |
Definition at line 78 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::intersected(), voronoi2dimpl< C, V >::run(), mesher2d< C, V >::set_input_bbox(), and bounding_box< C, V >::united().
00078 { this->m_zmax = z ; }
void set_zmin | ( | double | z | ) | [inline, inherited] |
Definition at line 77 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::intersected(), voronoi2dimpl< C, V >::run(), mesher2d< C, V >::set_input_bbox(), and bounding_box< C, V >::united().
00077 { this->m_zmin = z ; }
double size | ( | void | ) | [inline, inherited] |
Definition at line 199 of file bounding_box.hpp.
References bounding_box< C, V >::m_xmax, bounding_box< C, V >::m_xmin, bounding_box< C, V >::m_ymax, bounding_box< C, V >::m_ymin, bounding_box< C, V >::m_zmax, bounding_box< C, V >::m_zmin, and mmx::max().
Referenced by voronoi2dimpl< C, V >::run(), voronoi2d< C, V >::run(), mesher3d_shape< C, V >::run(), mesher3d_algebraic_curve< C, V >::run(), and mesher2d< C, V >::run().
void split | ( | CELL *& | left, | |
CELL *& | right, | |||
int | v, | |||
double | s | |||
) | [inline, inherited] |
Definition at line 310 of file bcell3d_algebraic_surface.hpp.
References bcell3d< C, V >::connect0(), bcell3d< C, V >::connect1(), bcell3d< C, V >::connect2(), bcell3d_algebraic_surface< C, V >::m_polynomial, bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
Referenced by bcell3d_algebraic_surface< C, V >::subdivide().
00310 { 00311 00312 // cout<<"Split begin"<<endl; 00313 if(v==0) { 00314 left = new CELL(m_polynomial, BoundingBox(this->xmin(),c, this->ymin(), this->ymax(), this->zmin(), this->zmax())); 00315 right= new CELL(m_polynomial, BoundingBox(c,this->xmax(), this->ymin(), this->ymax(), this->zmin(), this->zmax())); 00316 /* Update neighbors */ 00317 this->connect0(left, right); 00318 left->join0(right); 00319 } else if (v==1) { 00320 left = new CELL(m_polynomial, BoundingBox(this->xmin(),this->xmax(), this->ymin(), c, this->zmin(), this->zmax())); 00321 right= new CELL(m_polynomial, BoundingBox(this->xmin(),this->xmax(), c, this->ymax(), this->zmin(), this->zmax())); 00322 /* Update neighbors */ 00323 this->connect1(left, right); 00324 left->join1(right); 00325 } else {//v==2 00326 left = new CELL(m_polynomial, BoundingBox(this->xmin(),this->xmax(),this->ymin(),this->ymax(), this->zmin(), c)); 00327 right= new CELL(m_polynomial, BoundingBox(this->xmin(),this->xmax(),this->ymin(),this->ymax(), c, this->zmax())); 00328 /* Update neighbors */ 00329 this->connect2(left, right); 00330 left->join2(right); 00331 } 00332 //bcell3d_split(left,right,this,v,c); 00333 // cout<<"Subdivide end "<<*left<<" "<<*right<<endl; 00334 tensor::split(left->m_polynomial, right->m_polynomial, v); 00335 //this->disconnect(); 00336 }
void split_position | ( | int & | v, | |
double & | s | |||
) | [inline, virtual, inherited] |
Reimplemented from cell3d< C, V >.
Reimplemented in bcell3d_list< C, V >.
Definition at line 134 of file bcell3d.hpp.
References bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
Referenced by bcell3d_algebraic_curve< C, V >::subdivide().
00134 { 00135 double sx = (this->xmax()-this->xmin()); 00136 double sy = (this->ymax()-this->ymin()); 00137 double sz = (this->zmax()-this->zmin()); 00138 00139 if(sx<sy) 00140 if(sy<sz) { 00141 v=2; 00142 s=(this->zmax()+this->zmin())/2; 00143 } else { 00144 v=1; 00145 s=(this->ymax()+this->ymin())/2; 00146 } 00147 else 00148 if(sx<sz) { 00149 v=2; 00150 s=(this->zmax()+this->zmin())/2; 00151 } else { 00152 v=0; 00153 s=(this->xmax()+this->xmin())/2; 00154 } 00155 }
bcell2d_voronoi_impl2d< C, V >::Point * starting_point | ( | int | sgn | ) | [inline, virtual] |
Definition at line 281 of file bcell2d_voronoi_impl2d.hpp.
References assert, bcell2d_voronoi_impl2d< C, V >::e_intersections, bcell2d_voronoi_impl2d< C, V >::intersections(), bcell3d_algebraic_surface< C, V >::m_polynomial, bcell2d_voronoi_impl2d< C, V >::s_intersections, Seq< C, R >::size(), and bcell2d_voronoi_impl2d< C, V >::w_intersections.
00281 {// 00282 00283 //std::cout<<"startingPoint.site2d"<<std::endl; 00284 00285 Seq<Point*> all; 00286 unsigned a; 00287 all = this->intersections(); 00288 a = all.size(); 00289 00290 //std::cout<<this<<" , "<<a<<std::endl; 00291 //foreach(Point*p,all) 00292 // std::cout<<p->x()<<" "<<p->y()<<" "<<p->z()<<std::endl; 00293 00294 assert(a==2); 00295 00296 int ev(0); 00297 int u ;//position of p 00298 unsigned 00299 s=this->s_intersections.size() ,// ~0 00300 e=this->e_intersections.size() ,// ~1 00301 //n=this->n_intersections.size() ,// ~2 00302 w=this->w_intersections.size() ;// ~3 00303 00304 u= ( 0<s ? 0 : 00305 ( 0<s+e ? 1 : 00306 ( 0<a-w ? 2 : 00307 3 ))); 00308 00309 int * sz = this->m_polynomial.rep().szs(); 00310 int * st = this->m_polynomial.rep().str(); 00311 00312 switch (u){ 00313 case 0: 00314 ev= (this->m_polynomial[0] >0 ? 1:-1); 00315 break; 00316 case 1: 00317 ev= (this->m_polynomial[(sz[0]-1)*st[0]] >0 ? 1:-1); 00318 break; 00319 case 2: 00320 ev= (this->m_polynomial[sz[0]*sz[1]-1]>0 ? 1:-1); 00321 break; 00322 case 3: 00323 ev= (this->m_polynomial[(sz[1]-1)*st[1]] >0 ? 1:-1); 00324 break; 00325 } 00326 00327 if (ev*sgn>0) 00328 return all[0]; 00329 else 00330 return all[1]; 00331 }
virtual void subdivide | ( | cell3d< C, V > *& | left, | |
cell3d< C, V > *& | right, | |||
int | v, | |||
double | s | |||
) | [pure virtual, inherited] |
Implemented in bcell3d_list< C, V >.
Reimplemented in bcell3d_algebraic_curve< C, V >.
Definition at line 81 of file cell3d.hpp.
References cell3d< C, V >::split_position().
Referenced by mesher3d_shape< C, V >::subdivide().
00081 { 00082 int v; double s; 00083 this->split_position(v,s); 00084 this->subdivide(Left,Right,v,s); 00085 return v; 00086 }
void subdivide | ( | CellBase *& | left, | |
CellBase *& | right, | |||
int | v, | |||
double | s | |||
) | [inline, virtual, inherited] |
Definition at line 340 of file bcell3d_algebraic_surface.hpp.
References mmx::ssi::left(), mmx::ssi::right(), SELF, and bcell3d_algebraic_surface< C, V >::split().
Definition at line 259 of file bcell2d_voronoi_impl2d.hpp.
bool topology_regular | ( | Topology * | t | ) | [inline, virtual, inherited] |
Implements bcell3d< C, V >.
Definition at line 374 of file bcell3d_algebraic_surface.hpp.
References bcell3d< C, V >::b_neighbors, bcell3d< C, V >::e_neighbors, bcell3d< C, V >::f_neighbors, tpl3d< C, V >::insert(), bcell3d_algebraic_surface< C, V >::m_faces, bcell3d_algebraic_surface< C, V >::m_points, bcell3d< C, V >::n_neighbors, bcell3d< C, V >::s_neighbors, Seq< C, R >::size(), bcell3d< C, V >::w_neighbors, bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
00374 { 00375 00376 Topology3d* tpl3d= dynamic_cast<Topology3d*>(t); 00377 00378 if(this->w_neighbors.size()>1) 00379 resolve_conflict(this->w_neighbors, this->xmin(),0 ); 00380 00381 if(this->e_neighbors.size()>1) 00382 resolve_conflict(this->e_neighbors, this->xmax(),0 ); 00383 00384 // foreach(Cell3d* cl, this->n_neighbors) 00385 // if(dynamic_cast<SELF*>(cl)->m_faces.size()>0) 00386 // insert_bbx(tpl3d,cl,1,0); 00387 00388 if(this->n_neighbors.size()>1) 00389 resolve_conflict(this->n_neighbors, this->ymax(),1 ); 00390 00391 if(this->s_neighbors.size()>1) 00392 resolve_conflict(this->s_neighbors, this->ymin(),1 ); 00393 00394 if(this->f_neighbors.size()>1) 00395 resolve_conflict(this->f_neighbors, this->zmax(),2 ); 00396 00397 if(this->b_neighbors.size()>1) 00398 resolve_conflict(this->b_neighbors, this->zmin(),2 ); 00399 00400 //output topology 00401 foreach(Point* p, this->m_points) tpl3d->insert(p); 00402 foreach(Face* f, this->m_faces) 00403 { 00404 tpl3d->insert(f); 00405 //if (f->size()>3) insert_bbx(tpl3d, (BoundingBox*)this); 00406 } 00407 00408 return true; 00409 }
bounding_box< C, V > * unite | ( | bounding_box< C, V > * | other | ) | [inline, inherited] |
Definition at line 331 of file bounding_box.hpp.
References mmx::shape::mmxmax(), mmx::shape::mmxmin(), SELF, bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
Referenced by bounding_box< double, V >::operator+().
00331 { 00332 SELF * bcell = new SELF ; 00333 bcell->set_xmin(mmxmin(this->xmin(), other->xmin())) ; 00334 bcell->set_xmax(mmxmax(this->xmax(), other->xmax())) ; 00335 bcell->set_ymin(mmxmin(this->ymin(), other->ymin())) ; 00336 bcell->set_ymax(mmxmax(this->ymax(), other->ymax())) ; 00337 bcell->set_zmin(mmxmin(this->zmin(), other->zmin())) ; 00338 bcell->set_zmax(mmxmax(this->zmax(), other->zmax())) ; 00339 return bcell ; 00340 }
void united | ( | bounding_box< C, V > * | other | ) | [inline, inherited] |
Definition at line 309 of file bounding_box.hpp.
References mmx::shape::mmxmax(), mmx::shape::mmxmin(), bounding_box< C, V >::set_xmax(), bounding_box< C, V >::set_xmin(), bounding_box< C, V >::set_ymax(), bounding_box< C, V >::set_ymin(), bounding_box< C, V >::set_zmax(), bounding_box< C, V >::set_zmin(), bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
00309 { 00310 set_xmin(mmxmin(this->xmin(), other->xmin())) ; 00311 set_xmax(mmxmax(this->xmax(), other->xmax())) ; 00312 set_ymin(mmxmin(this->ymin(), other->ymin())) ; 00313 set_ymax(mmxmax(this->ymax(), other->ymax())) ; 00314 set_zmin(mmxmin(this->zmin(), other->zmin())) ; 00315 set_zmax(mmxmax(this->zmax(), other->zmax())) ; 00316 }
bool unites | ( | bounding_box< C, V > * | other, | |
bool | strict = true | |||
) | [inline, inherited] |
Definition at line 269 of file bounding_box.hpp.
References bounding_box< C, V >::is0D(), bounding_box< C, V >::is1D(), bounding_box< C, V >::is2D(), bounding_box< C, V >::is3d(), mmx::shape::mmxmax(), mmx::shape::mmxmin(), bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), bounding_box< C, V >::ymin(), bounding_box< C, V >::zmax(), and bounding_box< C, V >::zmin().
00270 { 00271 if(this->is0D()) 00272 return (this->xmin() == other->xmin()) ; 00273 else if(this->is1D()) { 00274 if(strict) 00275 return ((mmxmin(this->xmin(), other->xmin()) < mmxmax(this->xmax(), other->xmax()))) ; 00276 else 00277 return ((mmxmin(this->xmin(), other->xmin()) <= mmxmax(this->xmax(), other->xmax()))) ; 00278 } else if(this->is2D()) { 00279 if(strict) 00280 return ((mmxmin(this->xmin(), other->xmin()) < mmxmax(this->xmax(), other->xmax())) && 00281 (mmxmin(this->ymin(), other->ymin()) < mmxmax(this->ymax(), other->ymax()))) ; 00282 else 00283 return ((mmxmin(this->xmin(), other->xmin()) <= mmxmax(this->xmax(), other->xmax())) && 00284 (mmxmin(this->ymin(), other->ymin()) <= mmxmax(this->ymax(), other->ymax()))) ; 00285 } else if(this->is3d()) { 00286 if(strict) 00287 return ((mmxmin(this->xmin(), other->xmin()) < mmxmax(this->xmax(), other->xmax())) && 00288 (mmxmin(this->ymin(), other->ymin()) < mmxmax(this->ymax(), other->ymax())) && 00289 (mmxmin(this->zmin(), other->zmin()) < mmxmax(this->zmax(), other->zmax()))) ; 00290 else 00291 return ((mmxmin(this->xmin(), other->xmin()) <= mmxmax(this->xmax(), other->xmax())) && 00292 (mmxmin(this->ymin(), other->ymin()) <= mmxmax(this->ymax(), other->ymax())) && 00293 (mmxmin(this->zmin(), other->zmin()) <= mmxmax(this->zmax(), other->zmax()))) ; 00294 } 00295 return false ; 00296 }
double upper | ( | ) | [inline] |
Definition at line 156 of file bcell2d_voronoi_impl2d.hpp.
References bcell3d_algebraic_surface< C, V >::m_polynomial.
00157 { 00158 return double(*std::max_element( this->m_polynomial.begin(), 00159 this->m_polynomial.end() ) ); 00160 }
double vertex_eval | ( | unsigned | sx, | |
unsigned | sy, | |||
unsigned | sz | |||
) | const [inline, inherited] |
Definition at line 472 of file bcell3d_algebraic_surface.hpp.
References bcell3d_algebraic_surface< C, V >::m_polynomial.
Referenced by bcell3d_algebraic_surface< C, V >::mc_index().
00472 { 00473 00474 int s=0; 00475 s+= sx*(m_polynomial.rep().env.sz(0)-1)*m_polynomial.rep().env.st(0); 00476 s+= sy*(m_polynomial.rep().env.sz(1)-1)*m_polynomial.rep().env.st(1); 00477 s+= sz*(m_polynomial.rep().env.sz(2)-1)*m_polynomial.rep().env.st(2); 00478 return m_polynomial[s]; 00479 }
double xmax | ( | void | ) | const [inline, inherited] |
Definition at line 63 of file bounding_box.hpp.
00063 { return m_xmax ; }
double xmax | ( | void | ) | [inline, inherited] |
Definition at line 56 of file bounding_box.hpp.
Referenced by bcell2d_algebraic_curve< C, V >::bcell2d_algebraic_curve(), bcell3d_algebraic_curve< C, V >::bcell3d_algebraic_curve(), bcell3d_algebraic_surface< C, V >::bcell3d_algebraic_surface(), cell2d_algebraic_curve< C, V >::cell2d_algebraic_curve(), cell3d_algebraic_surface< C, V >::cell3d_algebraic_surface(), cell3d< C, V >::center(), cell2d< C, REF_OF(V) >::center(), bcell3d_algebraic_surface< C, V >::center(), bcell3d< C, V >::center(), bcell2d_voronoi_impl_diagram< C, V >::compute_boundary(), bcell2d_voronoi_diagram< C, V >::compute_boundary(), EdgeListBuilder< node_t >::computeCommonFace(), solver_implicit< C, V >::extremal(), cell2d_algebraic_curve< C, V >::gradient(), bcell2d_voronoi_site2d< C, V >::gradient(), bcell2d_voronoi_impl2d< C, V >::gradient(), bcell2d_algebraic_curve< C, V >::gradient(), topology< C, V >::insert(), mesher3d_algebraic_curve< C, V >::insert(), bcell2d_voronoi_impl_diagram< C, V >::insert_regular(), bcell2d_voronoi_diagram< C, V >::insert_regular(), bounding_box< C, V >::intersect(), bounding_box< C, V >::intersected(), solver_implicit< C, V >::intersection(), bounding_box< C, V >::intersects(), cell3d< C, V >::is_adjacent(), cell2d< C, V >::is_adjacent(), bounding_box< C, V >::operator()(), cell3d_algebraic_surface< C, V >::point(), solver_implicit< C, V >::singular(), cell3d_algebraic_surface< C, V >::split(), bcell3d_algebraic_surface< C, V >::split(), cell3d< C, V >::split_position(), cell2d_algebraic_curve< C, V >::split_position(), bcell3d_list< C, V >::split_position(), bcell3d< C, V >::split_position(), bcell2d_voronoi_impl_diagram< C, V >::split_position(), bcell2d_voronoi_diagram< C, V >::split_position(), bcell2d_list< C, V >::split_position(), bcell2d_intersection< C, V >::split_position(), bcell2d< C, V >::split_position(), bcell3d_algebraic_curve< C, V >::subdivide(), bcell2d_voronoi_impl_diagram< C, V >::subdivide(), bcell2d_voronoi_diagram< C, V >::subdivide(), bcell2d_list< C, V >::subdivide(), bcell2d_intersection< C, V >::subdivide(), bcell3d_algebraic_surface< C, V >::topology_regular(), bounding_box< C, V >::unite(), bounding_box< C, V >::united(), bounding_box< C, V >::unites(), voronoi_site2d< C, V >::upper_bound(), cell3d_algebraic_surface< C, V >::value(), and EdgeListBuilder< node_t >::verifyFaceList().
00056 { return m_xmax ; }
double xmin | ( | void | ) | const [inline, inherited] |
Definition at line 62 of file bounding_box.hpp.
00062 { return m_xmin ; }
double xmin | ( | void | ) | [inline, inherited] |
Definition at line 55 of file bounding_box.hpp.
Referenced by bcell2d_algebraic_curve< C, V >::bcell2d_algebraic_curve(), bcell3d_algebraic_curve< C, V >::bcell3d_algebraic_curve(), bcell3d_algebraic_surface< C, V >::bcell3d_algebraic_surface(), cell2d_algebraic_curve< C, V >::cell2d_algebraic_curve(), cell3d_algebraic_surface< C, V >::cell3d_algebraic_surface(), cell3d< C, V >::center(), cell2d< C, REF_OF(V) >::center(), bcell3d_algebraic_surface< C, V >::center(), bcell3d< C, V >::center(), bcell2d_voronoi_impl_diagram< C, V >::compute_boundary(), bcell2d_voronoi_diagram< C, V >::compute_boundary(), EdgeListBuilder< node_t >::computeCommonFace(), solver_implicit< C, V >::extremal(), cell2d_algebraic_curve< C, V >::gradient(), bcell2d_voronoi_site2d< C, V >::gradient(), bcell2d_voronoi_impl2d< C, V >::gradient(), bcell2d_algebraic_curve< C, V >::gradient(), topology< C, V >::insert(), mesher3d_algebraic_curve< C, V >::insert(), bcell2d_voronoi_impl_diagram< C, V >::insert_regular(), bcell2d_voronoi_diagram< C, V >::insert_regular(), bounding_box< C, V >::intersect(), bounding_box< C, V >::intersected(), solver_implicit< C, V >::intersection(), bounding_box< C, V >::intersects(), cell3d< C, V >::is_adjacent(), cell2d< C, V >::is_adjacent(), bounding_box< C, V >::operator()(), mmx::shape::operator<<(), cell3d_algebraic_surface< C, V >::point(), solver_implicit< C, V >::singular(), cell3d_algebraic_surface< C, V >::split(), bcell3d_algebraic_surface< C, V >::split(), cell3d< C, V >::split_position(), cell2d_algebraic_curve< C, V >::split_position(), bcell3d_list< C, V >::split_position(), bcell3d< C, V >::split_position(), bcell2d_voronoi_impl_diagram< C, V >::split_position(), bcell2d_voronoi_diagram< C, V >::split_position(), bcell2d_list< C, V >::split_position(), bcell2d_intersection< C, V >::split_position(), bcell2d< C, V >::split_position(), bcell3d_algebraic_curve< C, V >::subdivide(), bcell2d_voronoi_impl_diagram< C, V >::subdivide(), bcell2d_voronoi_diagram< C, V >::subdivide(), bcell2d_list< C, V >::subdivide(), bcell2d_intersection< C, V >::subdivide(), bcell3d_algebraic_surface< C, V >::topology_regular(), bounding_box< C, V >::unite(), bounding_box< C, V >::united(), bounding_box< C, V >::unites(), voronoi_site2d< C, V >::upper_bound(), cell3d_algebraic_surface< C, V >::value(), and EdgeListBuilder< node_t >::verifyFaceList().
00055 { return m_xmin ; }
double xsize | ( | void | ) | const [inline, inherited] |
Definition at line 69 of file bounding_box.hpp.
double ymax | ( | void | ) | const [inline, inherited] |
Definition at line 65 of file bounding_box.hpp.
00065 { return m_ymax ; }
double ymax | ( | void | ) | [inline, inherited] |
Definition at line 58 of file bounding_box.hpp.
Referenced by bcell2d_algebraic_curve< C, V >::bcell2d_algebraic_curve(), bcell3d_algebraic_curve< C, V >::bcell3d_algebraic_curve(), bcell3d_algebraic_surface< C, V >::bcell3d_algebraic_surface(), cell2d_algebraic_curve< C, V >::cell2d_algebraic_curve(), cell3d_algebraic_surface< C, V >::cell3d_algebraic_surface(), cell3d< C, V >::center(), cell2d< C, REF_OF(V) >::center(), bcell3d_algebraic_surface< C, V >::center(), bcell3d< C, V >::center(), bcell2d_voronoi_impl_diagram< C, V >::compute_boundary(), bcell2d_voronoi_diagram< C, V >::compute_boundary(), EdgeListBuilder< node_t >::computeCommonFace(), solver_implicit< C, V >::extremal(), cell2d_algebraic_curve< C, V >::gradient(), bcell2d_voronoi_site2d< C, V >::gradient(), bcell2d_voronoi_impl2d< C, V >::gradient(), bcell2d_algebraic_curve< C, V >::gradient(), topology< C, V >::insert(), mesher3d_algebraic_curve< C, V >::insert(), bcell2d_voronoi_impl_diagram< C, V >::insert_regular(), bcell2d_voronoi_diagram< C, V >::insert_regular(), bounding_box< C, V >::intersect(), bounding_box< C, V >::intersected(), solver_implicit< C, V >::intersection(), bounding_box< C, V >::intersects(), cell3d< C, V >::is_adjacent(), cell2d< C, V >::is_adjacent(), bounding_box< C, V >::operator()(), cell3d_algebraic_surface< C, V >::point(), solver_implicit< C, V >::singular(), cell3d_algebraic_surface< C, V >::split(), bcell3d_algebraic_surface< C, V >::split(), cell3d< C, V >::split_position(), cell2d_algebraic_curve< C, V >::split_position(), bcell3d_list< C, V >::split_position(), bcell3d< C, V >::split_position(), bcell2d_voronoi_impl_diagram< C, V >::split_position(), bcell2d_voronoi_diagram< C, V >::split_position(), bcell2d_list< C, V >::split_position(), bcell2d_intersection< C, V >::split_position(), bcell2d< C, V >::split_position(), bcell3d_algebraic_curve< C, V >::subdivide(), bcell2d_voronoi_impl_diagram< C, V >::subdivide(), bcell2d_voronoi_diagram< C, V >::subdivide(), bcell2d_list< C, V >::subdivide(), bcell2d_intersection< C, V >::subdivide(), bcell3d_algebraic_surface< C, V >::topology_regular(), bounding_box< C, V >::unite(), bounding_box< C, V >::united(), bounding_box< C, V >::unites(), voronoi_site2d< C, V >::upper_bound(), cell3d_algebraic_surface< C, V >::value(), and EdgeListBuilder< node_t >::verifyFaceList().
00058 { return m_ymax ; }
double ymin | ( | void | ) | const [inline, inherited] |
Definition at line 64 of file bounding_box.hpp.
00064 { return m_ymin ; }
double ymin | ( | void | ) | [inline, inherited] |
Definition at line 57 of file bounding_box.hpp.
Referenced by bcell2d_algebraic_curve< C, V >::bcell2d_algebraic_curve(), bcell3d_algebraic_curve< C, V >::bcell3d_algebraic_curve(), bcell3d_algebraic_surface< C, V >::bcell3d_algebraic_surface(), cell2d_algebraic_curve< C, V >::cell2d_algebraic_curve(), cell3d_algebraic_surface< C, V >::cell3d_algebraic_surface(), cell3d< C, V >::center(), cell2d< C, REF_OF(V) >::center(), bcell3d_algebraic_surface< C, V >::center(), bcell3d< C, V >::center(), bcell2d_voronoi_impl_diagram< C, V >::compute_boundary(), bcell2d_voronoi_diagram< C, V >::compute_boundary(), EdgeListBuilder< node_t >::computeCommonFace(), solver_implicit< C, V >::extremal(), cell2d_algebraic_curve< C, V >::gradient(), bcell2d_voronoi_site2d< C, V >::gradient(), bcell2d_voronoi_impl2d< C, V >::gradient(), bcell2d_algebraic_curve< C, V >::gradient(), topology< C, V >::insert(), mesher3d_algebraic_curve< C, V >::insert(), bcell2d_voronoi_impl_diagram< C, V >::insert_regular(), bcell2d_voronoi_diagram< C, V >::insert_regular(), bounding_box< C, V >::intersect(), bounding_box< C, V >::intersected(), solver_implicit< C, V >::intersection(), bounding_box< C, V >::intersects(), cell3d< C, V >::is_adjacent(), cell2d< C, V >::is_adjacent(), bounding_box< C, V >::operator()(), cell3d_algebraic_surface< C, V >::point(), solver_implicit< C, V >::singular(), cell3d_algebraic_surface< C, V >::split(), bcell3d_algebraic_surface< C, V >::split(), cell3d< C, V >::split_position(), cell2d_algebraic_curve< C, V >::split_position(), bcell3d_list< C, V >::split_position(), bcell3d< C, V >::split_position(), bcell2d_voronoi_impl_diagram< C, V >::split_position(), bcell2d_voronoi_diagram< C, V >::split_position(), bcell2d_list< C, V >::split_position(), bcell2d_intersection< C, V >::split_position(), bcell2d< C, V >::split_position(), bcell3d_algebraic_curve< C, V >::subdivide(), bcell2d_voronoi_impl_diagram< C, V >::subdivide(), bcell2d_voronoi_diagram< C, V >::subdivide(), bcell2d_list< C, V >::subdivide(), bcell2d_intersection< C, V >::subdivide(), bcell3d_algebraic_surface< C, V >::topology_regular(), bounding_box< C, V >::unite(), bounding_box< C, V >::united(), bounding_box< C, V >::unites(), voronoi_site2d< C, V >::upper_bound(), cell3d_algebraic_surface< C, V >::value(), and EdgeListBuilder< node_t >::verifyFaceList().
00057 { return m_ymin ; }
double ysize | ( | void | ) | const [inline, inherited] |
Definition at line 70 of file bounding_box.hpp.
double zmax | ( | void | ) | const [inline, inherited] |
Definition at line 67 of file bounding_box.hpp.
00067 { return m_zmax ; }
double zmax | ( | void | ) | [inline, inherited] |
Definition at line 60 of file bounding_box.hpp.
Referenced by bcell2d_voronoi_impl2d< C, V >::bcell2d_voronoi_impl2d(), bcell3d_algebraic_curve< C, V >::bcell3d_algebraic_curve(), bcell3d_algebraic_surface< C, V >::bcell3d_algebraic_surface(), cell3d_algebraic_surface< C, V >::cell3d_algebraic_surface(), cell3d< C, V >::center(), bcell3d_algebraic_surface< C, V >::center(), bcell3d< C, V >::center(), EdgeListBuilder< node_t >::computeCommonFace(), topology< C, V >::insert(), mesher3d_algebraic_curve< C, V >::insert(), bounding_box< C, V >::intersect(), bounding_box< C, V >::intersected(), bounding_box< C, V >::intersects(), cell3d< C, V >::is_adjacent(), bounding_box< C, V >::operator()(), cell3d_algebraic_surface< C, V >::point(), cell3d_algebraic_surface< C, V >::split(), bcell3d_algebraic_surface< C, V >::split(), cell3d< C, V >::split_position(), bcell3d_list< C, V >::split_position(), bcell3d< C, V >::split_position(), bcell3d_algebraic_curve< C, V >::subdivide(), bcell3d_algebraic_surface< C, V >::topology_regular(), bounding_box< C, V >::unite(), bounding_box< C, V >::united(), bounding_box< C, V >::unites(), cell3d_algebraic_surface< C, V >::value(), and EdgeListBuilder< node_t >::verifyFaceList().
00060 { return m_zmax ; }
double zmin | ( | void | ) | const [inline, inherited] |
Definition at line 66 of file bounding_box.hpp.
00066 { return m_zmin ; }
double zmin | ( | void | ) | [inline, inherited] |
Definition at line 59 of file bounding_box.hpp.
Referenced by bcell3d_algebraic_curve< C, V >::bcell3d_algebraic_curve(), bcell3d_algebraic_surface< C, V >::bcell3d_algebraic_surface(), cell3d_algebraic_surface< C, V >::cell3d_algebraic_surface(), cell3d< C, V >::center(), bcell3d_algebraic_surface< C, V >::center(), bcell3d< C, V >::center(), EdgeListBuilder< node_t >::computeCommonFace(), topology< C, V >::insert(), mesher3d_algebraic_curve< C, V >::insert(), bounding_box< C, V >::intersect(), bounding_box< C, V >::intersected(), bounding_box< C, V >::intersects(), cell3d< C, V >::is_adjacent(), bounding_box< C, V >::operator()(), cell3d_algebraic_surface< C, V >::point(), cell3d_algebraic_surface< C, V >::split(), bcell3d_algebraic_surface< C, V >::split(), cell3d< C, V >::split_position(), bcell3d_list< C, V >::split_position(), bcell3d< C, V >::split_position(), bcell3d_algebraic_curve< C, V >::subdivide(), bcell3d_algebraic_surface< C, V >::topology_regular(), bounding_box< C, V >::unite(), bounding_box< C, V >::united(), bounding_box< C, V >::unites(), cell3d_algebraic_surface< C, V >::value(), and EdgeListBuilder< node_t >::verifyFaceList().
00059 { return m_zmin ; }
double zsize | ( | void | ) | const [inline, inherited] |
Definition at line 71 of file bounding_box.hpp.
Seq<bcell3d *> b_neighbors [inherited] |
Definition at line 118 of file bcell3d.hpp.
Referenced by bcell3d< C, V >::connect0(), bcell3d< C, V >::connect1(), bcell3d< C, V >::connect2(), bcell3d< C, V >::disconnect(), bcell3d< C, V >::join2(), bcell3d< C, V >::neighbors(), and bcell3d_algebraic_surface< C, V >::topology_regular().
Definition at line 120 of file bcell2d_voronoi_impl2d.hpp.
Referenced by bcell2d_voronoi_impl2d< C, V >::intersections(), bcell2d_voronoi_impl2d< C, V >::nb_intersect(), and bcell2d_voronoi_impl2d< C, V >::starting_point().
Seq<bcell3d *> e_neighbors [inherited] |
Definition at line 114 of file bcell3d.hpp.
Referenced by bcell3d< C, V >::connect0(), bcell3d< C, V >::connect1(), bcell3d< C, V >::connect2(), bcell3d< C, V >::disconnect(), bcell3d< C, V >::join0(), bcell3d< C, V >::neighbors(), and bcell3d_algebraic_surface< C, V >::topology_regular().
Seq<bcell3d *> f_neighbors [inherited] |
Definition at line 117 of file bcell3d.hpp.
Referenced by bcell3d< C, V >::connect0(), bcell3d< C, V >::connect1(), bcell3d< C, V >::connect2(), bcell3d< C, V >::disconnect(), bcell3d< C, V >::neighbors(), and bcell3d_algebraic_surface< C, V >::topology_regular().
Seq<Point *> m_boundary [inherited] |
Definition at line 95 of file bcell3d.hpp.
Referenced by bcell3d_algebraic_curve< C, V >::bcell3d_algebraic_curve(), bcell3d_algebraic_curve< C, V >::inserted_regular_in(), bcell3d_algebraic_curve< C, V >::inserted_singular_in(), bcell3d< C, V >::intersections(), and bcell3d_algebraic_curve< C, V >::subdivide().
Definition at line 124 of file bcell3d_algebraic_surface.hpp.
C m_center_value [inherited] |
Definition at line 125 of file bcell3d_algebraic_surface.hpp.
Definition at line 129 of file bcell3d_algebraic_surface.hpp.
Referenced by bcell3d_algebraic_surface< C, V >::insert(), and bcell3d_algebraic_surface< C, V >::topology_regular().
Definition at line 100 of file bcell3d.hpp.
int m_idx [inherited] |
Definition at line 126 of file bcell3d_algebraic_surface.hpp.
Referenced by bcell3d_algebraic_surface< C, V >::is_regular().
Definition at line 128 of file bcell3d_algebraic_surface.hpp.
Referenced by bcell3d_algebraic_surface< C, V >::insert(), and bcell3d_algebraic_surface< C, V >::topology_regular().
Polynomial m_polynomial [inherited] |
Definition at line 123 of file bcell3d_algebraic_surface.hpp.
Referenced by bcell3d_algebraic_surface< C, V >::bcell3d_algebraic_surface(), bcell3d_algebraic_surface< C, V >::center_value(), bcell3d_algebraic_surface< C, V >::equation(), bcell2d_voronoi_impl2d< C, V >::equation(), bcell3d_algebraic_surface< C, V >::get_polynomial(), bcell2d_voronoi_impl2d< C, V >::gradient(), bcell3d_algebraic_surface< C, V >::is_active(), bcell3d_algebraic_surface< C, V >::is_regular(), bcell2d_voronoi_impl2d< C, V >::lower(), bcell3d_algebraic_surface< C, V >::split(), bcell2d_voronoi_impl2d< C, V >::starting_point(), bcell2d_voronoi_impl2d< C, V >::upper(), and bcell3d_algebraic_surface< C, V >::vertex_eval().
Seq<Point *> m_singular [inherited] |
Definition at line 96 of file bcell3d.hpp.
Referenced by bcell3d_algebraic_curve< C, V >::is_regular().
int m_type [inherited] |
Definition at line 97 of file bcell3d.hpp.
double m_xmax [protected, inherited] |
Definition at line 107 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::bounding_box(), bounding_box< C, V >::contains(), bounding_box< double, V >::is0D(), bounding_box< double, V >::is1D(), bounding_box< double, V >::is2D(), bounding_box< double, V >::is3d(), bounding_box< C, V >::operator()(), bounding_box< double, V >::set_xmax(), bounding_box< C, V >::size(), bounding_box< double, V >::xmax(), and bounding_box< double, V >::xsize().
double m_xmin [protected, inherited] |
Definition at line 107 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::bounding_box(), bounding_box< C, V >::contains(), bounding_box< double, V >::is0D(), bounding_box< double, V >::is1D(), bounding_box< double, V >::is2D(), bounding_box< double, V >::is3d(), bounding_box< C, V >::operator()(), bounding_box< double, V >::set_xmin(), bounding_box< C, V >::size(), bounding_box< double, V >::xmin(), and bounding_box< double, V >::xsize().
double m_ymax [protected, inherited] |
Definition at line 108 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::bounding_box(), bounding_box< C, V >::contains(), bounding_box< double, V >::is0D(), bounding_box< double, V >::is1D(), bounding_box< double, V >::is2D(), bounding_box< double, V >::is3d(), bounding_box< C, V >::operator()(), bounding_box< double, V >::set_ymax(), bounding_box< C, V >::size(), bounding_box< double, V >::ymax(), and bounding_box< double, V >::ysize().
double m_ymin [protected, inherited] |
Definition at line 108 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::bounding_box(), bounding_box< C, V >::contains(), bounding_box< double, V >::is0D(), bounding_box< double, V >::is1D(), bounding_box< double, V >::is2D(), bounding_box< double, V >::is3d(), bounding_box< C, V >::operator()(), bounding_box< double, V >::set_ymin(), bounding_box< C, V >::size(), bounding_box< double, V >::ymin(), and bounding_box< double, V >::ysize().
double m_zmax [protected, inherited] |
Definition at line 109 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::bounding_box(), bounding_box< C, V >::contains(), bounding_box< double, V >::is0D(), bounding_box< double, V >::is1D(), bounding_box< double, V >::is2D(), bounding_box< double, V >::is3d(), bounding_box< C, V >::operator()(), bounding_box< double, V >::set_zmax(), bounding_box< C, V >::size(), bounding_box< double, V >::zmax(), and bounding_box< double, V >::zsize().
double m_zmin [protected, inherited] |
Definition at line 109 of file bounding_box.hpp.
Referenced by bounding_box< C, V >::bounding_box(), bounding_box< C, V >::contains(), bounding_box< double, V >::is0D(), bounding_box< double, V >::is1D(), bounding_box< double, V >::is2D(), bounding_box< double, V >::is3d(), bounding_box< C, V >::operator()(), bounding_box< double, V >::set_zmin(), bounding_box< C, V >::size(), bounding_box< double, V >::zmin(), and bounding_box< double, V >::zsize().
Definition at line 121 of file bcell2d_voronoi_impl2d.hpp.
Referenced by bcell2d_voronoi_impl2d< C, V >::intersections(), and bcell2d_voronoi_impl2d< C, V >::nb_intersect().
Seq<bcell3d *> n_neighbors [inherited] |
Definition at line 115 of file bcell3d.hpp.
Referenced by bcell3d< C, V >::connect0(), bcell3d< C, V >::connect1(), bcell3d< C, V >::connect2(), bcell3d< C, V >::disconnect(), bcell3d< C, V >::join1(), bcell3d< C, V >::neighbors(), and bcell3d_algebraic_surface< C, V >::topology_regular().
Definition at line 119 of file bcell2d_voronoi_impl2d.hpp.
Referenced by bcell2d_voronoi_impl2d< C, V >::intersections(), bcell2d_voronoi_impl2d< C, V >::nb_intersect(), and bcell2d_voronoi_impl2d< C, V >::starting_point().
Seq<bcell3d *> s_neighbors [inherited] |
Definition at line 111 of file bcell3d.hpp.
Referenced by bcell3d< C, V >::connect0(), bcell3d< C, V >::connect1(), bcell3d< C, V >::connect2(), bcell3d< C, V >::disconnect(), bcell3d< C, V >::neighbors(), and bcell3d_algebraic_surface< C, V >::topology_regular().
Definition at line 122 of file bcell2d_voronoi_impl2d.hpp.
Referenced by bcell2d_voronoi_impl2d< C, V >::intersections(), bcell2d_voronoi_impl2d< C, V >::nb_intersect(), and bcell2d_voronoi_impl2d< C, V >::starting_point().
Seq<bcell3d *> w_neighbors [inherited] |
Definition at line 116 of file bcell3d.hpp.
Referenced by bcell3d< C, V >::connect0(), bcell3d< C, V >::connect1(), bcell3d< C, V >::connect2(), bcell3d< C, V >::disconnect(), bcell3d< C, V >::neighbors(), and bcell3d_algebraic_surface< C, V >::topology_regular().