#include <Mesh.h>
Inheritance diagram for Mesh< ambient, topo >:

Public Types | |
| typedef ::SimplexData< ambient, topo > | SimplexData |
| typedef IncrementalDelaunay< ambient, topo, RefineVertex< ambient >, SimplexData > | Delaunay |
| typedef Delaunay::Complex | Complex |
| typedef Delaunay::Cavity | Cavity |
| typedef Delaunay::Star | Star |
| typedef Delaunay::Simplex | Simplex |
| typedef Delaunay::Vertex | Vertex |
| typedef MeshTypes< ambient >::Ball | Ball |
| typedef MeshTypes< ambient >::BallSet | BallSet |
| typedef MeshTypes< ambient >::GenericMesh | GenericMesh |
| typedef Geometry::CenterRadius< ambient > | CenterRadius |
| typedef Geometry::Point< ambient > | Point |
| typedef Geometry::Point< topo > | PPoint |
| typedef ::SplitData< ambient > | SplitData |
Public Member Functions | |
| Mesh (Delaunay *del) | |
| virtual unsigned | topological () const |
| const Delaunay * | getDelaunay () const |
| const Complex & | getSimplicialComplex () const |
| Delaunay * | getDelaunayDangerously () |
| const Simplex & | getHandle () const |
| template<class DFSData> | |
| void | dfs (DFSData &data) const |
| template<class output_iterator> | |
| output_iterator | collectAllBalls (output_iterator out) const |
| Ball * | toBall (const Simplex &s) const |
| void | setBall (const Simplex &s, Ball *b) |
| bool | isMember (const Simplex &s) const |
| CenterRadius | circumcenter (const Simplex &s) const |
| double | radiusEdge2 (const Simplex &s) const |
| double | computeSigma (const Simplex &s) const |
| bool | encroachedBy (const Simplex &s, const Vertex *v) const |
| bool | inSphereExact (const Simplex &s, const Vertex *v) const |
| bool | isResolved (const Simplex &s) const |
| void | gatherUppers (const Simplex &s, BallSet &set) const |
| void | gatherLowers (const Simplex &s, BallSet &set) const |
| bool | approximatelyIntersects (const Simplex &s, const Ball *b) const |
| bool | split (const Simplex &s, SplitData &data, Vertex *inserthint=NULL, bool force=false) |
| bool | split (Vertex *v, SplitData &data) |
| bool | checkAddLower (const Simplex &s, Ball *b) |
| void | blindlyAddUpper (const Simplex &s, Ball *up) |
| void | blindlyAddLower (const Simplex &s, Ball *lower) |
| void | removeUpper (const Simplex &s, Ball *up) |
| void | removeLower (const Simplex &s, Ball *lower) |
| void | checkAddLowerToAll (Ball *b) |
Static Public Attributes | |
| static const size_t | ambient_dimension = ambient |
| static const size_t | topological_dimension = topo |
Classes | |
| struct | BallNotifier |
| struct | ConvertToBalls |
| struct | InitVertex |
| struct | WarpClosure |
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
||||||||||
|
Initialize the mesh.
|
|
||||||||||||||||
|
Return whether the circumsphere of the simplex intersects the ball. Precision is not required here: we actually answer if the closed circumball of s intersects the closed ball b, up to floating-point accuracy. |
|
||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||
|
Iterate over the mesh, adding the ball as a lower to every simplex it approximatelyIntersects() |
|
||||||||||
|
Return the center and radius of the simplex. |
|
||||||||||||||
|
Convert the mesh into a list of balls. The output is done using an output iterator, so we can output a set, list, vector, count, etc. |
|
||||||||||
|
|
|
||||||||||||||
|
Perform a depth-first-search in the mesh, starting at the global handle. Other DFS functions could easily be provided, but aren't necessary now. |
|
||||||||||||||||
|
Return whether the simplex would be encroached by the vertex. We use approximate arithmetic here, because precision is not required. Precision is necessary to make sure we don't count a vertex of the simplex as encroaching the simplex. But that can be checked combinatorially. |
|
||||||||||||||||
|
Gather the set of lower-dimensional balls that s knows. |
|
||||||||||||||||
|
Gather the set of balls that have down-pointers to this simplex. |
|
|||||||||
|
Return the underlying mesh structure, with geometric information. |
|
|||||||||
|
Return the underlying Delaunay, non-const. This is dangerous: changes to the underlying Delaunay can cause the Mesh structure to become invalid. Use this only in very prescribed locations, such at MeshConstructor. |
|
|||||||||
|
Return a handle into the mesh. Mostly just used internally, but there's not much reason not to provide it. |
|
|||||||||
|
Return the underlying mesh structure -- just the topology. |
|
||||||||||||||||
|
Exact test for encroachment by vertices in the plane of the mesh. We test the open ball; vertices of s do not encroach on s. |
|
||||||||||
|
Return whether s is still in the mesh. |
|
||||||||||
|
Is this ball resolved in the top-dimensional mesh? |
|
||||||||||
|
Return the radius/edge ratio (squared) of the simplex. |
|
||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||||||||
|
TODO: restrict access here. |
|
||||||||||||||||
|
Split based on a vertex rather than on a simplex. The difference is simply that to split a vertex, we first need to find a simplex to split. |
|
||||||||||||||||||||||||
|
Try to split s, by inserting a point in its circumball. The insertion will either:
Returns whether s was actually split (if not, it encroached). If the insertion actually occurs, the upper/lower pointers are fixed. |
|
||||||||||
|
|
|
|||||||||
|
Get the topological dimension (required by GenericMesh). Implements GenericMesh< ambient >. |
|
|||||
|
|
|
|||||
|
|
1.4.6