Conversation
*Total -- 13,929.32kb -> 10,699.55kb (23.19%) /resources/point_set/removeWithinDistance.gif -- 1,596.90kb -> 292.94kb (81.66%) /resources/tiling/islamic.png -- 71.85kb -> 23.52kb (67.27%) /resources/meshing/spiralQuadrangulation.gif -- 82.89kb -> 30.83kb (62.8%) /resources/geometry_processing/perimeterExtract.gif -- 197.55kb -> 74.82kb (62.12%) /resources/meshing/quadrangulation.png -- 449.05kb -> 247.77kb (44.82%) /resources/meshing/ecQuadrangulation.png -- 376.21kb -> 238.42kb (36.62%) /resources/tiling/rectSubdivision.png -- 9.67kb -> 6.16kb (36.28%) /resources/tiling/randomSubdivision.png -- 310.30kb -> 198.93kb (35.89%) /resources/meshing/centroidQuadrangulation.png -- 366.28kb -> 235.57kb (35.69%) /resources/tiling/triangleSubdivision.png -- 398.42kb -> 258.00kb (35.25%) /resources/tiling/penrose.png -- 119.07kb -> 77.18kb (35.18%) /resources/tiling/doyeSpiral2.png -- 358.24kb -> 244.52kb (31.74%) /resources/examples/voronoiCutout.png -- 433.89kb -> 296.69kb (31.62%) /resources/geometry_processing/partition.png -- 132.75kb -> 91.95kb (30.73%) /resources/tiling/hex.png -- 153.51kb -> 111.56kb (27.33%) /resources/examples/leafColoring.png -- 120.66kb -> 95.29kb (21.03%) /resources/tiling/doyeSpiral1.png -- 122.03kb -> 98.24kb (19.49%) /resources/examples/spiralOutline.png -- 189.44kb -> 155.18kb (18.09%) /resources/morphology/morph.gif -- 1,480.94kb -> 1,255.00kb (15.26%) /resources/pgs/fermatSpiral.gif -- 3,066.72kb -> 2,930.90kb (4.43%) /resources/pgs/spiral.gif -- 3,892.92kb -> 3,736.08kb (4.03%) Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
*Total -- 4,837.53kb -> 4,242.59kb (12.3%) /resources/morphology/slivers.gif -- 45.13kb -> 24.70kb (45.26%) /resources/morphology/snapHull.gif -- 504.86kb -> 338.11kb (33.03%) /resources/morphology/polyHull.gif -- 1,452.26kb -> 1,199.75kb (17.39%) /resources/morphology/reducePrecision.gif -- 106.47kb -> 100.33kb (5.77%) /resources/segment_set/parallel.gif -- 2,728.81kb -> 2,579.70kb (5.46%) Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
|
Kudos, SonarCloud Quality Gate passed!
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.









