Interface IDelaunayRefiner
-
- All Known Implementing Classes:
RuppertRefiner
public interface IDelaunayRefinerADelaunayRefinerrefines a given triangulation to improve its quality, for example by increasing minimum angles or enforcing other geometric properties.Refinement is performed in-place and may mutate the underlying triangulation. Implementations should provide constructors for initializing with a specific triangulation and any quality criteria or thresholds.
The
refine()method applies the refinement logic, such as inserting Steiner points or retriangulating, to meet the desired properties.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleanrefine()Refines the associated triangulation to improve its quality according to the implementation's criteria (e.g., increasing minimum angles, removing skinny triangles, etc).VertexrefineOnce()Performs a single refinement operation on the associated triangulation.
-
-
-
Method Detail
-
refineOnce
Vertex refineOnce()
Performs a single refinement operation on the associated triangulation.Implementations should perform one atomic refinement step: identify an element that violates the configured quality criteria (for example a "bad" triangle) and repair it (for example by inserting a Steiner vertex, performing local retriangulation or edge flips). This method mutates the underlying triangulation in-place.
Implementation Note: Implementations are encouraged to make this method behave predictably when invoked repeatedly: calling it repeatedly on an unchanged triangulation should either return the same inserted vertex until the local repair completes, or return
nullonce no further single-step refinements are required.- Returns:
- the
Vertexthat was inserted as part of this refinement step, ornullif no refinement was necessary (the triangulation already meets the quality criteria or no applicable operation was available). - See Also:
refine()
-
refine
boolean refine()
Refines the associated triangulation to improve its quality according to the implementation's criteria (e.g., increasing minimum angles, removing skinny triangles, etc).This method typically runs a loop that performs repeated single-step refinements (for example by calling
refineOnce()) until the triangulation meets the quality criteria or a termination condition is reached.- Returns:
trueif the refinement process terminated successfully because the triangulation meets the configured quality criteria;falseif the process terminated early due to a hard iteration cap or other imposed stopping condition before the criteria were satisfied.
-
-