1 %% Copyright (c) 2011, INRA
2 %% 2007-2011, David Legland <david.legland@grignon.inra.fr>
3 %% 2011 Adapted to Octave by Juan Pablo Carbajal <carbajal@ifi.uzh.ch>
5 %% All rights reserved.
6 %% (simplified BSD License)
8 %% Redistribution and use in source and binary forms, with or without
9 %% modification, are permitted provided that the following conditions are met:
11 %% 1. Redistributions of source code must retain the above copyright notice, this
12 %% list of conditions and the following disclaimer.
14 %% 2. Redistributions in binary form must reproduce the above copyright notice,
15 %% this list of conditions and the following disclaimer in the documentation
16 %% and/or other materials provided with the distribution.
18 %% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 %% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 %% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 %% ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22 %% LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 %% CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 %% SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 %% INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 %% CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 %% ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 %% POSSIBILITY OF SUCH DAMAGE.
30 %% The views and conclusions contained in the software and documentation are
31 %% those of the authors and should not be interpreted as representing official
32 %% policies, either expressed or implied, of copyright holder.
37 geom2d, release 2011.??.??
38 ==========================
41 - added angleDiff and angleAbsDiff
46 geom2d, release 2011.06.30
47 ==========================
50 - added function rotateVector
51 - added function randomPointInBox
54 - Shape orientation is now represented using degrees
55 - function vectorAngle can now compute the angle between two vectors
58 - enhanced function distancePointEdge
59 - enhanced function isPointOnEdge
60 - enhanced function isParallel
61 - fixed bugs intersectLineCircle
64 geom2d, release 2011.03.21
65 ==========================
68 - added functions intersectLineCircle and intersectCircles
69 - added functions inertiaEllipse, isPointInEllipse
70 - added function drawBezierCurve
71 - added functions intersectBoxes and mergeBoxes
74 - re-organized the library in three sub-directories: geom2d, polygons2d, and
76 - cleanup of code and doc
79 - several bugs fixed in clipEdge, isPointOnEdge
82 geom2d, release 2010.08.06
83 ==========================
86 - polygonToRow and rowToPolygon, to convert polygon to a row vector
87 - midPoint, to compute middle points of either 2 points or an edge
88 - added rad2deg and deg2rad, for angle conversions
91 - createCircle and createdirectedCircle are now vectorized, and use different
92 convention for 2 input variables (center + point and circle)
93 - median line has been vectorized
96 - fix bugs in intersectEdges
97 - fix bugs in clipLine
98 - rewrite drawLine using clipLine
101 geom2d, release 2010.07.19
102 ==========================
107 - intersectRayPolygon
111 - fitAffineTransform2d
115 - updated inertiaEllipse
116 - fixed bugs in intersectEdges.m, isParallel.m and isPerpendicular.m
117 - vectorized intersectLinePolygon
118 - fixed precision bug in isPointOnEdge
119 - renamed formatAngle to normalizeAngle
120 - created help file 'angles2d'
121 - fixed bug in weighted centroid computation
123 various bug fixes, and doc updates.
127 geom2d, release 2009.07.22
128 ==========================
132 - new functions for polygons:
133 polygonPoint, polygonSubcurve, polygonLoops, distancePointPolygon,
134 distancePolygons, expandPolygon, polygonSelfIntersections,
135 projPointOnPolygon, isPointInPolygon, reveresPolygon
137 - new functions for polylines:
138 intersectPolylines, polylineSelfIntersections, distancePolylines,
139 isPointOnPolyline, reveresPolyline
141 - projPointOnPolyline can also return the distance of the point to the polyline
143 - function 'edgeToLine' converts an edge to its supporting line
149 + subcurve -> polylineSubCurve
150 + curveCentroid -> polylineCentroid
151 + invertLine -> reverseLine
153 - Compatibility considerations
154 + parallelLine: changed convention for signed distance
156 various bug fixes, and doc updates.
159 geom2d, release 2009.06.15
160 ==========================
164 - radicalAxis from 2 circles:
165 - moment of a curve (polyline): curveMoment, curveCMoment, curveCSMoment
166 - new functions for polylines
167 distancePointPolyline, drawPolyline, polylineLength, polylinePoint,
168 polylineSubcurve, projPointOnPolyline
172 - changed some function names to avoid potential name conflicts, and to make
173 function names more explicit:
174 + rotation -> createRotation
175 + scaling -> createScaling
176 + translation -> createRotation
177 + homothecy -> createHomothecy
178 + lineSymmetry -> createLineReflection
179 + inCircle -> isPointInCircle
180 + onCircle -> isPointOnCircle
181 + onEdge -> isPointOnEdge
182 + onLine -> isPointOnLine
183 + onRay -> isPointOnRay
184 + normalize -> normalizeVector
189 - fixed bug in intersectEdges