NEWS for 'geometry' Package

Return to the 'geometry' package

Summary of important user-visible changes for releases of the geometry package
===============================================================================
geometry-4.0.0   Release Date: 03-02-2020  Release Manager: Juan Pablo Carbajal
===============================================================================
As of this version, geometry does not contain any matgeom functionality.
It contains all the extra functions that we have been adding to geometry,
in particular matlab compatible functionality for the mapping package.

It might need that you do not need geometry anymore and instead you need to
install matgeom to get the functionality you were using.

Geometry was an attempt to port MatGeom (a geometry package developed
for Matlab) to Octave, improving docstrings and updating to octave's special
features when possible.
Over time it became almost impossible to keep geometry in sync with the
upstream developments of MatGeom.
Hence I have decided to separate matgeom from geometry.

My apologize for the troubles caused, this is the way I learn, by doing.

Moreover, the @svg class is not working anymore. I leave it in the package
but it should be considered broken. Will fix in future versions.

** Functions have been modified

   clipPolygon:
    - Accepts boolean operation as strings or as integer.
    - Accepts a box [xmin xmax ymin ymax] as clipping polygon.

** Added Functions

   drawFilledPolygon

===============================================================================
geometry-3.0.0   Release Date: 27-03-2017  Release Manager: Juan Pablo Carbajal
===============================================================================
This version of the package is not backward compatible for the following
reasons:

** Functions have changed their name

   beltproblem      --> beltProblem
   closed_path      --> closedPath
   shapearea        --> shapeArea
   shapecentroid    --> shapeCentroid
   shapeplot        --> plotShape
   shapetransform   --> transformShape
   simplifypolygon  --> simplifyPoligon
   simplifyPolyline --> simplifyPolyline

** Functions that are in GNU Octave core since 4.0.1

   rad2deg deg2rad

** Added Functions

   isAxisHandle isPolygonCCW isPolygonCW_Clipper joinPolygons polygon2patch
   orientPolygon boundedVoronoi2d drawGraphEdges clipGraph grAdjacentEdges
   grAdjacentNodes grEdgeLengths centroidalVoronoi2d clipGraphPolygon
   cvtUpdate intersectEdgePolygon intersectLinePolygon isPointInPolygon
   polygonBounds polygonContains convexHull minimumCaliperDiameter
   grShortestPath drawNodeLabels nndist createRotation3dLineAngle drawPlane3d
   rotation3dAxisAndAngle boxToMesh checkMeshAdjacentFaces
   clipConvexPolyhedronHP clipMeshVertices createDodecahedron
   createDurerPolyhedron createIcosahedron createMengerSponge createOctahedron
   createRhombododecahedron createSoccerBall createTetrahedron
   createTetrakaidecahedron cylinderMesh drawFaceNormals drawPolyhedron
   ellipsoidMesh faceCentroids faceNormal intersectLineMesh3d intersectPlaneMesh
   mergeCoplanarFaces meshAdjacencyMatrix meshDihedralAngles meshEdgeFaces
   meshEdgeLength meshEdges meshFace meshFaceAdjacency meshFaceEdges
   meshFaceNumber meshFacePolygons meshSurfaceArea meshVolume minConvexHull
   polyhedra polyhedronCentroid polyhedronMeanBreadth polyhedronNormalAngle
   polyhedronSlice readMesh_off removeMeshVertices smoothMesh sphereMesh
   steinerPolytope subdivideMesh surfToMesh tetrahedronVolume torusMesh
   triangulateFaces trimMesh trimeshEdgeFaces trimeshMeanBreadth
   trimeshSurfaceArea vertexNormal distancePoints clipLine3d
   drawLine3d eulerAnglesToRotation3d intersectLineSphere linePosition3d
   recenterTransform3d transformLine3d transformVector3d intersectPolylines
   clipPolyline clipPolyline_clipper clipPolygon clipPolygon_clipper

** Improved Functions

  drawPolygon is more efficent when drawing polygons in cells and now it takes
              an axis handle as first argument (optional). Added demo and tests

  intersectEdges accepts tolerance as third argument

  polygon2patch demo fixed, missing third argument for patch.

===============================================================================
geometry-2.1.1   Release Date: 2016-03-24  Release Manager: Juan Pablo Carbajal
===============================================================================

** Added Functions

   fillPolygon  rectAsPolygon

** Improved Functions

  drawShape was not working due to missing functions. they have all been added
  now.

==============================================================================
geometry-2.1.0   Release Date: 2016-02-04  Release Manager: Juan Pablo Carbajal
===============================================================================

** Added Functions

   projPointOnPolyline: the function is added for compatibility, but it is just
                        a wrapper of distancePointPolyline.
   findClosestPoint


