KiCad PCB EDA Suite
ttl Namespace Reference

Main interface to TTL. More...



Detailed Description

Main interface to TTL.

This namespace contains the basic generic algorithms for the TTL, the Triangulation Template Library.
Examples of functionality are:

  • Incremental Delaunay triangulation
  • Constrained triangulation
  • Insert/remove nodes and constrained edges
  • Traversal operations
  • Misc. queries for extracting information for visualisation systems etc.
General requirements and assumptions:
  • DART_TYPE and TRAITS_TYPE should be implemented in accordance with the description in api.
  • A "Requires:" section in the documentation of a function template shows which functionality is required in TRAITS_TYPE to support that specific function.
    Functionalty required in DART_TYPE is the same (almost) for all function templates; see api and the example referred to.
  • When a reference to a dart object is passed to a function in TTL, it is assumed that it is oriented counterclockwise (CCW) in a triangle unless it is explicitly mentioned that it can also be clockwise (CW). The same applies for a dart that is passed from a function in TTL to the users TRAITS_TYPE class (or struct).
  • When an edge (represented with a dart) is swapped, it is assumed that darts outside the quadrilateral where the edge is a diagonal are not affected by the swap. Thus, TRAITS_TYPE::swapEdge must be implemented in accordance with this rule.
  • General terms are explained in api.
  • CCW - counterclockwise
  • CW - clockwise
  • 0_orbit, 1_orbit and 2_orbit: A sequence of darts around a node, around an edge and in a triangle respectively; see get_0_orbit_interior and get_0_orbit_boundary
  • arc - In a triangulation an arc is equivalent with an edge
See also
ttl_util and api
´┐Żyvind Hjelle,