Added
Classes
PGS_Hull— a dedicated class for convex and concave hulls of polygons and point sets.PGS_SegmentSet— a class that generates random sets of non-intersecting line segments.Methods
equalPartition()toPGS_Processing. Partitions a shape into N approximately equal area polygons.trapezoidPartition()toPGS_Processing. Partitions a shape into axis-aligned trazepoids.fromChildren()toPGS_Conversion. Creates a single GROUP parent shape from a list of child shapes.WKTandWKBconversion methods toPGS_Conversion. Converts PShapes to and from their Well-Known Text / Well-Known Binary representation.Encoded Polylineconversion methods toPGS_Conversion. Converts PShapes to and from a Google Encoded Polyline representation.GeoJSONconversion methods toPGS_Conversion. Converts PShapes to and from a GeoJSON representation.toJava2D()andfromJava2D()toPGS_Conversion. Converts PShapes to and from Java2D/java.awt shape objects.originScale()toPGS_Transformation. Scales a shape relative to the origin (0, 0).resizeByWidth()andresizeByHeight()toPGS_Transformation. Resizes a shape to a given width/height, whilst resizing the height/width to maintain the original aspect ratio.resizeByMajorAxis()toPGS_Transformation. Resizes a shape (based on the longest axis of its envelope) to a given size.translateEnvelopeTo()andtranslateCornerTo()toPGS_Transformation. These methods translate a shape based on its envelope.GENETIC, which finds a coloring via a genetic algorithm.toGraph()toPGS_Conversion. Converts a shape to a (jGraphT) graph, representing its dual-graph (this method was previously private).fromGraph()toPGS_Conversion. Converts a (jGraphT) graph to a shape, using a Force-Directed placement algorithm.sphericity(),elongation()andmaximumInteriorAngle()toPGS_ShapePredicates.findContainingShape()toPGS_ShapePredicates. Finds the child shape in a GROUP shape that contains a query point.overlap()toPGS_ShapePredicates. Measures the degree of mutual overlap between two shapes.equalsExact(),equalsNorm()andequalsTopo()toPGS_ShapePredicates. These methods test for equality between two shapes according to different criteria.createRectangularSpiral()toPGS_Construction. Creates a rectangular-shaped spiral.createBlobbie()toPGS_Construction. Creates a "blob"-like shape.largestEmptyCircle()toPGS_Optimisation. Finds the largest empty circle in a set of obstacle geometries.hilbertSort()toPGS_PointSet. Sorts a list of points according to their location on a Hilbert curve.tangentAngle()toPGS_Processing. Finds the angle a the line tangent to a shape at a certain point on its perimeter.variableBuffer()toPGS_Morphology. Buffers a shape with a buffer whose distance varies along the shape's perimeter.toGraph()andtoDualGraph()toPGS_Triangulation. Converts a triangulation mesh to a direct, or dual, (jGraphT) graph representation.chordalAxis()toPGS_Contour. Finds the chordal axis (a type of skeleton) of a shape.tangencyPack()toPGS_CirclePacking. Generates a circle packing having a pattern of tangencies specified by a triangulation.PGS_Construction.poissonN()toPGS_PointSet. Produces as Poisson distribution having exactly N points.removeHiddenLines()toPGS_Processing. Removes hidden lines from a set of overlapping/occluded polygons.relativeNeighborFaces()toPGS_Meshing. Finds the relative neighbour faces of a triangulation.spannerFaces()toPGS_Meshing. Finds the relative neighbour faces of a greedy sparse spanner of a triangulation.minimumSpanningTree()toPGS_PointSet. Finds the Euclidean minimum spanning tree of a set of points.repulsionPack()toPGS_CirclePacking. Generates a circle packing of a shape via iterative pair-repulsion.simplifyDCE()toPGS_Morphology. Simplifies a shape using Discrete Curve Evolution.compoundVoronoi()toPGS_Voronoi. Creates a Voronoi diagram for a set of disjoint shapes.buffer()that accepts a buffer style parameter.offsetCurvesInward()that accepts a curves number parameter.intersectMesh()andsubtractMesh()toPGS_ShapeBoolean. Performs the associated boolean operations on mesh-like shapes, preserving individual faces during the operation (rather than dissolving remaining elements).dilationErosion()toPGS_Morphology. Applies a positive followed by a negative buffer (in a single operation).eliminateSlivers()toPGS_Processing. Removes narrow areas ("slivers") from a shape.reducePrecision()toPGS_Morphology. Reduces the precision of a shape, whilst ensuring the output shape is valid.distanceField()toPGS_Contour. Generates a contour map based on a distance field of a shape.hatchSubdivision()toPGS_Tiling. Randomly subdivides the plane into equal-width strips having varying lengths.squareTriangleTiling()toPGS_Tiling. Generates a non-periodic tiling, comprising squares and equilateral triangles.cleanCoverage()toPGS_Processing. Removes gaps and overlaps from meshes/polygon collections.sineWarp()toPGS_Morphology. Warps/perturbs a shape by displacing vertices according to a sine wave following the perimeter.hilbertSortFaces()toPGS_Optimisation. Sorts the faces of a GROUP shape according to hilbert curve index of each face's centroid coordinate.Changed
PGS_ProcessingtoPGS_Hull.partition()toconvexPartition().PGS_Conversion.fromPShape()(a major method used internally) now applies any shape affine transformations (such asrotate(),scale(),translate()) to the resulting geometry.earCutTriangulation()now uses JTS' implementation which supports inputs with holes.PGS_Morphology.smoothGaussian()now uses a higher default resolution.PGS_Contour.straightSkeleton()now supports multi-polygonal inputs and outputs faces (in addition to bones and branches, as before).PGS_Contour.straightSkeleton()uses a different implementation that is ~50x faster!maximumInscribedRectangle()tomaximumInscribedAARectangle()("axis-aligned").PGS_Optimisation.maximumInscribedRectangle()now finds the maximum-area inscribed rectangle of arbitrary orientation.PGS_Transformation.touchScale()now scales shapes that are contained within a larger shape.PGS_CirclePacking.maximumInstribedPack(). New algorithm is perfectly accurate and is ~10x faster!PGS_Conversion.fromPVector()now outputs an unclosed path shape if the input vertices are unclosed (rather than always treating the input as a closed polygon).PGS_Transformation.resize()now resizes a shape with respect to its center.PGS_Morphology.smoothGaussian()now supports polygons with holes.PGS_PointSet.poisson(). New algorithm is faster and produces better quality point set outputs.PGS_Conversion()(such assetAllFillColor()) now return the (mutated) input (rather than beingpublic void), to help method chaining.snapHull()now uses a JTS-based implementation which improves the range of output and meaningfulness of the snap parameter (now 0...1).PGS_ShapePredicates()now outputdouble.Fixed
createShape()in the P2D renderer were passed tofromPShape()(PGS_Processing.slice()returns nullpointer exception inP2Drender mode #55).slice()would sometimes fail to return some rectangular slices on a concave input (and it's more robust too now).point(s)OnExterior()methods.PFonts).fromPShape()now properly converts singular shapes consisting of multiple contours that in turn represent multiple polygons (Conversion: handle multi-contour/shape PShapes #67). (Note boolean flagHANDLE_MULTICONTOURshould be toggled to enabled this feature).createShape(TRIANGLE).edgeCollapseandcentroidquadrangulation methods now respect shape/triangulation holes.Removed
earCutTriangulation(List<PVector> points)fromPGS_Triangulation.isolinesFromGrid()fromPGS_Contour(dependency too large).voronoiCirclesDiagram()fromPGS_Voronoi(achieved bycompoundVoronoi()).voronoiCells()fromPGS_Voronoi(replaced byinnerVoronoi()).voronoiDiagram(IncrementalTin tin)fromPGS_Voronoi.