#include <bcell2d_intersection.hpp>
Definition at line 35 of file bcell2d_intersection.hpp.
typedef bcell<C,V>::BoundingBox BoundingBox |
Reimplemented from bcell2d_list< C, V >.
Definition at line 38 of file bcell2d_intersection.hpp.
Reimplemented from bcell< C, REF_OF(V) >.
Reimplemented in bcell2d_algebraic_curve< C, V >, bcell2d_parametric_curve< C, V >, and bcell2d_voronoi_site2d< C, V >.
Definition at line 53 of file bcell2d.hpp.
Reimplemented in bcell2d_algebraic_curve< C, V >, bcell2d_voronoi_diagram< C, V >, bcell2d_voronoi_impl_diagram< C, V >, and bcell2d_voronoi_site2d< C, V >.
Definition at line 51 of file bcell2d.hpp.
Reimplemented from bcell2d_list< C, V >.
Definition at line 39 of file bcell2d_intersection.hpp.
Reimplemented from bcell2d_list< C, V >.
Definition at line 40 of file bcell2d_intersection.hpp.
bcell2d_intersection | ( | void | ) | [inline] |
Definition at line 79 of file bcell2d_intersection.hpp.
bcell2d_intersection | ( | double | xmin, | |
double | xmax | |||
) |
bcell2d_intersection | ( | double | xmin, | |
double | xmax, | |||
double | ymin, | |||
double | ymax | |||
) | [inline] |
bcell2d_intersection | ( | double | xmin, | |
double | xmax, | |||
double | ymin, | |||
double | ymax, | |||
bool | itr | |||
) | [inline] |
bcell2d_intersection | ( | const BoundingBox & | bx | ) | [inline] |
Definition at line 88 of file bcell2d_intersection.hpp.
~bcell2d_intersection | ( | void | ) | [inline, virtual] |
Definition at line 91 of file bcell2d_intersection.hpp.
References bcell2d_list< C, V >::m_objects.
BoundingBox boundingBox | ( | ) | const [inline, inherited] |
Definition at line 71 of file cell.hpp.
00071 { return (BoundingBox)*this; }
Definition at line 273 of file bcell2d.hpp.
References mmx::shape::check_overlap(), bcell2d< C, V >::e_neighbors, bcell2d< C, V >::n_neighbors, bcell2d< C, V >::s_neighbors, Seq< C, R >::search(), SELF, and bcell2d< C, V >::w_neighbors.
Referenced by bcell2d_voronoi_impl_diagram< C, V >::subdivide(), bcell2d_voronoi_diagram< C, V >::subdivide(), bcell2d_list< C, V >::subdivide(), and bcell2d_intersection< C, V >::subdivide().
00274 { 00275 int i; 00276 bool flag; 00277 00278 //copy horizontally 00279 b->e_neighbors= this->e_neighbors ; 00280 foreach(SELF* cl,b->e_neighbors) { 00281 i= cl->w_neighbors.search(this); 00282 cl->w_neighbors[i]= b; 00283 } 00284 a->w_neighbors= this->w_neighbors ; 00285 foreach(SELF* cl,a->w_neighbors) { 00286 i= cl->e_neighbors.search(this); 00287 cl->e_neighbors[i]= a; 00288 } 00289 00290 //update vertically 00291 foreach(SELF* cl,this->s_neighbors) { 00292 flag=false; 00293 if ( check_overlap(cl,a,0)) 00294 { 00295 //assert( cl->ymax()== a->ymin() ); 00296 a->s_neighbors<< cl; 00297 i= cl->n_neighbors.search(this); 00298 cl->n_neighbors[i]= a; 00299 flag=true; 00300 } 00301 if ( check_overlap(cl,b,0) ) 00302 { 00303 //assert( cl->ymax()== b->ymin() ); 00304 b->s_neighbors<< cl; 00305 if (!flag) 00306 { 00307 i= cl->n_neighbors.search(this); 00308 cl->n_neighbors[i]= b; 00309 } 00310 else 00311 cl->n_neighbors << b; 00312 } 00313 } 00314 foreach(SELF* cl,this->n_neighbors) { 00315 flag=false; 00316 if ( check_overlap(cl,a,0)) 00317 { 00318 a->n_neighbors<< cl; 00319 i= cl->s_neighbors.search(this); 00320 cl->s_neighbors[i]= a; 00321 flag=true; 00322 } 00323 if ( check_overlap(cl,b,0) ) 00324 { 00325 b->n_neighbors<< cl; 00326 if (!flag) 00327 { 00328 i= cl->s_neighbors.search(this); 00329 cl->s_neighbors[i]= b; 00330 } 00331 else 00332 cl->s_neighbors << b; 00333 } 00334 } 00335 }
Definition at line 338 of file bcell2d.hpp.
References mmx::shape::check_overlap(), bcell2d< C, V >::e_neighbors, bcell2d< C, V >::n_neighbors, bcell2d< C, V >::s_neighbors, Seq< C, R >::search(), SELF, and bcell2d< C, V >::w_neighbors.
Referenced by bcell2d_voronoi_impl_diagram< C, V >::subdivide(), bcell2d_voronoi_diagram< C, V >::subdivide(), bcell2d_list< C, V >::subdivide(), and bcell2d_intersection< C, V >::subdivide().
00339 { 00340 int i; 00341 bool flag; 00342 00343 //copy vertically 00344 a->s_neighbors= this->s_neighbors ; 00345 foreach(SELF* cl,a->s_neighbors) { 00346 i= cl->n_neighbors.search(this); 00347 cl->n_neighbors[i]= a; 00348 } 00349 b->n_neighbors= this->n_neighbors ; 00350 foreach(SELF* cl,b->n_neighbors) { 00351 i= cl->s_neighbors.search(this); 00352 cl->s_neighbors[i]= b; 00353 } 00354 00355 //update horizontally 00356 foreach(SELF* cl,this->w_neighbors) { 00357 flag=false; 00358 if ( check_overlap(cl,a,1)) 00359 { 00360 //assert( cl->xmax()== a->xmin() ); 00361 a->w_neighbors<< cl; 00362 i= cl->e_neighbors.search(this); 00363 cl->e_neighbors[i]= a; 00364 flag=true; 00365 } 00366 if ( check_overlap(cl,b,1) ) 00367 { 00368 //assert( cl->xmax()== b->xmin() ); 00369 b->w_neighbors<< cl; 00370 if (!flag) 00371 { 00372 i= cl->e_neighbors.search(this); 00373 cl->e_neighbors[i]= b; 00374 } 00375 else 00376 cl->e_neighbors << b; 00377 } 00378 } 00379 foreach(SELF* cl,this->e_neighbors) { 00380 flag=false; 00381 if ( check_overlap(cl,a,1)) 00382 { 00383 a->e_neighbors<< cl; 00384 i= cl->w_neighbors.search(this); 00385 cl->w_neighbors[i]= a; 00386 flag=true; 00387 } 00388 if ( check_overlap(cl,b,1) ) 00389 { 00390 b->e_neighbors<< cl; 00391 if (!flag) 00392 { 00393 i= cl->w_neighbors.search(this); 00394 cl->w_neighbors[i]= b; 00395 } 00396 else 00397 cl->w_neighbors << b; 00398 } 00399 } 00400 }
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.
int count | ( | void | ) | [inline, inherited] |
Definition at line 85 of file bcell2d_list.hpp.
References bcell2d_list< C, V >::m_objects, and Seq< C, R >::size().
Referenced by bcell2d_intersection< C, V >::is_touching().
00085 { return m_objects.size() ; }
void disconnect | ( | ) | [inline, inherited] |
Definition at line 414 of file bcell2d.hpp.
References Seq< C, R >::clear(), bcell2d< C, V >::e_neighbors, bcell2d< C, V >::n_neighbors, bcell2d< C, V >::s_neighbors, and bcell2d< C, V >::w_neighbors.
Referenced by bcell2d_voronoi_impl_diagram< C, V >::subdivide(), bcell2d_voronoi_diagram< C, V >::subdivide(), bcell2d_list< C, V >::subdivide(), and bcell2d_intersection< C, V >::subdivide().
00415 { 00416 this->e_neighbors.clear(); 00417 this->w_neighbors.clear(); 00418 this->n_neighbors.clear(); 00419 this->s_neighbors.clear(); 00420 }
bool insert_regular | ( | Topology * | s | ) | [inline, virtual] |
Reimplemented from bcell2d_list< C, V >.
Definition at line 124 of file bcell2d_intersection.hpp.
References bcell< C, V >::insert_regular(), topology< C, V >::insert_singular(), bcell2d_list< C, V >::m_objects, bcell2d< C, V >::m_singular, and Seq< C, R >::size().
00124 { 00125 00126 foreach(Cell* m, this->m_objects) m->insert_regular(s); 00127 if (this->m_singular.size() > 0) 00128 foreach(Point* p, this->m_singular) s->insert_singular(p); 00129 00130 return true; 00131 }
bool insert_singular | ( | Topology * | s | ) | [inline, virtual] |
Reimplemented from bcell2d_list< C, V >.
Definition at line 134 of file bcell2d_intersection.hpp.
References bcell< C, V >::insert_singular(), and bcell2d_list< C, V >::m_objects.
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 }
Reimplemented from bcell2d< C, V >.
Definition at line 71 of file bcell2d_list.hpp.
References Cell2dAlgebraicCurve, and bcell2d_list< C, V >::m_objects.
00071 { 00072 Seq<Point*> l; 00073 Cell2dAlgebraicCurve* c; 00074 00075 foreach(Cell*m, this->m_objects) 00076 { 00077 c = dynamic_cast<Cell2dAlgebraicCurve*>(m); 00078 l<< c->intersections(i); 00079 } 00080 return l; 00081 }
Seq< typename mmx::shape::bcell2d< C, V >::Point * > intersections | ( | ) | const [inline, virtual] |
Reimplemented from bcell2d_list< C, V >.
Definition at line 412 of file bcell2d_intersection.hpp.
References Cell2d, bcell2d_list< C, V >::m_objects, Seq< C, R >::reversed(), and Seq< C, R >::sort().
00412 { 00413 Seq<Point *> s,e,n,w,r; 00414 00415 Cell2d* cl; 00416 foreach (Cell* m, this->m_objects) 00417 { 00418 cl = dynamic_cast<Cell2d*>(m); 00419 s<< cl->s_intersections; 00420 e<< cl->e_intersections; 00421 n<< cl->n_intersections; 00422 w<< cl->w_intersections; 00423 } 00424 s.sort(this->coord<0>); 00425 e.sort(this->coord<1>); 00426 n.sort(this->coord<0>); 00427 w.sort(this->coord<1>); 00428 00429 r<<s; 00430 r<<e; 00431 r<<n.reversed(); 00432 r<<w.reversed(); 00433 00434 00435 return ( r ); 00436 }
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 | ) | [inline, virtual] |
Reimplemented from bcell2d_list< C, V >.
Definition at line 210 of file bcell2d_intersection.hpp.
References bcell2d_intersection< C, V >::is_intersected(), bcell2d_intersection< C, V >::is_regular(), and bcell2d_intersection< C, V >::is_touching().
00210 { 00211 00212 //return ( bcell2d_list<C,V>::is_active() ); 00213 00214 if ( !bcell2d_list<C,V>::is_active() ) 00215 return false; 00216 00217 if( this->is_intersected() ) return true; 00218 if( ! this->is_regular() ) return true; 00219 00220 if( this->is_touching() )//is touching the set? 00221 return true; 00222 else 00223 return false; 00224 }
bool is_border | ( | void | ) | const [inline, inherited] |
Definition at line 114 of file bcell2d.hpp.
Referenced by voronoi2dimpl< C, V >::run(), voronoi2d< C, V >::run(), semialgebraic2d< C, V >::run(), mesher2d< C, V >::run(), and arrangement2d< C, V >::run().
00114 { 00115 return ( this->s_neighbors.size()==0 || 00116 this->e_neighbors.size()==0 || 00117 this->n_neighbors.size()==0 || 00118 this->w_neighbors.size()==0 ); 00119 }
bool is_corner | ( | void | ) | const [inline, inherited] |
Definition at line 423 of file bcell2d.hpp.
References bcell2d< C, V >::e_neighbors, bcell2d< C, V >::n_neighbors, bcell2d< C, V >::s_neighbors, Seq< C, R >::size(), and bcell2d< C, V >::w_neighbors.
Referenced by voronoi2dimpl< C, V >::run(), voronoi2d< C, V >::run(), semialgebraic2d< C, V >::run(), and arrangement2d< C, V >::run().
00423 { 00424 00425 if (this->s_neighbors.size()==0 && 00426 this->e_neighbors.size()==0 ) 00427 return true; 00428 else if (this->e_neighbors.size()==0 && 00429 this->n_neighbors.size()==0 ) 00430 return true; 00431 else if (this->n_neighbors.size()==0 && 00432 this->w_neighbors.size()==0 ) 00433 return true; 00434 else if (this->w_neighbors.size()==0 && 00435 this->s_neighbors.size()==0 ) 00436 return true; 00437 00438 return false; 00439 }
bool is_intersected | ( | void | ) | [inline, virtual] |
Reimplemented from bcell2d_list< C, V >.
Definition at line 109 of file bcell2d_intersection.hpp.
References bcell2d_list< C, V >::m_intersected, bcell2d_list< C, V >::m_objects, bcell2d< C, V >::m_singular, and Seq< C, R >::size().
Referenced by bcell2d_intersection< C, V >::is_active(), bcell2d_intersection< C, V >::is_regular(), and bcell2d_intersection< C, V >::pair().
00109 { 00110 00111 if(this->m_objects.size() >1 && !this->m_intersected) { 00112 for(unsigned i=0; i<this->m_objects.size();i++) 00113 for(unsigned j=i+1; j<this->m_objects.size(); j++) 00114 Intersection2dFactory::instance()->compute(this->m_singular, (Shape*)this->m_objects[i], (Shape*)this->m_objects[j], (BoundingBox)*this); 00115 this->m_intersected = true; 00116 } 00117 00118 if (this->m_singular.size() > 0) return true; 00119 return false; 00120 }
bool is_regular | ( | void | ) | [inline, virtual] |
Reimplemented from bcell2d_list< C, V >.
Definition at line 97 of file bcell2d_intersection.hpp.
References bcell2d_intersection< C, V >::is_intersected(), bcell2d_list< C, V >::m_objects, bcell2d< C, V >::m_singular, bcell2d_intersection< C, V >::nb_intersect(), and Seq< C, R >::size().
Referenced by bcell2d_intersection< C, V >::is_active().
00097 { 00098 foreach (Cell* m, this->m_objects) 00099 if(!m-> is_regular()) return false; 00100 00101 if ( is_intersected() ) 00102 return ( (this->m_singular.size()<2) && 00103 (this->nb_intersect()<5) ); 00104 else 00105 return (this->nb_intersect()<3) ; 00106 }
bool is_touching | ( | void | ) | [inline, virtual] |
Reimplemented from bcell2d_list< C, V >.
Definition at line 228 of file bcell2d_intersection.hpp.
References Cell2dAlgebraicCurve, bcell2d_list< C, V >::count(), and bcell2d_list< C, V >::m_objects.
Referenced by bcell2d_intersection< C, V >::is_active().
00228 { 00229 00230 int c0(0),c1(0),c2(0),c3(0), cnt=this->count();//cnt: number of eqs. 00231 00232 foreach (Cell* m, this->m_objects) { 00233 00234 Cell2dAlgebraicCurve* c= dynamic_cast<Cell2dAlgebraicCurve*>(m); 00235 const int * sz = c->m_polynomial.rep().szs(); 00236 const int * st = c->m_polynomial.rep().str(); 00237 00238 if (c->m_polynomial[0] >0) c0++; 00239 if (c->m_polynomial[(sz[0]-1)*st[0]] >0) c1++; 00240 if (c->m_polynomial[sz[0]*sz[1]-1]>0) c2++; 00241 if (c->m_polynomial[(sz[1]-1)*st[1]] >0) c3++; 00242 } 00243 return ( (c0==cnt) || (c1==cnt) || (c2==cnt) || (c3==cnt) ); 00244 }
void join0 | ( | bcell2d< C, V > * | b | ) | [inline, inherited] |
Definition at line 259 of file bcell2d.hpp.
References bcell2d< C, V >::e_neighbors.
00260 { 00261 this->e_neighbors << b; 00262 b->w_neighbors << this; 00263 }
void join1 | ( | bcell2d< C, V > * | b | ) | [inline, inherited] |
Definition at line 266 of file bcell2d.hpp.
References bcell2d< C, V >::n_neighbors.
00267 { 00268 b->s_neighbors << this; 00269 this->n_neighbors << b; 00270 }
unsigned nb_intersect | ( | void | ) | const [inline, virtual] |
Reimplemented from bcell2d_list< C, V >.
Definition at line 248 of file bcell2d_intersection.hpp.
References Cell2d, bcell2d_list< C, V >::m_objects, and sum().
Referenced by bcell2d_intersection< C, V >::is_regular().
Reimplemented from bcell2d_list< C, V >.
Definition at line 383 of file bcell2d_intersection.hpp.
References Cell2d, bcell2d< C, V >::e_neighbors, bcell2d< C, V >::n_neighbors, bcell2d< C, V >::s_neighbors, and bcell2d< C, V >::w_neighbors.
00384 { 00385 00386 foreach( Cell2d *c, this->s_neighbors ) 00387 if ( c->intersections(2).member(p) ) 00388 { 00389 return c; 00390 } 00391 foreach( Cell2d *c, this->e_neighbors ) 00392 if ( c->intersections(3).member(p) ) 00393 { 00394 return c; 00395 } 00396 foreach( Cell2d *c, this->n_neighbors ) 00397 if ( c->intersections(0).member(p) ) 00398 { 00399 return c; 00400 } 00401 foreach( Cell2d *c, this->w_neighbors ) 00402 if ( c->intersections(1).member(p) ) 00403 { 00404 return c; 00405 } 00406 00407 //std::cout<<"Point ("<<p->x()<<","<<p->y()<<") not found on neighbors of "<< this<<"("<<this->neighbors().size() <<")"<<std::endl; 00408 return NULL; 00409 }
Definition at line 154 of file bcell2d.hpp.
Referenced by voronoi2dimpl< C, V >::run(), voronoi2d< C, V >::run(), semialgebraic2d< C, V >::run(), and arrangement2d< C, V >::run().
00154 { 00155 Seq<bcell2d *> r; 00156 r<< this->s_neighbors; 00157 r<< this->e_neighbors; 00158 r<< this->n_neighbors; 00159 r<< this->w_neighbors; 00160 return ( r ); }
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_intersection< C, V >::Point * pair | ( | Point * | p, | |
int & | sgn | |||
) | [inline, virtual] |
Reimplemented from bcell2d_list< C, V >.
Definition at line 262 of file bcell2d_intersection.hpp.
References Cell2d, Cell2dAlgebraicCurve, bcell2d_intersection< C, V >::is_intersected(), bcell2d_list< C, V >::m_objects, Seq< C, R >::reversed(), Seq< C, R >::search(), Seq< C, R >::size(), and Seq< C, R >::sort().
00263 { 00264 if ( this->is_intersected() ) { 00265 // 00266 // std::cout<<"Reached intersection bcell "<<this<<std::endl; 00267 // std::cout<<"p= "<< p->x()<<","<<p->y()<<std::endl; 00268 // foreach (Point*q, this->intersections() ) 00269 // std::cout<<"q= "<< q->x()<<","<<q->y()<<std::endl; 00270 00271 Seq<Point*> l0,l1,l2,l3; 00272 Cell2dAlgebraicCurve* c, *v(NULL); 00273 double ev(0); int i, u(0); 00274 00275 foreach (Cell* m, this->m_objects) 00276 { 00277 c = dynamic_cast<Cell2dAlgebraicCurve*>(m); 00278 int * sz = c->m_polynomial.rep().szs(); 00279 int * st = c->m_polynomial.rep().str(); 00280 00281 l0<< c->s_intersections; 00282 if (c->s_intersections.member(p)) 00283 {u=0; ev= (c->m_polynomial[0] >0 ? 1:-1); v=c;} 00284 l1<< c->e_intersections; 00285 if (c->e_intersections.member(p)) 00286 {u=1; ev= (c->m_polynomial[(sz[0]-1)*st[0]] >0 ? 1:-1); v=c;} 00287 l2<< c->n_intersections; 00288 if (c->n_intersections.member(p)) 00289 {u=2;ev=(c->m_polynomial[sz[0]*sz[1]-1]>0 ? 1:-1); v=c;} 00290 l3<< c->w_intersections; 00291 if (c->w_intersections.member(p)) 00292 {u=3;ev=(c->m_polynomial[(sz[1]-1)*st[1]] >0 ? 1:-1); v=c;} 00293 } 00294 // std::cout<<"IN: u="<<u<<", ev="<<ev<<std::endl; 00295 l0.sort(this->coord<0>); 00296 l1.sort(this->coord<1>); 00297 l2.sort(this->coord<0>); 00298 l3.sort(this->coord<1>); 00299 l0<<l1; l0<<l2.reversed(); l0<<l3.reversed(); 00300 00301 foreach (Point*q, v->intersections(u) ) 00302 { 00303 if (q==p) break; 00304 ev*=-1; 00305 } 00306 00307 00308 i=l0.search(p); 00309 int a=l0.size(); 00310 00311 Point *q; 00312 if (ev*sgn>0) 00313 q=l0[(i!=0 ?i-1:a-1)]; 00314 else 00315 q= l0[(i!=a-1 ?i+1:0)]; 00316 00317 // std::cout<<"res="<<q->x()<<","<<q->y()<<std::endl; 00318 00319 int ev2(444); 00320 foreach (Cell* m, this->m_objects) 00321 { 00322 c = dynamic_cast<Cell2dAlgebraicCurve*>(m); 00323 int * sz = c->m_polynomial.rep().szs(); 00324 int * st = c->m_polynomial.rep().str(); 00325 00326 if (c->s_intersections.member(q)) 00327 {u=0; ev2= (c->m_polynomial[0] >0 ? 1:-1); v=c;} 00328 if (c->e_intersections.member(q)) 00329 {u=1; ev2= (c->m_polynomial[(sz[0]-1)*st[0]] >0 ? 1:-1); v=c;} 00330 if (c->n_intersections.member(q)) 00331 {u=2;ev2=(c->m_polynomial[sz[0]*sz[1]-1]>0 ? 1:-1); v=c;} 00332 if (c->w_intersections.member(q)) 00333 {u=3;ev2=(c->m_polynomial[(sz[1]-1)*st[1]] >0 ? 1:-1); v=c;} 00334 } 00335 foreach (Point*w, v->intersections(u) ) 00336 { 00337 if (q==w) break; 00338 ev2*=-1; 00339 } 00340 00341 // std::cout<<"Entered from branch "<<sgn<<std::endl; 00342 00343 if (ev*sgn>0) 00344 sgn=-ev2; 00345 else 00346 sgn=ev2; 00347 00348 // std::cout<<"exiting to "<<sgn<<std::endl; 00349 // std::cout<<"OUT: u="<<u<<", ev2="<<ev2<<std::endl; 00350 00351 return q; 00352 00353 } else { 00354 00355 Cell2d* c; 00356 foreach (Cell* m, this->m_objects) 00357 { 00358 c = dynamic_cast<Cell2d*>(m); 00359 if ( c->intersections().member(p) ) 00360 return c->pair(p,sgn); 00361 } 00362 } 00363 std::cout<<"... Cell list pair trouble"<<std::endl; 00364 return NULL; 00365 }
void push_back | ( | bcell< C, V > * | cv | ) | [inline, inherited] |
Definition at line 84 of file bcell2d_list.hpp.
References bcell2d_list< C, V >::m_objects, and Seq< C, R >::push_back().
00084 { m_objects.push_back(cv); };
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 ; }
int side | ( | Point * | p | ) | [inline, inherited] |
Definition at line 132 of file bcell2d.hpp.
00132 { 00133 Seq<Point*> all; 00134 int s,i,a; 00135 s = s_intersections.size(); 00136 all = this->intersections(); 00137 a = all.size(); 00138 i = all.search(p); 00139 if (i==-1) return (-1); 00140 else return 00141 ( i<s ? 0 : 00142 ( i<s+(int)e_intersections.size() ? 1 : 00143 ( i<a-(int)w_intersections.size() ? 2 : 00144 3 ))); 00145 }
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_position | ( | int & | v, | |
double & | t | |||
) | [inline, virtual] |
Reimplemented from bcell2d_list< C, V >.
Definition at line 142 of file bcell2d_intersection.hpp.
References bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), bounding_box< C, V >::ymax(), and bounding_box< C, V >::ymin().
bcell2d_intersection< C, V >::Point * starting_point | ( | int | sgn | ) | [inline, virtual] |
Reimplemented from bcell2d_list< C, V >.
Definition at line 368 of file bcell2d_intersection.hpp.
References Cell2d, cell< C, V >::is_active(), and bcell2d_list< C, V >::m_objects.
virtual void subdivide | ( | bcell< C , REF_OF(V) > *& | left, | |
bcell< C , REF_OF(V) > *& | right, | |||
int | v, | |||
double | s | |||
) | [pure virtual, inherited] |
virtual int subdivide | ( | bcell< C , REF_OF(V) > *& | left, | |
bcell< C , REF_OF(V) > *& | right | |||
) | [virtual, inherited] |
Reimplemented from bcell2d_list< C, V >.
Definition at line 155 of file bcell2d_intersection.hpp.
References Cell2dInter, bcell2d< C, V >::connect0(), bcell2d< C, V >::connect1(), bcell2d< C, V >::disconnect(), bcell2d_list< C, V >::m_intersected, bcell2d_list< C, V >::m_objects, bcell2d< C, V >::m_singular, bcell< C, V >::subdivide(), point< C, N, V >::x(), bounding_box< C, V >::xmax(), bounding_box< C, V >::xmin(), point< C, N, V >::y(), bounding_box< C, V >::ymax(), and bounding_box< C, V >::ymin().
00155 { 00156 00157 typedef Cell2dInter Cell_t; 00158 00159 if(v==1) { 00160 left =(Cell*)new Cell_t(this->xmin(), this->xmax(), this->ymin(), c, this->m_intersected) ; 00161 right=(Cell*)new Cell_t(this->xmin(), this->xmax(), c, this->ymax(), this->m_intersected) ; 00162 00163 foreach(Point * p, this->m_singular) { 00164 if(p->y() <= c) 00165 ((Cell_t*) left)->m_singular << p ; 00166 else 00167 ((Cell_t*)right)->m_singular << p ; 00168 } 00169 00170 /* Update neighbors */ 00171 this->connect1( (Cell_t*)left, (Cell_t*)right); 00172 ((Cell_t*)left)->join1((Cell_t*)right); 00173 00174 } else { 00175 left = (Cell*)new Cell_t(this->xmin(), c, this->ymin(), this->ymax(), this->m_intersected) ; 00176 right= (Cell*)new Cell_t(c, this->xmax(), this->ymin(), this->ymax(), this->m_intersected) ; 00177 00178 foreach(Point * p, this->m_singular) { 00179 if(p->x() <= c ) 00180 ((Cell_t*)left)->m_singular << p ; 00181 else 00182 ((Cell_t*)right)->m_singular << p ; 00183 } 00184 00185 /* Update neighbors */ 00186 this->connect0((Cell_t*)left, (Cell_t*)right); 00187 ((Cell_t*)left)->join0((Cell_t*)right); 00188 00189 } 00190 00191 /* disconnect parent */ 00192 this->disconnect( ); 00193 00194 //Note: for a semi-alg. set, we keep all the 00195 //equations in the bcell, even if inactive. 00196 00197 Cell * cv_left, * cv_right; 00198 foreach(Cell* cv, this->m_objects) { 00199 cv->subdivide( cv_left, cv_right); 00200 // if(cv_left->is_active()) 00201 ((Cell_t*)left)->m_objects<<cv_left; 00202 // if(cv_right->is_active()) 00203 ((Cell_t*)right)->m_objects<<cv_right; 00204 } 00205 }
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 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<Point *> e_intersections [inherited] |
Definition at line 123 of file bcell2d.hpp.
Referenced by bcell2d< C, REF_OF(V) >::intersections(), bcell2d< C, REF_OF(V) >::nb_intersect(), bcell2d< C, REF_OF(V) >::neighbor(), and bcell2d< C, REF_OF(V) >::side().
Seq<bcell2d *> e_neighbors [inherited] |
Definition at line 163 of file bcell2d.hpp.
Referenced by bcell2d_voronoi_impl_diagram< C, V >::compute_boundary(), bcell2d_voronoi_diagram< C, V >::compute_boundary(), bcell2d< C, V >::connect0(), bcell2d< C, V >::connect1(), bcell2d< C, V >::disconnect(), bcell2d_voronoi_impl_diagram< C, V >::insert_regular(), bcell2d_voronoi_diagram< C, V >::insert_regular(), bcell2d< C, REF_OF(V) >::is_border(), bcell2d< C, V >::is_corner(), bcell2d< C, V >::join0(), bcell2d_voronoi_impl_diagram< C, V >::neighbor(), bcell2d_voronoi_diagram< C, V >::neighbor(), bcell2d_list< C, V >::neighbor(), bcell2d_intersection< C, V >::neighbor(), bcell2d< C, REF_OF(V) >::neighbor(), bcell2d< C, REF_OF(V) >::neighbors(), voronoi2dimpl< C, V >::run(), voronoi2d< C, V >::run(), semialgebraic2d< C, V >::run(), mesher2d< C, V >::run(), and arrangement2d< C, V >::run().
Definition at line 130 of file bcell2d.hpp.
Referenced by voronoi2dimpl< C, V >::run(), voronoi2d< C, V >::run(), and mesher2d< C, V >::run().
bool m_intersected [protected, inherited] |
Definition at line 91 of file bcell2d_list.hpp.
Referenced by bcell2d_list< C, V >::is_intersected(), bcell2d_intersection< C, V >::is_intersected(), bcell2d_list< C, V >::subdivide(), and bcell2d_intersection< C, V >::subdivide().
Definition at line 88 of file bcell2d_list.hpp.
Referenced by bcell2d_list< C, V >::count(), bcell2d_list< C, V >::insert_regular(), bcell2d_intersection< C, V >::insert_regular(), bcell2d_list< C, V >::insert_singular(), bcell2d_intersection< C, V >::insert_singular(), bcell2d_list< C, V >::intersections(), bcell2d_intersection< C, V >::intersections(), bcell2d_list< C, V >::is_active(), bcell2d_list< C, V >::is_intersected(), bcell2d_intersection< C, V >::is_intersected(), bcell2d_list< C, V >::is_regular(), bcell2d_intersection< C, V >::is_regular(), bcell2d_intersection< C, V >::is_touching(), bcell2d_list< C, V >::nb_intersect(), bcell2d_intersection< C, V >::nb_intersect(), bcell2d_list< C, V >::pair(), bcell2d_intersection< C, V >::pair(), bcell2d_list< C, V >::push_back(), bcell2d_list< C, V >::starting_point(), bcell2d_intersection< C, V >::starting_point(), bcell2d_list< C, V >::subdivide(), bcell2d_intersection< C, V >::subdivide(), bcell2d_intersection< C, V >::~bcell2d_intersection(), and bcell2d_list< C, V >::~bcell2d_list().
Seq<Point *> m_singular [inherited] |
Definition at line 126 of file bcell2d.hpp.
Referenced by bcell2d_list< C, V >::insert_regular(), bcell2d_intersection< C, V >::insert_regular(), bcell2d_voronoi_impl_diagram< C, V >::is_intersected(), bcell2d_voronoi_diagram< C, V >::is_intersected(), bcell2d_list< C, V >::is_intersected(), bcell2d_intersection< C, V >::is_intersected(), bcell2d_list< C, V >::is_regular(), bcell2d_intersection< C, V >::is_regular(), bcell2d_voronoi_impl_diagram< C, V >::subdivide(), bcell2d_voronoi_diagram< C, V >::subdivide(), bcell2d_list< C, V >::subdivide(), and bcell2d_intersection< C, V >::subdivide().
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().
Seq<Point *> n_intersections [inherited] |
Definition at line 124 of file bcell2d.hpp.
Referenced by bcell2d< C, REF_OF(V) >::intersections(), bcell2d< C, REF_OF(V) >::nb_intersect(), and bcell2d< C, REF_OF(V) >::neighbor().
Seq<bcell2d *> n_neighbors [inherited] |
Definition at line 164 of file bcell2d.hpp.
Referenced by bcell2d_voronoi_impl_diagram< C, V >::compute_boundary(), bcell2d_voronoi_diagram< C, V >::compute_boundary(), bcell2d< C, V >::connect0(), bcell2d< C, V >::connect1(), bcell2d< C, V >::disconnect(), bcell2d_voronoi_impl_diagram< C, V >::insert_regular(), bcell2d_voronoi_diagram< C, V >::insert_regular(), bcell2d< C, REF_OF(V) >::is_border(), bcell2d< C, V >::is_corner(), bcell2d< C, V >::join1(), bcell2d_voronoi_impl_diagram< C, V >::neighbor(), bcell2d_voronoi_diagram< C, V >::neighbor(), bcell2d_list< C, V >::neighbor(), bcell2d_intersection< C, V >::neighbor(), bcell2d< C, REF_OF(V) >::neighbor(), bcell2d< C, REF_OF(V) >::neighbors(), voronoi2dimpl< C, V >::run(), voronoi2d< C, V >::run(), semialgebraic2d< C, V >::run(), mesher2d< C, V >::run(), and arrangement2d< C, V >::run().
Seq<Point *> s_intersections [inherited] |
Definition at line 122 of file bcell2d.hpp.
Referenced by bcell2d< C, REF_OF(V) >::intersections(), bcell2d< C, REF_OF(V) >::nb_intersect(), bcell2d< C, REF_OF(V) >::neighbor(), and bcell2d< C, REF_OF(V) >::side().
Seq<bcell2d *> s_neighbors [inherited] |
Definition at line 162 of file bcell2d.hpp.
Referenced by bcell2d_voronoi_impl_diagram< C, V >::compute_boundary(), bcell2d_voronoi_diagram< C, V >::compute_boundary(), bcell2d< C, V >::connect0(), bcell2d< C, V >::connect1(), bcell2d< C, V >::disconnect(), bcell2d_voronoi_impl_diagram< C, V >::insert_regular(), bcell2d_voronoi_diagram< C, V >::insert_regular(), bcell2d< C, REF_OF(V) >::is_border(), bcell2d< C, V >::is_corner(), bcell2d_voronoi_impl_diagram< C, V >::neighbor(), bcell2d_voronoi_diagram< C, V >::neighbor(), bcell2d_list< C, V >::neighbor(), bcell2d_intersection< C, V >::neighbor(), bcell2d< C, REF_OF(V) >::neighbor(), bcell2d< C, REF_OF(V) >::neighbors(), voronoi2dimpl< C, V >::run(), voronoi2d< C, V >::run(), semialgebraic2d< C, V >::run(), mesher2d< C, V >::run(), and arrangement2d< C, V >::run().
Seq<Point *> w_intersections [inherited] |
Definition at line 125 of file bcell2d.hpp.
Referenced by bcell2d< C, REF_OF(V) >::intersections(), bcell2d< C, REF_OF(V) >::nb_intersect(), bcell2d< C, REF_OF(V) >::neighbor(), and bcell2d< C, REF_OF(V) >::side().
Seq<bcell2d *> w_neighbors [inherited] |
Definition at line 165 of file bcell2d.hpp.
Referenced by bcell2d_voronoi_impl_diagram< C, V >::compute_boundary(), bcell2d_voronoi_diagram< C, V >::compute_boundary(), bcell2d< C, V >::connect0(), bcell2d< C, V >::connect1(), bcell2d< C, V >::disconnect(), bcell2d_voronoi_impl_diagram< C, V >::insert_regular(), bcell2d_voronoi_diagram< C, V >::insert_regular(), bcell2d< C, REF_OF(V) >::is_border(), bcell2d< C, V >::is_corner(), bcell2d_voronoi_impl_diagram< C, V >::neighbor(), bcell2d_voronoi_diagram< C, V >::neighbor(), bcell2d_list< C, V >::neighbor(), bcell2d_intersection< C, V >::neighbor(), bcell2d< C, REF_OF(V) >::neighbor(), bcell2d< C, REF_OF(V) >::neighbors(), voronoi2dimpl< C, V >::run(), voronoi2d< C, V >::run(), semialgebraic2d< C, V >::run(), mesher2d< C, V >::run(), and arrangement2d< C, V >::run().