Skip to content

Releases: mattools/matGeom

MatGeom 1.2.8

23 Jul 13:12
Compare
Choose a tag to compare

MatGeom is a library for geometry processing / geometric computing with Matlab. It contains several hundreds of functions for the creation, the manipulation and the display of 2D and 3D geometries such as point sets, lines, polygons, 3D meshes, ellipses...

Installation

You can follow one of these procedures (from the simplest one to the most technical):

  • From Matlab's "Add-Ons" menu, choose "GetAdd-Ons....", and look for MatGeom. Then simply install or update the toolbox.
  • Download the file self-installable "matGeom-1.2.8.mltbx" from the release, and run it from Matlab.
  • Download one of the "matGeom-1.2.8.zip" or "matGeom-full-1.2.8.zip" file (that also contains demo scripts and unit test). Uncompress in the directory of your choice. Then, open Matlab, set the path to the directory containing the script "setupMatGeom", and run the script. This should install the main files of the library.

New features in 1.2.8

The 1.2.8 feature is mostly a consolidation and documentation release.

  • geom2d: function polylinePoint now accepts 3D polylines as input (thanks to gfrossilva)
  • geom2d: added function edgePoint (thanks to gfrossilva) and linePoint
  • geom2d: updated drawArrow function (thanks to stoneFriable999)
  • geom3d: added registerPoints3d and registerPoints3d_icp functions (thanks to oqilipo)
  • geom3d: added function projPointOnPolyline3d (thanks to gfrossilva)
  • geom3d: added functions line3dPoint and line3dPosition
  • meshes3d: added bunny_F1k.ply and bunny_F5k.ply sample meshes
  • meshes3d: refactored readMesh_ply
  • meshes3d: added meshVertexRing function
  • meshes3d: renamed meshComplement.m to reverseMeshFaceOrientation.m
  • meshes3d: added meshEquivalentEllipsoid.m
  • lots of updates in user manual, including a general index in addition to the function index

MatGeom 1.2.7

20 Dec 11:25
Compare
Choose a tag to compare

MatGeom is a library for geometry processing / geometric computing with Matlab. It contains several hundreds of functions for the creation, the manipulation and the display of 2D and 3D geometries such as point sets, lines, polygons, 3D meshes, ellipses...

Installation

You can follow one of these procedures (from the simplest one to the most technical):

  • From Matlab's "Add-Ons" menu, choose "GetAdd-Ons....", and look for MatGeom. Then simply install or update the toolbox.
  • Download the file self-installable "matGeom-1.2.7.mltbx" from the release, and run it from Matlab.
  • Download one of the "matGeom-1.2.7.zip" or "matGeom-full-1.2.7.zip" file, and uncompress in the directiory of your choice. Then, open Matlab, set the path to the directory containing the script "setupMatGeom", and run the script. This should install the main files of the library.

New features in 1.2.7

Version 1.2.7 is mostly a consolidation and cleanup version, containing several changes in function names. Several new functions and bug fixes are included as well.

New features

  • Several new functions for mesh processing: clipMeshByPlane.m, removeDuplicateVertices.m, meshBoundaryEdges.m, removeUnreferencedVertices.m, thanks to oqilipo
  • meshes3d/intersectPlaneMesh.m now supports intersections with open meshes
  • added function distancePointCircle3d.m
  • enhance reading of 3D meshes with OBJ format

