#include <cell3d_algebraic_surface.hpp>
Definition at line 54 of file cell3d_algebraic_surface.hpp.
typedef algebraic_surface<C,V> AlgebraicSurface |
Definition at line 71 of file cell3d_algebraic_surface.hpp.
Definition at line 67 of file cell3d_algebraic_surface.hpp.
typedef bounding_box<C,V> BoundingBox |
Reimplemented from cell3d< C, V >.
Definition at line 69 of file cell3d_algebraic_surface.hpp.
Reimplemented from cell3d< C, V >.
Definition at line 65 of file cell3d_algebraic_surface.hpp.
Reimplemented from cell3d< C, V >.
Definition at line 66 of file cell3d_algebraic_surface.hpp.
typedef Topology::Edge Edge |
Reimplemented from cell3d< C, V >.
Definition at line 62 of file cell3d_algebraic_surface.hpp.
typedef Topology::Face Face |
Definition at line 63 of file cell3d_algebraic_surface.hpp.
typedef use<mesh3d_def,C,V>::Point Point |
Reimplemented from cell3d< C, V >.
Definition at line 61 of file cell3d_algebraic_surface.hpp.
typedef use<cell3d_algebraic_surface_def,C,V>::Polynomial Polynomial |
Definition at line 73 of file cell3d_algebraic_surface.hpp.
typedef solver_implicit<C,V> Solver |
Reimplemented from cell3d< C, V >.
Definition at line 78 of file cell3d_algebraic_surface.hpp.
Reimplemented from cell3d< C, V >.
Definition at line 59 of file cell3d_algebraic_surface.hpp.
typedef tpl3d<C,V> Topology3d |
Reimplemented from cell3d< C, V >.
Definition at line 58 of file cell3d_algebraic_surface.hpp.
cell3d_algebraic_surface | ( | const cell3d_algebraic_surface< C, V > & | s | ) | [inline] |
Definition at line 118 of file cell3d_algebraic_surface.hpp.
00119 : Cell3d((BoundingBox)s), m_polynomial(s.equation()), m_center(0) 00120 { 00121 00122 }
cell3d_algebraic_surface | ( | const Polynomial & | pol, | |
const BoundingBox & | bx | |||
) | [inline] |
Definition at line 125 of file cell3d_algebraic_surface.hpp.
00126 : Cell3d(bx), m_polynomial(pol), m_center(0) 00127 { 00128 00129 }
cell3d_algebraic_surface | ( | char * | pol, | |
const BoundingBox & | bx | |||
) | [inline] |
Definition at line 132 of file cell3d_algebraic_surface.hpp.
00133 : Cell3d(bx), m_polynomial(pol), m_center(0) 00134 { 00135 }
cell3d_algebraic_surface | ( | const AlgebraicSurface & | sf, | |
const BoundingBox & | b | |||
) | [inline] |
Definition at line 138 of file cell3d_algebraic_surface.hpp.
References mmx::assign(), algebraic_surface< C, V >::equation(), cell3d_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().
00138 : Cell3d(b), m_center(0) 00139 { 00140 Seq<mmx::GMP::rational> bx; 00141 bx<<as<mmx::GMP::rational>(b.xmin()); 00142 bx<<as<mmx::GMP::rational>(b.xmax()); 00143 bx<<as<mmx::GMP::rational>(b.ymin()); 00144 bx<<as<mmx::GMP::rational>(b.ymax()); 00145 bx<<as<mmx::GMP::rational>(b.zmin()); 00146 bx<<as<mmx::GMP::rational>(b.zmax()); 00147 00148 Polynomial tmp; 00149 tensor::bernstein<mmx::GMP::rational> polq(sf.equation().rep(),bx); 00150 let::assign(tmp.rep(),polq); 00151 m_polynomial=tmp; 00152 00153 }
cell3d_algebraic_surface | ( | AlgebraicSurface * | , | |
const BoundingBox & | ||||
) |
BoundingBox boundingBox | ( | ) | const [inline, inherited] |
Reimplemented in bcell3d< C, V >.
Definition at line 65 of file cell3d.hpp.
00065 { 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().
C center_value | ( | ) | const [inline] |
Definition at line 98 of file cell3d_algebraic_surface.hpp.
References cell3d_algebraic_surface< C, V >::m_polynomial.
00098 { return m_polynomial(0.5,0.5,0.5); }
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.
bool edge_point | ( | Point ** | CELL, | |
int | cube_index | |||
) | const [inline] |
Definition at line 342 of file cell3d_algebraic_surface.hpp.
References solver_implicit< C, V >::east_back_edge, solver_implicit< C, V >::east_front_edge, solver_implicit< C, V >::edge_point(), cell3d_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.
00342 { 00343 00344 BoundingBox* bx = (BoundingBox*)this; 00345 Seq<Point*> F; 00346 Polynomial bk, ft; 00347 00348 tensor::face(bk, equation(), 2, 0); 00349 if (cube_index & 1) { 00350 Solver::edge_point(F, bk, Solver::north_back_edge, *bx); 00351 if(F.size()==0) { 00352 std::cout<<"Problem in MC0"<<std::endl; 00353 return false; 00354 } else 00355 CELL[0] = F[0]; 00356 F.resize(0); 00357 } 00358 if (cube_index & 2) { 00359 Solver::edge_point(F, bk, Solver::east_back_edge , *bx); 00360 if(F.size()==0) { 00361 std::cout<<"Problem in MC1"<<std::endl; 00362 return false; 00363 } else 00364 CELL[1] = F[0]; 00365 F.resize(0); 00366 } 00367 if (cube_index & 4) { 00368 Solver::edge_point(F, bk, Solver::south_back_edge, *bx); 00369 if(F.size()==0) { 00370 std::cout<<"Problem in MC2"<<std::endl; 00371 return false; 00372 } else 00373 CELL[2] = F[0]; 00374 F.resize(0); 00375 } 00376 if (cube_index & 8) { 00377 Solver::edge_point(F, bk, Solver::west_back_edge , *bx); 00378 if(F.size()==0) { 00379 std::cout<<"Problem in MC3"<<std::endl; 00380 } else 00381 CELL[3] = F[0]; 00382 F.resize(0); 00383 } 00384 00385 tensor::face(ft,equation(), 2, 1); 00386 00387 if (cube_index & 16) { 00388 Solver::edge_point(F, ft, Solver::north_front_edge, *bx); 00389 if(F.size()==0) { 00390 std::cout<<"Problem in MC4 "<<std::endl; 00391 return false; 00392 } else 00393 CELL[4] = F[0]; 00394 F.resize(0); 00395 } 00396 00397 if (cube_index & 32) { 00398 Solver::edge_point(F, ft, Solver::east_front_edge , *bx); 00399 if(F.size()==0) { 00400 std::cout<<"Problem in MC5"<<std::endl; 00401 return false; 00402 } else 00403 CELL[5] = F[0]; 00404 F.resize(0); 00405 } 00406 00407 if (cube_index & 64) { 00408 Solver::edge_point(F, ft, Solver::south_front_edge, *bx); 00409 if(F.size()==0) { 00410 std::cout<<"Problem in MC6"<<std::endl; 00411 return false; 00412 } else 00413 CELL[6] = F[0]; 00414 F.resize(0); 00415 } 00416 00417 if (cube_index & 128) { 00418 Solver::edge_point(F, ft, Solver::west_front_edge , *bx); 00419 if(F.size()==0) { 00420 std::cout<<"Problem in MC7"<<std::endl; 00421 return false; 00422 } else 00423 CELL[7] = F[0]; 00424 F.resize(0); 00425 } 00426 00427 tensor::face(ft, equation(), 1, 1); 00428 if (cube_index & 256) { 00429 Solver::edge_point(F, ft, Solver::north_west_edge, *bx); 00430 if(F.size()==0) { 00431 std::cout<<"Problem in MC8"<<std::endl; 00432 return false; 00433 } else 00434 CELL[8] = F[0]; 00435 F.resize(0); 00436 } 00437 00438 if (cube_index & 512) { 00439 Solver::edge_point(F, ft, Solver::north_east_edge, *bx); 00440 if(F.size()==0) { 00441 std::cout<<"Problem in MC9"<<std::endl; 00442 return false; 00443 } else 00444 CELL[9] = F[0]; 00445 F.resize(0); 00446 } 00447 00448 tensor::face(bk, equation(), 1, 0); 00449 00450 if (cube_index & 1024) { 00451 Solver::edge_point(F, bk, Solver::south_east_edge, *bx); 00452 if(F.size()==0) { 00453 std::cout<<"Problem in MC10"<<std::endl; 00454 return false; 00455 } else 00456 CELL[10] = F[0]; 00457 F.resize(0); 00458 } 00459 00460 if (cube_index & 2048) { 00461 Solver::edge_point(F, bk, Solver::south_west_edge, *bx); 00462 if(F.size()==0) { 00463 std::cout<<"Problem in MC11"<<std::endl; 00464 return false; 00465 } else 00466 CELL[11] = F[0]; 00467 F.resize(0); 00468 } 00469 00470 return true; 00471 }
const Polynomial& equation | ( | void | ) | const [inline] |
Definition at line 103 of file cell3d_algebraic_surface.hpp.
References cell3d_algebraic_surface< C, V >::m_polynomial.
Referenced by cell3d_algebraic_surface< C, V >::edge_point(), and cell3d_algebraic_surface< C, V >::is_regular().
00103 {return m_polynomial;}
Polynomial get_polynomial | ( | ) | const [inline] |
Definition at line 104 of file cell3d_algebraic_surface.hpp.
References cell3d_algebraic_surface< C, V >::m_polynomial.
00104 {return m_polynomial;}
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 }
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] |
Implements cell3d< C, V >.
Definition at line 156 of file cell3d_algebraic_surface.hpp.
References mmx::has_sign_variation(), and cell3d_algebraic_surface< C, V >::m_polynomial.
00156 { 00157 return has_sign_variation(m_polynomial.begin(),m_polynomial.end()); 00158 }
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_regular | ( | void | ) | [inline, virtual] |
Implements cell3d< C, V >.
Definition at line 161 of file cell3d_algebraic_surface.hpp.
References mmx::diff(), solver_implicit< C, V >::east_back_edge, solver_implicit< C, V >::east_front_edge, solver_implicit< C, V >::edge_sign_var(), cell3d_algebraic_surface< C, V >::equation(), mmx::tensor::face(), mmx::has_sign_variation(), cell3d_algebraic_surface< C, V >::m_idx, cell3d_algebraic_surface< C, V >::m_polynomial, 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, 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.
00161 { 00162 Polynomial dxf, dyf, dzf; 00163 Polynomial fp0, fp1; 00164 Polynomial bk, ft; 00165 00166 00167 tensor::face(bk, m_polynomial, 2, 0); 00168 if(Solver::edge_sign_var(bk, Solver::north_back_edge) >1) return false; 00169 if(Solver::edge_sign_var(bk, Solver::south_back_edge) >1) return false; 00170 if(Solver::edge_sign_var(bk, Solver::east_back_edge ) >1) return false; 00171 if(Solver::edge_sign_var(bk, Solver::west_back_edge ) >1) return false; 00172 00173 00174 tensor::face(ft, m_polynomial, 2, 1); 00175 if(Solver::edge_sign_var(ft, Solver::north_front_edge) >1) return false; 00176 if(Solver::edge_sign_var(ft, Solver::south_front_edge) >1) return false; 00177 if(Solver::edge_sign_var(ft, Solver::east_front_edge ) >1) return false; 00178 if(Solver::edge_sign_var(ft, Solver::west_front_edge ) >1) return false; 00179 00180 tensor::face(ft, equation(), 1, 1); 00181 if(Solver::edge_sign_var(ft, Solver::north_west_edge) >1) return false; 00182 if(Solver::edge_sign_var(ft, Solver::north_east_edge) >1) return false; 00183 00184 tensor::face(bk, equation(), 1, 0); 00185 if(Solver::edge_sign_var(bk, Solver::south_west_edge) >1) return false; 00186 if(Solver::edge_sign_var(bk, Solver::south_east_edge) >1) return false; 00187 00188 tensor::diff(dxf.rep(),m_polynomial.rep(),0); 00189 tensor::diff(dyf.rep(),m_polynomial.rep(),1); 00190 tensor::diff(dzf.rep(),m_polynomial.rep(),2); 00191 00192 if(!has_sign_variation(dxf.begin(),dxf.end())) { 00193 00194 this->m_idx=0; 00195 return true; 00196 00197 tensor::face(fp0, dyf, 0, 0); 00198 tensor::face(fp1, dyf, 0, 1); 00199 if(!has_sign_variation(fp0.begin(),fp0.end()) && 00200 !has_sign_variation(fp1.begin(),fp1.end()) ) return true; 00201 00202 tensor::face(fp0, dzf, 0, 0); 00203 tensor::face(fp1, dzf, 0, 1); 00204 if(!has_sign_variation(fp0.begin(),fp0.end()) && 00205 !has_sign_variation(fp1.begin(),fp1.end())) return true; 00206 00207 return false; 00208 } 00209 00210 //tensor::diff(dyf.rep(),m_polynomial.rep(),1); 00211 if(!has_sign_variation(dyf.begin(),dyf.end())) { 00212 this->m_idx=1; 00213 return true; 00214 } 00215 00216 //tensor::diff(dzf.rep(),m_polynomial.rep(),2); 00217 if(!has_sign_variation(dzf.begin(),dzf.end())) { 00218 this->m_idx=2; 00219 return true; 00220 } 00221 00222 return false; 00223 }
C lower_bound | ( | ) | const [inline] |
Definition at line 99 of file cell3d_algebraic_surface.hpp.
References cell3d_algebraic_surface< C, V >::m_polynomial.
00099 {return min_value<C>(m_polynomial.begin(), m_polynomial.end());}
int mc_index | ( | void | ) | const [inline] |
Definition at line 272 of file cell3d_algebraic_surface.hpp.
References cell3d_algebraic_surface< C, V >::vertex_eval().
00272 { 00273 00274 double isolevel = 0; 00275 int CubeIndex=0; 00276 00277 if (vertex_eval(0,1,0) <= isolevel) CubeIndex |= 1; 00278 if (vertex_eval(1,1,0) <= isolevel) CubeIndex |= 2; 00279 if (vertex_eval(1,0,0) <= isolevel) CubeIndex |= 4; 00280 if (vertex_eval(0,0,0) <= isolevel) CubeIndex |= 8; 00281 if (vertex_eval(0,1,1) <= isolevel) CubeIndex |= 16; 00282 if (vertex_eval(1,1,1) <= isolevel) CubeIndex |= 32; 00283 if (vertex_eval(1,0,1) <= isolevel) CubeIndex |= 64; 00284 if (vertex_eval(0,0,1) <= isolevel) CubeIndex |= 128; 00285 00286 return CubeIndex; 00287 }
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) ; }
Definition at line 291 of file cell3d_algebraic_surface.hpp.
References mmx::abs(), cell3d_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().
00291 { 00292 00293 Point U0((A.x()-this->xmin())/(this->xmax()-this->xmin()), 00294 (A.y()-this->ymin())/(this->ymax()-this->ymin()), 00295 (A.z()-this->zmin())/(this->zmax()-this->zmin())), 00296 U1((B.x()-this->xmin())/(this->xmax()-this->xmin()), 00297 (B.y()-this->ymin())/(this->ymax()-this->ymin()), 00298 (B.z()-this->zmin())/(this->zmax()-this->zmin())); 00299 00300 C f0 = this->m_polynomial(U0.x(), U0.y(), U0.z()), 00301 f1 = this->m_polynomial(U1.x(), U1.y(), U1.z()); 00302 00303 Point M; 00304 if (abs(f0) < 0.00001) { 00305 M=U0; 00306 } else if (abs(f1) < 0.00001) { 00307 M=U1; 00308 } else if (abs(f1-f0) < 0.00001) { 00309 M=U0; 00310 } else { 00311 00312 C mu = - f0 / (f1 - f0); 00313 00314 M.x() = U0.x() + mu * (U1.x() - U0.x()); 00315 M.y() = U0.y() + mu * (U1.y() - U0.y()); 00316 M.z() = U0.z() + mu * (U1.z() - U0.z()); 00317 00318 C fm = this->m_polynomial(M.x(),M.y(),M.z()); 00319 00320 for(int i=0;i<10;i++) { 00321 if(f0*fm<0) { 00322 U1 = M; f1 = fm; 00323 } else { 00324 U0 = M; f0 = fm; 00325 } 00326 mu = - f0 / (f1 - f0); 00327 M.x() = U0.x() + mu * (U1.x() - U0.x()); 00328 M.y() = U0.y() + mu * (U1.y() - U0.y()); 00329 M.z() = U0.z() + mu * (U1.z() - U0.z()); 00330 00331 fm = this->m_polynomial(M.x(),M.y(),M.z()); 00332 } 00333 } 00334 00335 R.x()=this->xmin()+ M.x()*(this->xmax()-this->xmin()); 00336 R.y()=this->ymin()+ M.y()*(this->ymax()-this->ymin()); 00337 R.z()=this->zmin()+ M.z()*(this->zmax()-this->zmin()); 00338 00339 }
typedef REF_OF | ( | V | ) |
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] |
Definition at line 226 of file cell3d_algebraic_surface.hpp.
References cell3d_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 cell3d_algebraic_surface< C, V >::subdivide().
00226 { 00227 00228 // cout<<"Split begin"<<endl; 00229 if(v==0) { 00230 left = new CELL(m_polynomial, BoundingBox(this->xmin(),c, this->ymin(), this->ymax(), this->zmin(), this->zmax())); 00231 right= new CELL(m_polynomial, BoundingBox(c,this->xmax(), this->ymin(), this->ymax(), this->zmin(), this->zmax())); 00232 } else if (v==1) { 00233 left = new CELL(m_polynomial, BoundingBox(this->xmin(),this->xmax(), this->ymin(), c, this->zmin(), this->zmax())); 00234 right= new CELL(m_polynomial, BoundingBox(this->xmin(),this->xmax(), c, this->ymax(), this->zmin(), this->zmax())); 00235 } else {//v==2 00236 left = new CELL(m_polynomial, BoundingBox(this->xmin(),this->xmax(),this->ymin(),this->ymax(), this->zmin(), c)); 00237 right= new CELL(m_polynomial, BoundingBox(this->xmin(),this->xmax(),this->ymin(),this->ymax(), c, this->zmax())); 00238 } 00239 //cell3d_split(left,right,this,v,c); 00240 //cout<<"Subdivide end "<<*left<<" "<<*right<<endl; 00241 tensor::split(left->m_polynomial, right->m_polynomial, v); 00242 }
void split_position | ( | int & | v, | |
double & | t | |||
) | [inline, virtual, inherited] |
Reimplemented in bcell3d< C, V >, and bcell3d_list< C, V >.
Definition at line 89 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().
Referenced by cell3d< C, V >::subdivide().
00089 { 00090 double sx = (this->xmax()-this->xmin()); 00091 double sy = (this->ymax()-this->ymin()); 00092 double sz = (this->zmax()-this->zmin()); 00093 00094 if(sx<sy) 00095 if(sy<sz) { 00096 v=2; 00097 s=(this->zmax()+this->zmin())/2; 00098 } else { 00099 v=1; 00100 s=(this->ymax()+this->ymin())/2; 00101 } 00102 else 00103 if(sx<sz) { 00104 v=2; 00105 s=(this->zmax()+this->zmin())/2; 00106 } else { 00107 v=0; 00108 s=(this->xmax()+this->xmin())/2; 00109 } 00110 }
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 }
Definition at line 246 of file cell3d_algebraic_surface.hpp.
References mmx::ssi::left(), mmx::ssi::right(), SELF, and cell3d_algebraic_surface< C, V >::split().
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 }
C upper_bound | ( | ) | const [inline] |
Definition at line 100 of file cell3d_algebraic_surface.hpp.
References cell3d_algebraic_surface< C, V >::m_polynomial.
00100 {return max_value<C>(m_polynomial.begin(), m_polynomial.end());}
C value | ( | const C & | x, | |
const C & | y, | |||
const C & | z | |||
) | const [inline] |
Definition at line 254 of file cell3d_algebraic_surface.hpp.
References cell3d_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().
double vertex_eval | ( | unsigned | sx, | |
unsigned | sy, | |||
unsigned | sz | |||
) | const [inline] |
Definition at line 261 of file cell3d_algebraic_surface.hpp.
References cell3d_algebraic_surface< C, V >::m_polynomial.
Referenced by cell3d_algebraic_surface< C, V >::mc_index().
00261 { 00262 00263 int s=0; 00264 s+= sx*(m_polynomial.rep().env.sz(0)-1)*m_polynomial.rep().env.st(0); 00265 s+= sy*(m_polynomial.rep().env.sz(1)-1)*m_polynomial.rep().env.st(1); 00266 s+= sz*(m_polynomial.rep().env.sz(2)-1)*m_polynomial.rep().env.st(2); 00267 return m_polynomial[s]; 00268 }
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.
Definition at line 109 of file cell3d_algebraic_surface.hpp.
Definition at line 110 of file cell3d_algebraic_surface.hpp.
int m_idx |
Definition at line 111 of file cell3d_algebraic_surface.hpp.
Referenced by cell3d_algebraic_surface< C, V >::is_regular().
Definition at line 108 of file cell3d_algebraic_surface.hpp.
Referenced by cell3d_algebraic_surface< C, V >::cell3d_algebraic_surface(), cell3d_algebraic_surface< C, V >::center_value(), cell3d_algebraic_surface< C, V >::equation(), cell3d_algebraic_surface< C, V >::get_polynomial(), cell3d_algebraic_surface< C, V >::is_active(), cell3d_algebraic_surface< C, V >::is_regular(), cell3d_algebraic_surface< C, V >::lower_bound(), cell3d_algebraic_surface< C, V >::point(), cell3d_algebraic_surface< C, V >::split(), cell3d_algebraic_surface< C, V >::upper_bound(), cell3d_algebraic_surface< C, V >::value(), and cell3d_algebraic_surface< C, V >::vertex_eval().
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().