** Improved Functions
  distancePointPolyline is now updated with a spee dup of 100x. It also calculates
                        the projections, so projPointOnPolyline is obsolete.

===============================================================================
geometry-2.0.0   Release Date: 2015-04-27  Release Manager: Juan Pablo Carbajal
===============================================================================

** Geometry 2.0.0 is not compatible with versions of octave older
   than 4.0. Thi si due to inputParser being used in the functions
   curve2polyline, cov2ellipse and simplifypolyline. If you do not
   need this functions you should no problems using octave > 3.6.0

** Removed functions
   oc_polybol is not part of geomtry anymore. This function is part of
   the octclip package.

** Added Functions

   planePoint

** Bug Fixes:
  - polynomialCurveSetFit had debug entries, now removed.

** Other changes:
  - closed_path demo code was improved.

===============================================================================
geometry-1.7.0   Release Date: 2013-04-07  Release Manager: Juan Pablo Carbajal
===============================================================================

** Added Functions

   box3dVolume   cart2cyl   circle3dPoint   cyl2cart
   drawCircle3d   drawPoint3d   createScaling3d   drawCube
   createCube drawSphericalTriangle   drawTorus   revolutionSurface
   drawVector3d   spheres   drawPolyline   drawPolynomialCurve
   polynomialCurveCentroid    polynomialCurveDerivative
   polynomialCurveFit   polynomialCurvePoint   polynomialCurveSetFit
   polygonPoint polygonSubcurve

** Bug Fixes:
  - cov2ellipse  scale and orientation of axis.

===============================================================================
geometry-1.6.0   Release Date: 2012-10-12  Release Manager: Juan Pablo Carbajal
===============================================================================
** geometry doesn't autoloads anymore

** Added Functions

  anglePoints3d   angles3d   boxes3d   geom3d_Contents
  lines3d   planes3d   points3d   polygons3d   vectors3d
  graphs_Contents   meshes3d_Contents   angleSort3d   createPlane
  intersectLinePlane   normalizePlane   planeNormal   planePosition
  projPointOnPlane   sph2cart2   vectorAngle3d   distancePointLine3d
  cart2sph2d   createRotationOx   createRotationOy   createRotationOz
  createTranslation3d   drawAxis3d   drawCylinder   drawSphere
  polygonArea3d   transformPoint3d   drawBox3d   drawEdge3d   drawMesh
  createCubeOctahedron   boundingBox3d   cart2sph2   circle3dOrigin
  circle3dPosition   drawCircleArc3d   drawPolygon3d   drawSphericalEdge
  drawSphericalPolygon   intersectPlaneSphere   sph2cart2d

** Updated functions
  distancePoints

** Bug Fixes:
  - drawArrow  was not working due to porting errors.

===============================================================================
geometry-1.5.0   Release Date: 2012-06-05  Release Manager: Juan Pablo Carbajal
===============================================================================

* Added functions:
 - cov2ellipse  & ellipse2cov: transform between ellipses and covariances matrices.

 - beltproblem  : Finds the four lines tangent to two circles with given centers and
    radii. This is the solution to  the belt problem in 2D.

 - curveval : Evaluates a polynomial curve defined as a 2-by-N matrix.

 - curve2polyline : Converts a polynomial curve into a polyline by the adaptive
                sampling method.

 - simplifypolyline :  Ramer-Douglas-Peucker algorithm to simplify polylines.

 - parametrize : Estimate a parametrization of a polygon/line based on the distance
             between the points.

 - curvature : Estimation of the curvature of a polygon/line based on polynomial
            approximation.

 - reversePolygon  and reversePolyline : reverse the orders of the points in
                                 of polygon/line.

 - supportFunction : Compute support function of a polygon.

 - distancePointPolygon , distancePointPolyline , distancePolygons  ,
   expandPolygon , medialAxisConvex , polygonLoops , polygonSelfIntersections
   polylineSelfIntersections , splitPolygons

 - close_path  : given a set of points in the plane calculate a piecewise linear
              simple path that passes through all points.

* Changed functions:
 - distancePointEdge : Now the function computes the distance between all points
                  and all edges. A third optional argument provides
                  backward compatibility.

* Solved bugs:
 - simplifypolygon  returned empty polygons when points are repeated, i.e when
  the polygon is not correctly formed.
 - Removed installation warnings.

===============================================================================
geometry-1.4.1   Release Date: 2012-03-24  Release Manager: Juan Pablo Carbajal
===============================================================================

* Renamed functions
 - Contents  renamed to geom2d_Contents to avoid clashes.

* Deprecated functions
 - svgload, svgnormalize, svgpath2polygon: Use the methods in class svg.

* Bug fixes
 - @svg/path2polygon
 - Fix addpath/rmpath installation warnings
 - Fix octclip/src/Makefile
 - Fix shapecentriod  for piece-wise polynomial shapes.

* Known issues
 - simplifypolygon  returns empty polygons when points are repeated, i.e when
  the polygon is not correctly formed.


===============================================================================
geometry-1.4.0   Release Date: 2012-01-25   Release Manager: Juan Pablo Carbajal
===============================================================================

* Added basic geometric graphs creation and manipulation.


===============================================================================
geometry-1.3.0   Release Date: 2011-11-24   Release Manager: Juan Pablo Carbajal
===============================================================================

* Geometry merged with octCLIP.
* Geometry autoloads.

===============================================================================
geometry-1.2.2   Release Date: 2011-11-04   Release Manager: Juan Pablo Carbajal
===============================================================================

* Improved SVG interface. Thanks to jwe and carandraug.
* Adding files to manipulate and convert 2D shapes defined with smooth
  polynomials.

 shape2polygon
 shapearea
 shapecentroid
 shapeplot
 shapetransform

* Inverted the order in the NEWS file. New entries are on top.

===============================================================================
geometry-1.2.1   Release Date: 2011-11-02   Release Manager: Juan Pablo Carbajal
===============================================================================

* Adding SVG object and demo for data2geom (converting SVG to msh format)

===============================================================================
geometry-1.2.0   Release Date: 2011-10-21   Release Manager: Juan Pablo Carbajal
===============================================================================

* All geom2d added
 createCircle
 createDirectedCircle
 createEdge
 medianLine
 Contents
 bisector
 cartesianLine
 drawArrow
 edges2d
 lines2d
 orthogonalLine
 parallelLine
 projPointOnLine
 drawCenteredEdge
 drawCircle
 drawCircleArc
 drawEllipse
 drawEllipseArc
 drawLabels
 drawOrientedBox
 drawParabola
 drawRect
 drawShape
 circles2d
 ellipses2d
 createVector
 inertiaEllipse
 changelog.txt
 readme.txt
 hexagonalGrid
 squareGrid
 triangleGrid
 intersectCircles
 intersectEdges
 intersectLineCircle
 isLeftOriented
 isPointInCircle
 isPointInEllipse
 isPointOnCircle
 isPointOnLine
 edgeLength
 edgePosition
 edgeToLine
 circleArcAsCurve
 circleAsPolygon
 crackPattern
 crackPattern2
 distancePointEdge
 distancePointLine
 ellipseAsPolygon
 enclosingCircle
 radicalAxis
 reverseEdge
 reverseLine

===============================================================================
geometry-1.1.3   Release Date: 2011-10-13   Release Manager: Juan Pablo Carbajal
===============================================================================

* Continue to add geom2d from matGeom (transforms and points2d)
 createBasisTransform
 createHomothecy
 createLineReflection
 createRotation
 createScaling
 createTranslation
 transformPoint
 transforms2d
 fitAffineTransform2d
 transformEdge
 transformLine
 centroid
 distancePoints
 midPoint
 polarPoint
 drawPoint
 isCounterClockwise
 minDistancePoints
 pointOnLine
 points2d
 intersectLineEdge
 isPointOnEdge

===============================================================================
geometry-1.1.2   Release Date: 2011-10-09   Release Manager: Juan Pablo Carbajal
===============================================================================

* Continue to add geom2d from matGeom (rays and vectors)
 createRay
 drawEdge
 drawRay
 isParallel
 isPerpendicular
 isPointOnRay
 normalizeVector
 rays2d
 rotateVector
 transformVector
 vectorNorm
 vectors2d

===============================================================================
geometry-1.1.1   Release Date: 2011-10-06   Release Manager: Juan Pablo Carbajal
===============================================================================

* Continue to add geom2d from matGeom (boxes and clips)
 cbezier2poly
 boxes2d
 clipEdge
 clipLine
 clipPoints
 drawBezierCurve
 drawBox
 clipRay
 intersectBoxes
 intersectLines
 linePosition
 mergeBoxes
 randomPointInBox
 drawLine

===============================================================================
geometry-1.1.0   Release Date: 2011-10-04   Release Manager: Juan Pablo Carbajal
===============================================================================

* Starting to add geom2d from matGeom
 angle2Points
 angle3Points
 angleAbsDiff
 angleDiff
 angles2d
 angleSort
 createLine
 deg2rad
 edgeAngle
 lineAngle
 normalizeAngle
 rad2deg
 vectorAngle

===============================================================================
geometry-1.0.1   Release Date: 2011-09-27   Release Manager: Juan Pablo Carbajal
===============================================================================

Improvements to the docstrings of all functions.

===============================================================================
geometry-1.0.0   Release Date: 2011-09-26   Release Manager: Juan Pablo Carbajal
===============================================================================

** First official release.

===============================================================================

Package: geometry