You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: CHANGELOG.md
+43
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,49 @@ All notable changes to PGS will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Dates are *YYYY-MM-DD*.
7
7
8
+
## **2.0***(2024-08-xx)*
9
+
10
+
**NOTE: Beginning at v2.0, PGS is built with Java 17.**
11
+
12
+
### Added
13
+
*`findShortestTour()` to `PGS_PointSet`. Computes an <i>approximate</i> Traveling Salesman path for a set of points.
14
+
*`pruneSparsePoints()` to `PGS_PointSet`. Prunes a list of points by removing points that are considered not sufficiently dense (far away from their nearest neighbours); a counterpart to `prunePointsWithinDistance()`.
15
+
* Additional method signature for `PGS_Morphology.variableBuffer()` that accepts a callback function to define the buffer value at each vertex.
16
+
*`boundsCenter()` to `PGS_Transformation`. Computes the center of the bounding box of a shape.
17
+
* Additional method signature for `delaunayTriangulation(points)` that supports a boundary constraint.
18
+
*`fix()` to `PGS_Processing`. Attempts to fix shapes with invalid geometry.
19
+
* Additional method signature for `frontChainPack()` that accepts a random seed.
20
+
*`isClockwise()` to `PGS_ShapePredicates`. Determines if the vertices of the specified shape form a clockwise loop.
21
+
*`extractInnerVertices()` to `PGS_Meshing`. Extracts all inner vertices from a mesh.
22
+
*`thomasClusters()` to `PGS_PointSet`. Generates random points having clustered properties using the Thomas Point Process.
23
+
*`transform()` and `transformWithIndex()`* to `PGS_Processing`. Applies a specified transformation function to each child of the given PShape and returns a new PShape containing the transformed children (*additionally with child's index).
24
+
*`apply()` and `applyWithIndex()`* to `PGS_Processing`. Applies a specified function to each child of the given PShape (*additionally with child's index).
25
+
*`toContours()` to `PGS_Conversion`. Extracts the contours from a POLYGON or PATH PShape, represented as lists of PVector points.
26
+
*`segmentsOnExterior()` to `PGS_Processing`. Extracts evenly spaced dashed line segments along the perimeter of a shape.
27
+
*`multiplicativelyWeightedVoronoi()` to `PGS_Voronoi `. Generates a Multiplicatively Weighted Voronoi Diagrams diagram for a set of weighted sites.
28
+
*`applyRandomWeights()` to `PGS_PointSet`. Applies random weights within a specified range to a list of points.
29
+
*`findContainingFace()` to `PGS_Meshing`. Finds the single face from the mesh that contains the query point.
30
+
*`findBreaks()` to `PGS_Meshing`. Returns the locations of invalid mesh face boundary segments if found.
31
+
*`pinchWarp()` to `PGS_Morphology`. Applies a pinch warping effect to a shape, distorting vertices towards a specified point.
32
+
33
+
### Changes
34
+
* Packed circles from `PGS_CirclePacking.stochasticPack()` will now always lie within shape bounds.
35
+
*`PGS_Processing.pointsOnExterior()` methods now respect GROUP shapes and holes (inner rings) and will populate them with points.
36
+
*`PGS_Morphology.simplifyDCE()` now supports GROUP shapes and polygon holes.
37
+
*`PGS_Morphology.interpolate()` is much faster on shapes with many vertices.
38
+
* Removed superfluous `height` argument from `PGS.createSupercircle()` method signature.
39
+
* Renamed `fromPVector(shell, holes)` in `PGS_Conversion` to `fromContours(shell, holes)`.
40
+
* Moved `PGS_Processing.cleanCoverage()` to `PGS_Meshing` and renamed to `fixBreaks()`.
41
+
42
+
### Fixed
43
+
*`urquhartFaces()`, `relativeNeighborFaces()`, `gabrielFaces()` and `spannerFaces()` from `PGS_Meshing` now preserve holes from the input.
44
+
* The output of `PGS_Morphology.smoothGaussian()` is no longer (slightly) affected by the vertex ordering of the input.
45
+
* The `transform` and `reference` arguments for `PGS_Transformation.align()` were the wrong way round.
46
+
47
+
### Removed
48
+
*`simplifyDCE(shape, targetNumVertices)` and `simplifyDCE(shape, vertexRemovalFraction)` in favour a single method that accepts a user-defined termination callback that is supplied with the current vertex candidate's coordinate, relevance score, and the number of vertices remaining.
0 commit comments