Bug fixes

  • geom2d/intersectEdges.m: fixed management of colinear edges (bug #157)
  • fixed drawing of multiple shapes with single call to drawXXX function (in both geom2d and geom3d modules)
  • fixed fillPolygon (thanks to oqilipo)
  • removed several obsolete functions to avoid function name clashes

Documentation

  • Huge effort of documentation homogeneization, especially in function headers and function names, thanks to oqilipo
  • Several updates in the user manual

Full Changelog (from v1.2.6): v1.2.6...v1.2.7

MatGeom 1.2.6

04 Apr 13:31
5aa3a1b
Compare
Choose a tag to compare

MatGeom is a library for geometry processing / geometric computing with Matlab. It contains several hundreds of functions for the creation, the manipulation and the display of 2D and 3D geometries such as point sets, lines, polygons, 3D meshes, ellipses...

Installation

You can follow one of these procedures (from the simplest one to the most technical):

  • From Matlab's "Add-Ons" menu, choose "GetAdd-Ons....", and look for MatGeom. Then simply install or update the toolbox.
  • Download the file self-installable "matGeom-1.2.6.mltbx" from the release, and run it from Matlab.
  • Download one of the "matGeom-1.2.6.zip" or "matGeom-1.2.6-full.zip" file, and uncompress in the directiory of your choice. Then, open Matlab, set the path to the directory containing the script "setupMatGeom", and run the script. This should install the main files of the library.

New features in 1.2.6

  • added several functions for computations with ellipses: createEllipse.m, fitEllipse.m, ellipseCartesianCoefficients.m, distancePointEllipse.m, transformEllipse, drawEllipseAxes, and projPointOnEllipse.m
  • added functions polylineCurvature.m, polygonToPolyshape and padPolyline.m
  • added functions transformCircle3d.m
  • added function triangulatePolygonPair3d.m (more general that former triangulatePolygonPair)
  • added function readMesh_obj
  • several functions were improved for numerical stability and management of less common cases
  • a huge work was made to standardize header files and display functions (thanks to oqilipo!)
  • user manual was largely extended

Full Changelog (from v1.2.3): v1.2.5...v1.2.6

MatGeom Release 1.2.5

28 Feb 15:33
Compare
Choose a tag to compare

MatGeom is a library for geometric computing with Matlab. It is organized in several modules for 2D geometry, 3D geometry, polygon processing, or mesh processing.

Installation

The file "matGeom-1.2.5.zip" contains the functions of the library. The file "matGeom-1.2.5-full.zip" additionnally contains demonstration files as well as a number of unit tests.

After decompressing, running the script "setupMatGeom" should properly install the whole library.

The file "matGeom-1.2.5.mltbx" can also be used as self-installable file for the toolbox.

New features in 1.2.4 & 1.2.5:

  • meshes3d: added meshCurvature function
  • meshes3d: added function meshVoronoiDiagram, to compute surface domains using face adjacency.
  • meshes3d/drawMesh: added management of more input arguments
  • meshes3d/intersetLineMesh3d: do not normalize normal vectors before testing they are degenerated
  • geom3d: new function clipPlane (based on drawPlane)
  • polygons2d/intersectLinePolygon: rewrite for making the function more robust to numerical accuracy
  • geom2d/circleToPolygon: add management of angular shift
  • user manual was largely extended

Deprecations:

  • removed the "polynomialCurve" module

Full Changelog (from v1.2.3): v1.2.3...v1.2.5

MatGeom release v1.2.4

08 Dec 18:36
Compare
Choose a tag to compare

MatGeom is a library for geometric computing with Matlab. It is organized is several modules for 2D geometry, 3D geometry, polygon processing, or mesh processing.

Installation

The file "matGeom-X.Y.Z.zip" contains the functions of the library. The file "matGeom-X.Y.Z-full.zip" additionnally contains demonstration files as well as a number of unit tests.

After decompressing, running the script "setupMatGeom" should properly install the whole library.

New features in 1.2.4:

  • meshes3d: added meshCurvature function
  • meshes3d: added function meshVoronoiDiagram, to compute surface domains using face adjacency.
  • meshes3d/drawMesh: added management of more input arguments
  • geom3d: new function clipPlane (based on drawPlane)

Full Changelog: v1.2.3...v1.2.4

MatGeom release v1.2.3

13 Aug 10:40
Compare
Choose a tag to compare

MatGeom is a library for geometric computing with Matlab. It is organized is several modules for 2D geometry, 3D geometry, polygon processing, or mesh processing.

Installation
The file "matGeom-X.Y.Z.zip" contains the functions of the library. The file "matGeom-X.Y.Z-full.zip" additionnally contains demonstration files as well as a number of unit tests.

After decompressing, running the script "setupMatGeom" should properly install the whole library.

This release added new functions for the management of lines and of meshes.

Added

  • (geom3d) added createRay3d
  • (geom3d) added "projPointOnCircle3d" (thanks to oqilipo)
  • (geom3D) added "projPointOnCylinder", "fitEllipse3D", "geodesicCylinder" (thanks to oqilipo)
  • (geom3d) added "isPointInEllipsoid", "isPointOnEdge3d", "intersectEdgePolygon3d"
  • (geom3d) added createRotationAboutPoint3d (thanks to oqilipo)
  • (meshes3d) added readMesh and writeMesh functions, and updated I/O functions
  • (meshes3d) added "meshSilhouette" (thanks to oqilipo)
  • (meshes3D) added intersectEdgeMesh3d.m
  • (meshes3d) added sample PLY file

Updated

  • (geom3d) drawLabels3d: improved management of input arguments
  • (geom3d) drawPlane3d: added support for drawing multiple planes at once
  • (meshes3D) vectorised version of "intersectLineMesh3d" (thanks to sven holcombe)

Others

  • removed several obsolete files, updated demos

MatGeom release v1.2.2

08 Jun 12:48
Compare
Choose a tag to compare

MatGeom is a library for geometric computing with Matlab. It is organized is several modules for 2D geometry, 3D geometry, polygon processing, or mesh processing.

Installation
The "matGeom-X.Y.Z.zip" file contains the functions of the library. The "matGeom-X.Y.Z-full.zip" additionnally contains demonstration files and unit test framework.

After decompressing, the script "setupMatGeom" should properly install the whole library.

Main changes are improvements in drawing functions, and in the management of Euler angles.

Added

  • (geom2d) added function principalAxesTransform
  • (polygons2d) added polygnSkeleton function
  • (polygons2d) added clipPolyline function
  • (graphs2d) added adjacencyListToEdges function
  • (geom3d) added function normalizeLine3d
  • (geom3d) added function fitSphere
  • (geom3d) added functions drawDome and drawCapsule
  • (geom3d) added function drawAngleBetweenVectors3d
  • (geom3d) added drawRay3d and clipRay3d
  • (meshes3d) added averageMesh function, to compute an average mesh from several mesh instances
  • (meshes3d) added meshComplement
  • (meshes3d) added function fillMeshFaces

Changed

  • (geom2d) fitAffineTransform2d: changed convention for source and target point sets
  • (polygons2d) polygonSubcurve and polylineSubcurve now also return indices of selected vertices
  • (geom3d) improvements in management of Euler Angles in rotation3dToEulerAngles and eulerAnglesToRotation3d
  • (geom3d) drawCylinder can now handle multiple cylinders as numeric arrays
  • (geom3d) several updates to drawing functions
  • (geom3d) make some vector operations more generic about dimension
  • (geom3d) fitAffineTransform3d: changed convention for source and target point sets
  • (meshes3d) reading of OFF files is now faster when faces have homogeneous number of vertices
  • (meshes3d) readMesh_ply.m: replaces error by warning

Regression

  • (geom2d) removed functions rad2deg and deg2rad, as they can be replced by Matlab native functions

MatGeom release v1.2.1

26 Sep 08:28
Compare
Choose a tag to compare

MatGeom is a library for geometric computing with Matlab. It is organized is several modules for 2D geometry, 3D geometry, polygon processing, or mesh processing.

Installation

The "matGeom-X.Y.Z.zip" file contains the functions of the library. The "matGeom-X.Y.Z-full.zip" additionnally contains demonstration files and unit test framework.

After decompressing, the script "setupMatGeom" should properly install the whole library.

New Features

This releases introduces new functions for the processing of meshes (repairing and simplification), as well as many various changes. A summary is provided into the Changelog.md file.

Added

  • (meshes3d) added meshFaceAreas.m
  • (meshes3d) added removeDuplicateFaces.m, removeMeshEars.m, ensureManifoldMesh.m
  • (meshes3d) added meshVertexClustering.m
  • (meshes3d) added functions for detection of boundary edges and vertices
  • (meshes3d) added createStellatedMesh.m
  • (geom3d) added fitAffineTransform3d and registerPoints3dAffine.m
  • (geom3d/geom2d) added principalAxes function (working for both 2D/3D points)
  • (geom3d) added function isTransform3d (thanks to oqilipo)
  • (geom3d) added function drawPlatform (thanks to oqilipo)
  • (geom3d) added function drawLabels3d
  • (geom3d) added functions createEdge3d, edgeLength3d, linToEdge3d
  • (polygons2d) added polygonVertices
  • (geom2d) added function lineToEdge
  • (geom2d) updated comments in polarPoint

Changed

  • (geom3d) updated return type of drawing functions
  • (geom3d) renamed inertiaEllipsoid into equivalentEllipsoid
  • (polygons2d) renamed polygonInertiaEllipse into polygonEquivalentEllipse
  • (geom2d) nndist now uses delaunay instead of delaunayTriangulation
  • (geom2d) renamed inertiaEllipse into equivalentEllipse
  • (demos) reorganized the hierarchy of demo files
  • (all) several updates in documentation

Fixed

  • (geom3d) bug in orientedBox3d
  • (geom2d) fixed bug in polarPoint (thanks to Chris Gorman)

Other bug fixes and comments by JuanPi Carbajal, oqilipo, Tao Zhang, "the neuromechanist",
Robin Georg, Chris Gorman.

MatGeom v1.2

07 Jun 11:20
Compare
Choose a tag to compare

MatGeom 1.2.0 - 2018-06-07

MatGeom is a library for geometric computing with Matlab. It is organized is several modules.

Installation: the script "setupMatGeom" should properly install the whole library.

Added

  • (meshes3d) added several functions fore reading/writing 3D meshes in PLY and OFF formats
  • (meshes3d) added splitMesh function to split a mesh into its connected components (thanks to oqilipo)
  • (meshes3d) added concatenateMesh function (thanks to oqilipo)
  • (meshes3d) added triangulatePolygonPair.m and update triangulateCurvePair.m
  • (meshes3d) added distancePointMesh function
  • (meshes3d) added curveToMesh
  • (meshes3d) added boxToMesh (thanks to oqilipo)
  • (meshes3d) added isPointInMesh
  • (geom3d) added fitCircle3d and fitEllipse3d (thanks to oqilipo)
  • (geom3d) added intersectThreePlanes (thanks to Roozbeh)
  • (geom3d) added distPointTriangle3d
  • (geom3d) added clipEdge3d
  • (geom3d) added createRotationVector3d and createRotationVectorPoint3d (thanks to oqilipo)
  • (geom3d) added projLineOnPlane function (thanks to oqilipo)
  • (geom3d) added crossProduct3d
  • (geom3d) added cylinderSurfaceArea
  • (geom3d) added edgeToLine3d conversion function
  • (polygons2d) add polygonInertiaEllipse.m and polygonSecondAreaMoments.m
  • (polygons2d) added polygonOuterNormal and polygonCurvature functions
  • (polygons2d) added resamplePolygonByLength.m and resamplePolylineByLength.m
  • (polygons2d) added function boxToPolygon
  • (geom3d) added some files from geom2d in private directories to prevent missing file errors
  • (graphs) added clipMesh2dPolygon.m

Changed

  • (meshes3d) much faster centroid calculation for the 3D triangle mesh case
  • (meshes3d) added a 'trimMesh' option to clipMeshVertices
  • (meshes3d) unification of the parsing of some mesh functions
  • (meshes3d) checkMeshAdjacentFaces.m: compute edge array if it is not specified
  • (meshes3d) rename several functions: meshNormal -> meshVertexNormals, faceNormal -> meshFaceNormals...
  • (geom3d) createScaling3d can now specifiy center of scaling
  • (geom3d) added axes handle input for drawPoint3d.m
  • (geom3d) distanceLines3d.m: added psb to compute coordinates of closest points on lines
  • (geom2d) rewrite createBasisTransform3d.m
  • (geom2d) improved accuracy of isParallel and isPerpendicular
  • (geom2d) createLine can now create a line based on angle and distance to origin (thanks to Roozbeh)
  • (geom2d) circleToPolygon.m and ellipseToPolygon.m now returns polygons with distinct end vertices
  • (geom2d) updates in drawPoints (thanks to JuanPi)
  • (geom2d) circumCenter now supports multiple points as input
  • (geom2d) rewrite createBasisTransform.m
  • (polygons2d) improved precision in intersectEdgePolygon
  • (polygons2d) the intersectPolylines.m function does not use the private function "interX" anymore
  • (graphs) replaced drawGraphFaces.m by fillGraphFaces.m and update it
  • (graphs) updates centroidalVoronoi2d
  • several updates in function headers
  • removed some deprecated files

Fixed

  • (geom2d) fixed dependency to deprecated functions in drawShape
  • many small bugs fixed...

matGeom v1.0

28 Apr 14:53
Compare
Choose a tag to compare

First release of the MatGeom library on GitHub. MatGeom is a library for geometric computing with Matlab. It is organized is several modules. The script "setupMatGeom" should properly install the whole library.