Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PGS 2.0 (Java 17) #94

Merged
merged 52 commits into from
Jan 11, 2025
Merged

PGS 2.0 (Java 17) #94

merged 52 commits into from
Jan 11, 2025

Conversation

micycle1
Copy link
Owner

@micycle1 micycle1 commented Jul 30, 2023

Added

  • findShortestTour() to PGS_PointSet. Computes an approximate Traveling Salesman path for a set of points.
  • 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().
  • Additional method signature for PGS_Morphology.variableBuffer() that accepts a callback function to define the buffer value at each vertex.
  • boundsCenter() to PGS_Transformation. Computes the center of the bounding box of a shape.
  • Additional method signature for delaunayTriangulation(points) that supports a boundary constraint.
  • fix() to PGS_Processing. Attempts to fix shapes with invalid geometry.
  • Additional method signature for frontChainPack() that accepts a random seed.
  • isClockwise() to PGS_ShapePredicates. Determines if the vertices of the specified shape form a clockwise loop.
  • extractInnerVertices() to PGS_Meshing. Extracts all inner vertices from a mesh.
  • thomasClusters() to PGS_PointSet. Generates random points having clustered properties using the Thomas Point Process.
  • 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).
  • apply() and applyWithIndex()* to PGS_Processing. Applies a specified function to each child of the given PShape (*additionally with child's index).
  • toContours() to PGS_Conversion. Extracts the contours from a POLYGON or PATH PShape, represented as lists of PVector points.
  • segmentsOnExterior() to PGS_Processing. Extracts evenly spaced dashed line segments along the perimeter of a shape.
  • multiplicativelyWeightedVoronoi() to PGS_Voronoi . Generates a Multiplicatively Weighted Voronoi Diagrams diagram for a set of weighted sites.
  • applyRandomWeights() to PGS_PointSet. Applies random weights within a specified range to a list of points.
  • findContainingFace() to PGS_Meshing. Finds the single face from the mesh that contains the query point.
  • findBreaks() to PGS_Meshing. Returns the locations of invalid mesh face boundary segments if found.
  • pinchWarp() to PGS_Morphology. Applies a pinch warping effect to a shape, distorting vertices towards a specified point.

Changes

  • Packed circles from PGS_CirclePacking.stochasticPack() will now always lie within shape bounds.
  • PGS_Processing.pointsOnExterior() methods now respect GROUP shapes and holes (inner rings) and will populate them with points.
  • PGS_Morphology.simplifyDCE() now supports GROUP shapes and polygon holes.
  • PGS_Morphology.interpolate() is much faster on shapes with many vertices.
  • Removed superfluous height argument from PGS.createSupercircle() method signature.
  • Renamed fromPVector(shell, holes) in PGS_Conversion to fromContours(shell, holes).
  • Moved PGS_Processing.cleanCoverage() to PGS_Meshing and renamed to fixBreaks().

Fixed

  • urquhartFaces(), relativeNeighborFaces(), gabrielFaces() and spannerFaces() from PGS_Meshing now preserve holes from the input.
  • The output of PGS_Morphology.smoothGaussian() is no longer (slightly) affected by the vertex ordering of the input.
  • The transform and reference arguments for PGS_Transformation.align() were the wrong way round.

Removed

  • 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.

@micycle1 micycle1 added the enhancement New feature or request label Jan 27, 2024
@micycle1 micycle1 self-assigned this Feb 18, 2024
Copy link

Quality Gate Passed Quality Gate passed

Issues
34 New issues
0 Accepted issues

Measures
1 Security Hotspot
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

@micycle1 micycle1 marked this pull request as ready for review January 11, 2025 18:06
@micycle1 micycle1 merged commit ebfc670 into master Jan 11, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant