KiCad PCB EDA Suite
ttl Namespace Reference

Main interface to TTL. More...

Classes

class  TRIANGULATION_HELPER
 

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.
Glossary:
  • 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
Author
´┐Żyvind Hjelle, oyvin.nosp@m.dhj@.nosp@m.ifi.u.nosp@m.io.n.nosp@m.o