Skip to content

Latest commit

 

History

History
69 lines (56 loc) · 4.28 KB

CHANGELOG.md

File metadata and controls

69 lines (56 loc) · 4.28 KB

Changelog

All notable changes to PGS will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning. Dates are YYYY-MM-DD.

1.1.2 (2021-08-10)

Added

  • polygonizeLines() to PGS_Processing. Computes the polygonal faces formed by a set of intersecting line segments.
  • Additional method signature for PGS_Processing.generateRandomGridPoints() that accepts a random seed.
  • fieldWarp() to PGS_Morphology. Warps a shape by displacing vertices according to a 2D noise vector field.
  • radialWarp() to PGS_Morphology. Warps a shape by displacing vertices along a line between each vertex and the shape centroid.
  • Expand PGS_Conversion to support conversion between:
    • TRIANGLES PShape➜JTS MultiPolygon
    • QUADS PShape➜JTS MultiPolygon

Fixed

  • Issue with negative rotation values in PGS_Transformation.rotateAroundCenter().

1.1.1 (2021-07-28)

Added

  • voronoiCells() to PGS_Voronoi. Generates Voronoi diagrams from shapes or point sets, outputting the diagram as polygonal cells (rather than lines only, as before).
  • Additional method signature for voronoiDiagram() that accepts a list of points (rather than PShapes only, as before).
  • findContainedPoints() to PGS_ShapePredicates. Tests each point in a given point set whether it is contained in a shape, returning only those points that are contained.

Changed

  • Constrained Voronoi diagrams are now constrained to envelope of input shape, rather than a arbitrarily large area.
  • Refactored List<PVector> method arguments to Collection<PVector> where possible.

Fixed

  • generateRandomPoints() no longer skips over small subsections of shapes when generating random points.

1.1.0 (2021-06-13)

Added

  • PGS_CirclePacking — a class for circle packings of shapes, subject to varying constraints and patterns of tangencies
  • closestPointPair() to PGS_Optimisation. Efficiently computes the closest pair of points in a set of points.
  • farthestPointPair() to PGS_Optimisation. Efficiently computes the farthest pair of points in a set of points.
  • chaikinCut() to PGS_Morphology. Smoothes shapes via iterated corner cuts.
  • createHeart() to PGS_Construction. Generates heart-shaped PShapes.
  • urquhartFaces() to PGS_Triangulation. Tessellates a triangulation into polygons corresponding to the faces of an Urquhart graph.
  • gabrielFaces() to PGS_Triangulation. Tessellates a triangulation into polygons corresponding to the faces of an Gabriel graph.
  • Additional method signature for earCutTriangulation() accepts a PShape argument (previously it accepted a list of points only)
  • Additional method signature for generateRandomPoints() that accepts a random seed.
  • Additional method signature for each of the existing 3 Delaunay Triangulation methods, accepting a collection of points only.
  • Expand PGS_Conversion to support conversion between:
    • PATH PShape⟷JTS LineString
    • POINTS PShape⟷JTS MultiPoint
    • LINES PShape⟷JTS MultiLineString

Changed

  • Split PGS_Processing.concaveHull() into concaveHullDFS() and concaveHullBFS() (the method previously used the BFS approach only).
  • Compute (rather than ignore) circle sites of radius 0 (these are effectively points) in PGS_Voronoi.voronoiCirclesDiagram()
  • Replaced the algorithm used by PGS_Processing.generateRandomPoints() with a triangulation-based approach. The new approach is ~10x faster!
  • Renamed delaunayTriangulationTin() to delaunayTriangulationMesh().
  • Renamed poissonTriangulation() to poissonTriangulationPoints() (the method of the same original name now outputs a PShape).

Fixed

  • Error when concaveHull2() was called with alpha > 1.
  • Concave hull methods no longer mutate the input point set.
  • PShapes marked as closed and having less than 3 vertices could cause an error during conversion (#22).
  • PGS_Conversion.toPVector() now handles primitive PShapes
  • Constrained Delaunay triangulations now respect shape holes

Removed

  • PGS_Processing.concaveHull() (see Changed)

1.0.0 (2021-05-06)