shape_doc 0.1
|
#include <cell_list.hpp>
Definition at line 28 of file cell_list.hpp.
typedef bounding_box<C, REF_OF(V) > BoundingBox |
Reimplemented from cell< C, V >.
Definition at line 30 of file cell_list.hpp.
Definition at line 31 of file cell_list.hpp.
Reimplemented in cell2d< C, V >, cell2d_algebraic_curve< C, V >, cell2d_intersection< C, V >, cell2d_list< C, V >, cell2d_parametric_curve< C, V >, cell2d_semialgebraic_curve< C, V >, cell2d_voronoi_diagram< C, V >, cell2d_voronoi_site2d< C, V >, cell< C, with_node< V > >, and cell2d< C, REF_OF(V) >.
Reimplemented from cell< C, V >.
Definition at line 32 of file cell_list.hpp.
cell_list | ( | void | ) |
Definition at line 58 of file cell_list.hpp.
{}
cell_list | ( | double | xmin, |
double | xmax | ||
) |
Definition at line 59 of file cell_list.hpp.
cell_list | ( | double | xmin, |
double | xmax, | ||
double | ymin, | ||
double | ymax | ||
) |
cell_list | ( | double | xmin, |
double | xmax, | ||
double | ymin, | ||
double | ymax, | ||
bool | itr | ||
) |
cell_list | ( | double | xmin, |
double | xmax, | ||
double | ymin, | ||
double | ymax, | ||
double | zmin, | ||
double | zmax | ||
) |
cell_list | ( | const BoundingBox & | bx | ) |
Definition at line 63 of file cell_list.hpp.
: Cell(bx) {};
~cell_list | ( | void | ) | [virtual] |
Definition at line 65 of file cell_list.hpp.
BoundingBox boundingBox | ( | ) | const [inline, inherited] |
Definition at line 88 of file cell.hpp.
{ return (BoundingBox)*this; }
virtual Point center | ( | void | ) | const [inline, virtual, inherited] |
bool contains | ( | double | x, |
bool | strict = false |
||
) | [inherited] |
bool contains | ( | double | x, |
double | y, | ||
bool | strict = false |
||
) | [inherited] |
bool contains | ( | double | x, |
double | y, | ||
double | z, | ||
bool | strict = false |
||
) | [inherited] |
int count | ( | void | ) | [inline] |
Definition at line 50 of file cell_list.hpp.
References cell_list< C, V >::m_objects.
{ return m_objects.size() ; }
bool insert_regular | ( | Topology * | s | ) | [virtual] |
Implements cell< C, V >.
Definition at line 77 of file cell_list.hpp.
References cell< C, V >::insert_regular().
bool insert_singular | ( | Topology * | s | ) | [virtual] |
Implements cell< C, V >.
Definition at line 84 of file cell_list.hpp.
References cell< C, V >::insert_singular().
bounding_box< C, V > * intersect | ( | const bounding_box< C, V > & | other | ) | [inherited] |
Definition at line 318 of file bounding_box.hpp.
References mmx::shape::mmxmax(), mmx::shape::mmxmin(), and SELF.
Referenced by bounding_box< double, V >::operator*().
{ SELF * cell = new SELF ; cell->set_xmin(mmxmax(this->xmin(), other.xmin())) ; cell->set_xmax(mmxmin(this->xmax(), other.xmax())) ; cell->set_ymin(mmxmax(this->ymin(), other.ymin())) ; cell->set_ymax(mmxmin(this->ymax(), other.ymax())) ; cell->set_zmin(mmxmax(this->zmin(), other.zmin())) ; cell->set_zmax(mmxmin(this->zmax(), other.zmax())) ; return cell ; }
void intersected | ( | bounding_box< C, V > * | other | ) | [inherited] |
Definition at line 298 of file bounding_box.hpp.
References mmx::shape::mmxmax(), and mmx::shape::mmxmin().
bool intersects | ( | bounding_box< C, V > * | other, |
bool | strict = true |
||
) | [inherited] |
Definition at line 238 of file bounding_box.hpp.
References mmx::shape::mmxmax(), and mmx::shape::mmxmin().
{ if(this->is0D()) return (this->xmin() == other->xmin()) ; else if(this->is1D()) if(strict) return ((mmxmax(this->xmin(), other->xmin()) < mmxmin(this->xmax(), other->xmax()))) ; else return ((mmxmax(this->xmin(), other->xmin()) <= mmxmin(this->xmax(), other->xmax()))) ; else if(this->is2D()) if(strict) return ((mmxmax(this->xmin(), other->xmin()) < mmxmin(this->xmax(), other->xmax())) && (mmxmax(this->ymin(), other->ymin()) < mmxmin(this->ymax(), other->ymax()))) ; else return ((mmxmax(this->xmin(), other->xmin()) <= mmxmin(this->xmax(), other->xmax())) && (mmxmax(this->ymin(), other->ymin()) <= mmxmin(this->ymax(), other->ymax()))) ; else if(this->is3d()) { if(strict) return ((mmxmax(this->xmin(), other->xmin()) < mmxmin(this->xmax(), other->xmax())) && (mmxmax(this->ymin(), other->ymin()) < mmxmin(this->ymax(), other->ymax())) && (mmxmax(this->zmin(), other->zmin()) < mmxmin(this->zmax(), other->zmax()))) ; else return ((mmxmax(this->xmin(), other->xmin()) <= mmxmin(this->xmax(), other->xmax())) && (mmxmax(this->ymin(), other->ymin()) <= mmxmin(this->ymax(), other->ymax())) && (mmxmax(this->zmin(), other->zmin()) <= mmxmin(this->zmax(), other->zmax()))) ; } return false ; }
bool is0D | ( | void | ) | const [inline, inherited] |
bool is1D | ( | void | ) | const [inline, inherited] |
bool is2D | ( | void | ) | const [inline, inherited] |
bool is3d | ( | void | ) | const [inline, inherited] |
bool is_active | ( | void | ) | const [virtual] |
Definition at line 70 of file cell_list.hpp.
References cell< C, V >::is_active().
virtual bool is_active | ( | void | ) | [pure virtual, inherited] |
Implemented in cell2d_algebraic_curve< C, V >, cell2d_intersection< C, V >, cell2d_list< C, V >, cell2d_parametric_curve< C, V >, cell2d_semialgebraic_curve< C, V >, cell2d_voronoi_diagram< C, V >, and cell2d_voronoi_site2d< C, V >.
Referenced by voronoi2d< C, V >::insert_regular(), cell2d_voronoi_diagram< C, V >::insert_regular(), cell_list< C, V >::is_active(), cell3d_list< C, V >::is_active(), cell2d_list< C, V >::is_active(), voronoi2d< C, V >::run(), topology2d< C, V >::run(), semialgebraic2d< C, V >::run(), arrangement2d< C, V >::run(), cell2d_voronoi_diagram< C, V >::starting_point(), cell2d_list< C, V >::starting_point(), cell2d_intersection< C, V >::starting_point(), and cell2d_list< C, V >::subdivide().
virtual bool is_intersected | ( | void | ) | [pure virtual, inherited] |
virtual bool is_regular | ( | void | ) | [pure virtual] |
Implements cell< C, V >.
double operator() | ( | unsigned | v, |
unsigned | s | ||
) | const [inherited] |
double & operator() | ( | unsigned | v, |
unsigned | s | ||
) | [inherited] |
bounding_box<C,V>* operator* | ( | const bounding_box< C, V > & | other | ) | [inline, inherited] |
Definition at line 103 of file bounding_box.hpp.
{ 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.
{ return unite(other) ; }
void push_back | ( | Cell * | cv | ) |
Definition at line 91 of file cell_list.hpp.
{ m_objects.push_back(cv); }
void set_xmax | ( | double | x | ) | [inline, inherited] |
Definition at line 74 of file bounding_box.hpp.
{ this->m_xmax = x ; }
void set_xmin | ( | double | x | ) | [inline, inherited] |
Definition at line 73 of file bounding_box.hpp.
{ this->m_xmin = x ; }
void set_ymax | ( | double | y | ) | [inline, inherited] |
Definition at line 76 of file bounding_box.hpp.
{ this->m_ymax = y ; }
void set_ymin | ( | double | y | ) | [inline, inherited] |
Definition at line 75 of file bounding_box.hpp.
{ this->m_ymin = y ; }
void set_zmax | ( | double | z | ) | [inline, inherited] |
Definition at line 78 of file bounding_box.hpp.
{ this->m_zmax = z ; }
void set_zmin | ( | double | z | ) | [inline, inherited] |
Definition at line 77 of file bounding_box.hpp.
{ this->m_zmin = z ; }
double size | ( | void | ) | [inherited] |
Definition at line 199 of file bounding_box.hpp.
References mmx::max().
Referenced by voronoi2d< C, V >::run(), topology2d< C, V >::run(), mesher3d_shape< C, V >::run(), and mesher3d_curve_algebraic< C, V >::run().
virtual void split_position | ( | int & | v, |
double & | s | ||
) | [pure virtual, inherited] |
Implemented in cell2d< C, V >, cell2d_intersection< C, V >, cell2d_list< C, V >, cell2d_voronoi_diagram< C, V >, and cell2d< C, REF_OF(V) >.
Definition at line 93 of file cell.hpp.
Referenced by voronoi2d< C, V >::run(), topology2d< C, V >::subdivide(), semialgebraic2d< C, V >::subdivide(), cell2d_voronoi_diagram< C, V >::subdivide(), cell2d_list< C, V >::subdivide(), cell2d_intersection< C, V >::subdivide(), and arrangement2d< C, V >::subdivide().
{ int v; double s; this->split_position(v,s); this->subdivide(Left,Right,v,s); return v; }
virtual void subdivide | ( | cell< C, V > *& | left, |
cell< C, V > *& | right, | ||
int | v, | ||
double | s | ||
) | [pure virtual, inherited] |
bounding_box< C, V > * unite | ( | bounding_box< C, V > * | other | ) | [inherited] |
Definition at line 330 of file bounding_box.hpp.
References mmx::shape::mmxmax(), mmx::shape::mmxmin(), and SELF.
Referenced by bounding_box< double, V >::operator+().
{ SELF * cell = new SELF ; cell->set_xmin(mmxmin(this->xmin(), other->xmin())) ; cell->set_xmax(mmxmax(this->xmax(), other->xmax())) ; cell->set_ymin(mmxmin(this->ymin(), other->ymin())) ; cell->set_ymax(mmxmax(this->ymax(), other->ymax())) ; cell->set_zmin(mmxmin(this->zmin(), other->zmin())) ; cell->set_zmax(mmxmax(this->zmax(), other->zmax())) ; return cell ; }
void united | ( | bounding_box< C, V > * | other | ) | [inherited] |
Definition at line 308 of file bounding_box.hpp.
References mmx::shape::mmxmax(), and mmx::shape::mmxmin().
bool unites | ( | bounding_box< C, V > * | other, |
bool | strict = true |
||
) | [inherited] |
Definition at line 268 of file bounding_box.hpp.
References mmx::shape::mmxmax(), and mmx::shape::mmxmin().
{ if(this->is0D()) return (this->xmin() == other->xmin()) ; else if(this->is1D()) { if(strict) return ((mmxmin(this->xmin(), other->xmin()) < mmxmax(this->xmax(), other->xmax()))) ; else return ((mmxmin(this->xmin(), other->xmin()) <= mmxmax(this->xmax(), other->xmax()))) ; } else if(this->is2D()) { if(strict) return ((mmxmin(this->xmin(), other->xmin()) < mmxmax(this->xmax(), other->xmax())) && (mmxmin(this->ymin(), other->ymin()) < mmxmax(this->ymax(), other->ymax()))) ; else return ((mmxmin(this->xmin(), other->xmin()) <= mmxmax(this->xmax(), other->xmax())) && (mmxmin(this->ymin(), other->ymin()) <= mmxmax(this->ymax(), other->ymax()))) ; } else if(this->is3d()) { if(strict) return ((mmxmin(this->xmin(), other->xmin()) < mmxmax(this->xmax(), other->xmax())) && (mmxmin(this->ymin(), other->ymin()) < mmxmax(this->ymax(), other->ymax())) && (mmxmin(this->zmin(), other->zmin()) < mmxmax(this->zmax(), other->zmax()))) ; else return ((mmxmin(this->xmin(), other->xmin()) <= mmxmax(this->xmax(), other->xmax())) && (mmxmin(this->ymin(), other->ymin()) <= mmxmax(this->ymax(), other->ymax())) && (mmxmin(this->zmin(), other->zmin()) <= mmxmax(this->zmax(), other->zmax()))) ; } return false ; }
double xmax | ( | void | ) | const [inline, inherited] |
Definition at line 63 of file bounding_box.hpp.
{ return m_xmax ; }
double xmax | ( | void | ) | [inline, inherited] |
Definition at line 56 of file bounding_box.hpp.
Referenced by cell2d_algebraic_curve< C, V >::cell2d_algebraic_curve(), cell3d_algebraic_curve< C, V >::cell3d_algebraic_curve(), cell3d_surface_algebraic< C, V >::cell3d_surface_algebraic(), cell3d< C, V >::center(), cell< C, REF_OF(REF_OF(V)) >::center(), EdgeListBuilder< node_t >::computeCommonFace(), solver_implicit< C, V >::extremal(), topology< C, V >::insert(), mesher3d_curve_algebraic< C, V >::insert(), solver_implicit< C, V >::intersection(), solver_implicit< C, V >::singular(), and EdgeListBuilder< node_t >::verifyFaceList().
{ return m_xmax ; }
double xmin | ( | void | ) | const [inline, inherited] |
Definition at line 62 of file bounding_box.hpp.
{ return m_xmin ; }
double xmin | ( | void | ) | [inline, inherited] |
Definition at line 55 of file bounding_box.hpp.
Referenced by cell2d_algebraic_curve< C, V >::cell2d_algebraic_curve(), cell3d_algebraic_curve< C, V >::cell3d_algebraic_curve(), cell3d_surface_algebraic< C, V >::cell3d_surface_algebraic(), cell3d< C, V >::center(), cell< C, REF_OF(REF_OF(V)) >::center(), EdgeListBuilder< node_t >::computeCommonFace(), solver_implicit< C, V >::extremal(), topology< C, V >::insert(), mesher3d_curve_algebraic< C, V >::insert(), solver_implicit< C, V >::intersection(), mmx::shape::operator<<(), mmx::operator<<(), solver_implicit< C, V >::singular(), and EdgeListBuilder< node_t >::verifyFaceList().
{ 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.
{ return m_ymax ; }
double ymax | ( | void | ) | [inline, inherited] |
Definition at line 58 of file bounding_box.hpp.
Referenced by cell2d_algebraic_curve< C, V >::cell2d_algebraic_curve(), cell3d_algebraic_curve< C, V >::cell3d_algebraic_curve(), cell3d_surface_algebraic< C, V >::cell3d_surface_algebraic(), cell3d< C, V >::center(), cell< C, REF_OF(REF_OF(V)) >::center(), EdgeListBuilder< node_t >::computeCommonFace(), solver_implicit< C, V >::extremal(), topology< C, V >::insert(), mesher3d_curve_algebraic< C, V >::insert(), solver_implicit< C, V >::intersection(), solver_implicit< C, V >::singular(), and EdgeListBuilder< node_t >::verifyFaceList().
{ return m_ymax ; }
double ymin | ( | void | ) | [inline, inherited] |
Definition at line 57 of file bounding_box.hpp.
Referenced by cell2d_algebraic_curve< C, V >::cell2d_algebraic_curve(), cell3d_algebraic_curve< C, V >::cell3d_algebraic_curve(), cell3d_surface_algebraic< C, V >::cell3d_surface_algebraic(), cell3d< C, V >::center(), cell< C, REF_OF(REF_OF(V)) >::center(), EdgeListBuilder< node_t >::computeCommonFace(), solver_implicit< C, V >::extremal(), topology< C, V >::insert(), mesher3d_curve_algebraic< C, V >::insert(), solver_implicit< C, V >::intersection(), solver_implicit< C, V >::singular(), and EdgeListBuilder< node_t >::verifyFaceList().
{ return m_ymin ; }
double ymin | ( | void | ) | const [inline, inherited] |
Definition at line 64 of file bounding_box.hpp.
{ return m_ymin ; }
double ysize | ( | void | ) | const [inline, inherited] |
Definition at line 70 of file bounding_box.hpp.
double zmax | ( | void | ) | [inline, inherited] |
Definition at line 60 of file bounding_box.hpp.
Referenced by cell3d_algebraic_curve< C, V >::cell3d_algebraic_curve(), cell3d_surface_algebraic< C, V >::cell3d_surface_algebraic(), cell3d< C, V >::center(), cell< C, REF_OF(REF_OF(V)) >::center(), EdgeListBuilder< node_t >::computeCommonFace(), topology< C, V >::insert(), mesher3d_curve_algebraic< C, V >::insert(), and EdgeListBuilder< node_t >::verifyFaceList().
{ return m_zmax ; }
double zmax | ( | void | ) | const [inline, inherited] |
Definition at line 67 of file bounding_box.hpp.
{ return m_zmax ; }
double zmin | ( | void | ) | const [inline, inherited] |
Definition at line 66 of file bounding_box.hpp.
{ return m_zmin ; }
double zmin | ( | void | ) | [inline, inherited] |
Definition at line 59 of file bounding_box.hpp.
Referenced by cell3d_algebraic_curve< C, V >::cell3d_algebraic_curve(), cell3d_surface_algebraic< C, V >::cell3d_surface_algebraic(), cell3d< C, V >::center(), cell< C, REF_OF(REF_OF(V)) >::center(), EdgeListBuilder< node_t >::computeCommonFace(), topology< C, V >::insert(), mesher3d_curve_algebraic< C, V >::insert(), and EdgeListBuilder< node_t >::verifyFaceList().
{ return m_zmin ; }
double zsize | ( | void | ) | const [inline, inherited] |
Definition at line 71 of file bounding_box.hpp.
Definition at line 54 of file cell_list.hpp.
Referenced by cell_list< C, V >::count().
double m_xmax [protected, inherited] |
Definition at line 107 of file bounding_box.hpp.
Referenced by bounding_box< double, V >::is0D(), bounding_box< double, V >::is1D(), bounding_box< double, V >::is2D(), bounding_box< double, V >::is3d(), bounding_box< double, V >::set_xmax(), 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< double, V >::is0D(), bounding_box< double, V >::is1D(), bounding_box< double, V >::is2D(), bounding_box< double, V >::is3d(), bounding_box< double, V >::set_xmin(), 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< double, V >::is0D(), bounding_box< double, V >::is1D(), bounding_box< double, V >::is2D(), bounding_box< double, V >::is3d(), bounding_box< double, V >::set_ymax(), 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< double, V >::is0D(), bounding_box< double, V >::is1D(), bounding_box< double, V >::is2D(), bounding_box< double, V >::is3d(), bounding_box< double, V >::set_ymin(), 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< double, V >::is0D(), bounding_box< double, V >::is1D(), bounding_box< double, V >::is2D(), bounding_box< double, V >::is3d(), bounding_box< double, V >::set_zmax(), 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< double, V >::is0D(), bounding_box< double, V >::is1D(), bounding_box< double, V >::is2D(), bounding_box< double, V >::is3d(), bounding_box< double, V >::set_zmin(), bounding_box< double, V >::zmin(), and bounding_box< double, V >::zsize().