forked from dlegland/javaGeom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchanges.txt
399 lines (309 loc) · 12.8 KB
/
changes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
Changes in javaGeom library
* lots of changes in method names
* fixed AffineTransform2D.isMotion(), and cleanup code
javaGeom-0.10.2 (2012.03.11, rev. 315)
=====
* fixed clipping of PolyOrientedCurve2D
* added Domain2D.getAsPolygon()
* fixed bug for computation of polygons buffer
* enhanced buffer computation of curves with coincident tangents by using
curvature information
* updated MultiPolygon2D class
javaGeom-0.10.1 (2012.01.19, rev. 306)
=====
* used gpcj library version 2.2.0
* added Circle2D.getIntersections(Circle2D)
* fixed several bugs in circle inversion computation
javaGeom-0.10.0 (2011.12.04, rev. 298)
=====
New features
- added Point2D.plus(Vector2D) and Point2D.minus(Vector2D)
- added methods for inserting vertices into simple polygons
- added methods for filtering multiple adjacent vertices
- added method SimplePolygon2D.getRing()
- replaced static constructors with arrays by constructors with variable number
of arguments (ellipse)
Bug fixes
- fixed bug for clipping of clockwise polygons
- fixed bug for circle inversion of lines and rays
Regressions
- removed dependency to java.awt.Point, making the library less dependent from awt
javaGeom-0.9.2 (2011.10.16, rev. 286)
=====
Simply add the gpcj library to the jar and to the source.
javaGeom-0.9.1 (2011.10.06, rev. 285)
=====
New features
- added support for centroid and area computation of any polygon
- added creation of rectangle polygons in Polygon2DUtils.
- added computation of polygon difference
- refactoring of buffer computation, created interfaces for cap and join
creation of curve buffers
- added method Curve2D.getVertices()
Bug fixes
- fixed bug in Angle2D.getHorizontalAngle(doubles...)
- fixed buffer of generic circulinear domains
- fix buffer of polylines with multiple vertices
- fix bug for buffer of infinite curves (lines or rays)
Regressions
- deprecated Boundary2D.getBoundaryCurves(), replaced by getContinuousCurves()
- removed ContinuousCirculinearCurve2D
- renamed CirculinearBoundarySet2D to CirculinearContourArray2D
- splitted CirculinearCurveSet2D into interface and array implementation
- put buffer computation classes in separate directory
javaGeom-0.9.0 (2010.11.06, rev. 264)
====
main changes are removal of obsolete classes and methods, and a slight
re-organisation of class hierarchy (mainly shape sets)
New features
- removed deprecated classes and methods
- added ShapeSet2D, ShapeArray2D, DomainSet2D and DomainArray2D
- added the GPCJ library, that can handle boolean operation on polygons
(union, intersection, difference, exclusive difference)
Bug fixes
- fixed bugs in buffer computation
- fixed bug in drawing polylines
- correctly manages orientation of porjections on ellipse
- fixed bugs in Polyline2D, LinearRing2D with last vertex equal to the first
one
Regressions
- removed many deprecated classes and methods, to cleanup the general design
- CurveSet2D is now an interface, use CurveArray2D for implementation
- renamed ContinuousBoundary2D as Contour2D
- renamed ContinuousCirculinearCurve2D as CirculinearContinuousCurve2D
- renamed BoundarySet2D as ContourArray2D
- renamed exceptions classes
Code
- introduced LinearElement2D
- introfuced the GeometricObject2D, superclass of shapes and transforms
- removed 'final' from static methods
- put declaration of static methods in the beginning of classes
javaGeom-0.8.1 (2009.11.15, rev. 242)
====
New features
- better support for buffer of infinite curves
- added static factories in most implementation classes
- added CirculinearCurve2DUtils.convert() method
- added NonCirculinearClassException
- added Point2D.centroid() by using weights
Bug fixes
- improve buffer of smooth curves by removing some curves that were too close
from original curve
- fixed assertion bug in Conics
- fix buffer computation of some shapes
Regressions
- changed ContinuousCirculinearCurve2D to CirculinearContinuousCurve2D
Code
- code rewriting in CirculinearCurve2D
- added missing @override annotations
javaGeom-0.8.0 (2009.06.09, rev. 226)
====
New features
- added Circulinear branch, which manages curves composed of portion of lines
and/or of circles. This makes possible computation of curve length, curve
parallels, and shape buffers. Main implemented features:
+ CirculinearCurve2D.getParallel(double): computes the parallel curve
+ CirculinearShape2D.getBuffer(double): computes buffer of the shape
+ CirculinearShape2D.transform(CircleInversion2D): computes the result of
transform by a circle inversion.
+ CirculinearCurve2D.getLength(): computes total length of the curve
+ CirculinearCurve2D.getLength(double): converts position to length
+ CirculinearCurve2D.getPosition(double): converts length to position
- added getLeftTangent() and getRightTangent() methods in ContinuousCurve2D
Bug fixes
- fixed drawing of polycurves
- fixed bug in intersecting circle arc and line
- fixed bug in computing distance to some linear shapes
- fixed bug in computation of box boundary
Regressions
- Ring2D renamed to LinearRing2D, reserving 'Ring2D' for an interface definition
Code
- splitted CurveSet2D (for future interface) and CurveArray2D (default
implementation of CurveSet2D)
- introduced AbstractContinuousCurve and AbstractSmothCurve to reduce code
copies
- normalized toString() methods of simple curves
javaGeom-0.7.1 (2009-04-24, rev. 198)
====
bug fixes
- fixed bug in intersecting circle arc and line
- added static builders for PolyBezierCurve2D
- update class names in spline package
- added accessors in Ellipse2D and EllipseArc2D
- added Hyperbola2D.getAsymptotes()
- fixed bug in HyperbolaBranch2D
- fixed clipping of Empty CurveSet2D
- Point2D.clip now returns an instance of PointSet2D
- fixed bug in Line2D.
javaGeom-0.7.0 (2009-02-17, rev. 192)
====
New features
- Added Convex hull by Graham scan
- Added point package, which contains point set implementations, and the
interface PointShape2D.
- Added KDTree2D
- Conic2D now implements Boundary2D
- added Angle2D.getPseudoAngle();
Regressions
- Shape2D does not inherit from java.awt.Shape anymore, reducing the number of
methods for most classes
- removed useless classes:
+ Disc2D, ParametricConic2D, HalfPlane2D
- removed obsolete methods:
+ Polygon2D.getVerticesNumber()
+ PointSet2D.getPointsNumber()
+ Conic2D.getCartesianEquation()
+ Transform2D.transform(Point2D, Point2D) -> Point will become immutable
- deprecated classes with doubtful use:
+ empty shapes
+ Point2D.INFINITY_POINT
Code
- moved Polylines into polygon package, and renamed 'ClosedPolyline2D' as
'Ring2D'
- moved PointSet2D into point package
- renamed 'LineObject2D' to 'Line2D', and changed its implementation
javaGeom-0.6.3 (2008-12-22, rev. 167)
====
New features
- Added Convex hull by Jarvis March
- instances of Domain2D can be complemented
- added methods to draw shapes:
+ Curve2D.draw(),
+ Boundary2D.fill(),
+ Domain2D.fill(), Domain2D.draw()
+ Box2D.draw(), Box2D.fill()
+ Point2D.draw(), PointSet2D.draw()
- implemented getWindingAngle() of EllipseArc2D, ParabolaArc2D
- added Polyline2D.getVertex() and Polygon2D.getVertex()
Regressions
- removed Shape2D.defaultClipWindow
- changed names of methods in polylines and polygons:
+ 'Points' -> 'Vertices'
+ 'verticesNumber' -> 'vertexNumber'
- remove deprecated methods
+ getClippedShape in Point2D
- changed AffineTransform2D.getInverseTransform() to invert()
Bug fixes
- fixed projection on lines (!)
- fixed computation of curvature for quad and cubic splines
- fixed clipping of BoundaryPolyCurve2D
- fixed clipping of domains
- fixed clipping of inverse circle arcs
Coding
javaGeom-0.6.2 (2008-07-30, rev. 153)
====
New features:
geom2d:
- added QuadBezier2D
- added grid subpackage
- added Boundary2D.getDomain(): Domain2D
Bug fixes
geom2d:
- Many bug fixes in conics:
+ fixed transform of Parabolas
+ fixed transform and comparison of Ellipses
+ fixed transform, clipping, computation of conic coefficients for Hyperbolas
+ introduced construction of Ellipse from 2 focii
- Fixed clipping of boundaries
Coding
geom2d:
- introduced UnboundedShapeException, NonInvertibleTransformException
- dissociate LineArc2D from other line classes
- many changes in class names:
+ Utilitary classes are now named XXXUtils
+ Polygon2D->SimplePolygon2D, PolygonalShape2D->Polygon2D
+ StraightObject2D splitted into LinearShape2D (interface) and AbstractLine2D
javaGeom-0.6.1 (2008-05-24, rev. 137)
====
Start implementing 3D methods, revision of package hierarchy.
geom2d:
- splitted curve subpackage into curve and domain subpackages
- fixed clipping of closed curves, and implemented clipping methods in the
specific class 'CurveUtil' and 'Boundary2DUtil'.
- simplified hierarchy of affine transforms, to keep only one concrete class.
- added method Shape2D.isEmpty()
- lot of rewriting in Box2D:
+ Box2D does not implement PolygonalShape2D anymore
+ better support of infinite boxes
- removed Dimension2D (useless)
geom3d:
- added several classes:
+ Vector3D, Box3D, PointSet3D, and EmptySet3D
+ /curve: Curve3d, ContinuousCurve3D
+ /line: StraightLine3D, LineSegment3D
+ /plane: Plane3D
javaGeom-0.6.0 (2008-03-08, rev. 115)
====
- changed package hierarchy, by dividing geom2d into several subpackages
- implemented Iterable for PointSet2D and CurveSet2D
- introduced SmoothOrientedCurve2D interface
- curve: add method Curve2D.project(Point2D), different from the method
Curve2D.getPosition(Point2D), for better computation of curve clipping.
- improved implementation of Hyperbola2D and Parabola2D, and their respective
arcs
- various code cleanup
javaGeom-0.5.2 (2008-01-17, rev. 93)
- Clipping of smooth curves has been improved
- Function "shape2D.getClippedShape()" have been renamed to
"Shape2D.clip()", and clipping procedures have been improved
- Replace Math.sqrt() by Math.hypot(), to make computations more robust
- Vector2D is more robust for checking colinearity and orthogonality
- CircleArc2D.getReverseCurve() now returns a circle arc, not an ellipse arc
- Some classes have been renamed:
Domain2D to GenericDomain2D,
AbstractDomain2D to Domain2D,
AbstractPolygon2D to PolygonalShape2D
- Deprecate class ContinuousOrientedCurveSet2D, and remove references to it
- add LinearTransforms, and GlideReflection2D
javaGeom-0.5.1 (2007-12-02, rev. 86)
====
- Use generics for curve set implementations, giving more control on type cast
and adding more safety
- Change hierarchy of affine transforms, allowing more control on type of
transforms after transform composition
- Specialize the return type of overloaded methods when necessary
- Add more controls on the curve collection in CurveSet2D
- Deprecate class PolarPoint2D
- Fix bug in polyline path
javaGeom-0.5.0 (2007-10-20, rev. 76)
====
- Better support for generics
- Change implementation of Bounding box, making it more robust and more generic
- Add fonction to compute polygon centroid
- Add class MultiPolygon2D, for multiply connected polygons
- improve stability and robustness for various functions (point-point
distances, affine transform)
- improve implementation of Parabola2D and ParabolArc2D
- introduce Hyperbolic conics (HyperbolaD, HyperbolaBranch2D, and
HyperbolaBranchArc2D)
javaGeom-0.4.0 (2007-05-13, rev. 55)
====
- update to Java 1.5.0 and to generics (finally !)
- add method Curve2D.getReverseCurve() which returns same curve with inverse
parametrization
- add method ContinuousCurve2D.getAsPolyline(int), to use extract curve
approximation with a given number of subsegments
- Implements methods in BezierCurve2D and ParabolaArc2D which uses polyline
approximations
javaGeom-0.3.2 (2007-05-03, rev. 47)
====
- Introduce ParabolaArc2D
- minor changes in Parabola2D
- Add setter class for geometric classes: Circle2D, CircleArc2D,
StraightLine2D, LineSegment2D, Ray2D...
- AbstractPolygon2D now returns an iterator instead of a Point2D array
- Polyline2D and Polygon2D admit better handling of points
javaGeom-0.3.1 (2007-04-22, rev. 45)
====
- Box2D implements methods for clipping different types of curves
- add method ContinuousCurve2D.getSubcurve(double, double) to extract a piece
of curve.
- class hierarchy of different classes has been updated
- better support for curve sets,
- better support for pathIterator of many curves
- fix bugs, in particular in EllipseArc2D and CircleArc2D
javaGeom v0.3.0 (rev. 29)
====
- The support of some conics have been improved, and Parabola2D is introduced.
- The curve hierarchy have been rewritten, M
- Modifications have been made in the hierarchy of affine transforms.