-
Notifications
You must be signed in to change notification settings - Fork 17
/
change.txt
549 lines (475 loc) · 15.6 KB
/
change.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
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
YEAR-MONTH-DAY
---------------------------------------------
Date : 2024-Oct-05
Version : 0.27.4
ConvertRotation3D_F64
- Added another method for converting rodrigues 3-dof into quaternion
---------------------------------------------
Date : 2024-Oct-05
Version : 0.27.3
- Updated DDogleg version
---------------------------------------------
Date : 2024-Sep-06
Version : 0.27.2
- ConvertRotation3D
* Supports rodrigues encoded as a vector
- PointCloudToNormals
* It can now compute the normals from a different of set of points than the cloud
---------------------------------------------
Date : 2024-May-14
Version : 0.27.1
- Intersection2D
* Added: (line segment, rectangle)
- LineSegment3D
* Added pointOnLine()
---------------------------------------------
Date : 2024-Feb-24
Version : 0.27.0
- Added RobustFittingOps to make robust fitting of shapes easier.
* Supports plane and cylinders for now.
- Added method for estimating surface normals on a point cloud
- Shape fitting using points with surface normals
* Plane and Cylinder
- Added ShapeFittingRobustOps
* Easy interface for using standard robust algorithms to fit points to shapes
- InvertibleTransform
* Added concatInvert
* Se3 supports concatInvert natively
---------------------------------------------
Date : 2023-Nov-05
Version : 0.26.3
- GeoTuple
* Provided setTo() where you can assign it from a lower dimension
- AreaIntersectionPolygon2D_F64
* Now recycles memory when possible
---------------------------------------------
Date : 2023-Sep-24
Version : 0.26.2
- LineSegment2D
* Added pointOnLine functions
- AverageRotationMatrix
* Quality of life improvements
---------------------------------------------
Date : 2023-May-15
Version : 0.26.1
- GeoRegressionVersion is generated again
---------------------------------------------
Date : 2023-May-15
Version : 0.26
- Point
* Proper implementation of setTo()
- GeoTuple3D
* Added plus(alpha, point)
- GeoTuple_F64
* Added isNaN() and isInfinite()
* Note was already in some specific implementations
- Rectangle2D (all types)
* getCorner()
- UtilPolygons2D
* Added bound(poly, rect int)
---------------------------------------------
Date : 2023-Feb-15
Version : 0.25.2
- Updated DDogleg Version
---------------------------------------------
Date : 2022-Sep-01
Version : 0.25
- Build
* Minimum version of Java is now 11. Was 8.
* Built using Java 17
* Added Lombok
* Starting to standardize formatting
- zero() added to many geometric primitives
* Zeros out all fields, typically this is the initial state
- setTo() should now return a reference to 'this'
- UtilAngle
* Fixed minus(). Incorrectly handled wrapping. Kinda embarrassing this wasn't found earlier
- SePointOps
* transformReverse for 3D homogenous coordinates
- InvertibleTransform
* added invertConcat() which implicitly inverts 'this' before performing concatenation
* SE3 added specialized implementation of invertConcat()
- ConvertRotation3D
* Fixed edge case with matrixToRodrigues()
---------------------------------------------
Date : 2021-Jul-09
Version : 0.24
- UtilPoint2D
* Added findClosestIdx()
- UtilPoint3D
* Added findClosestIdx()
- SePointOps
* Added expanded versions of transform for homogenous 3D coordinates
- Vector3D
* Refactored cross functions to make their behavior more obvious
* Added new dot() variant
- Intersection2D
* Added intersection of many points to a homogenous point
- ClosestPoint3D
* Two line intersection in homogenous coordinates
- GeometryMath
* Unrolled innerProd() functions that were creating new matrices internally
- Added support for Special Orthogonal 3 (SO3)
* Fit SO3 to two point clouds
---------------------------------------------
Date : 2020-Dec-19
Version : 0.23
- Build
* Static checks with Error Prone and NullAway
* Upgraded to 'maven-publish'
- Refactoring
* Changed set() into setTo() for more structures
- Area2D
* Includes functions for intersection-over-union a common quality of fit measure
- Intersection2D
* Added containsConvex2() which includes points that lie along the border.
- Iterative Closest Point (ICP)
* Fits 2D and 3D point clouds
* Moved over from Project BUBO
- Added FitPolygon2D and FitPolygon3D
* Fit AABB for 2D and 3D
* Fit convex hull for 2D
- UtilPolygon2D
* isSimple()
* triangulate()
---------------------------------------------
Date : 2020-May-19
Version : 0.22
- Java 11 syntax
- Upgraded JUnit
- SePointOps.transform( 4D ) fixed/added
- GeoTuple4D
* Added distance(x,y,z,w)
- GeoTuple2D
* Added isNaN()
- Flushed out GeoTuple2D_I32 more and added more functionality to its children
- Updated for DDogleg's FastAccess, FastArray, and DogArray
- Fixed bug in MotionSe3PointSVD where it threw an exception instead of returning false
---------------------------------------------
Date : 2019-Dec-23
Version : 0.21
- UtilLine2D
* define a line from a point and angle
- UtilAngle
* Added functions which can take in unbounded angles
* Added average of two angles
- Intersection2D
* Intersection of two rays
- ConvertFloatType
* LineSegment2D and LineSegment3D
* LinePolar2D
---------------------------------------------
Date : 2019/07/02
Version : 0.20
- GeometryMath
* mult(4x4,4,4)
- Fit parametric line using linear equation
---------------------------------------------
Date : 2019/03/14
Version : 0.19
- SE3 applied to homogneous points
- Added Hash Codes
* Requested by Nico Stuurman
* Points, Vectors, and Planes
- Added cubic curve and fitting algorithm
- UtilPoint2D
* Compute 2D normal distribution
* Generate 2D normal distribution
---------------------------------------------
Date : 2018/12/26
Version : 0.18
- upgraded gradle wrapper
- Fixed SpecialOrthogonalOps
- Created UtilPoint4D_F64
- GeometryMath
* Added mult cross transpose functions
- Added equals()
* Line data structures
- Distance2D
* Fixed numerical overflow in line distance. Thanks Charlie Hayes for pointing out this problem.
---------------------------------------------
Date : 2018/10/15
Version : 0.17
- Vector3D
* Normalized rewritten to avoid numerical overflow
- Se3
* convience functions added for heavily used operations
- UtilPoint3D and 2D
* New function for adding noise
* Randomly generate points on a plane in 3D
- SpecialEuclideanOps_F64
* Added bestFit()
---------------------------------------------
Date : 2018/05/20
Version : 0.16
- Polygon2D
* functions to convert to and from a list
* Flushed out I32 functions more
* function for removing adjacent points which are duplicates
- Quadrilateral2D
* functions to convert to and from a list
- Added curves and fitting routines
* Moved ellipses into curves
* Quadratic
* Parabola
* Conic
- GeometryMath
* improved addMult so that you can pass in the same point more than once
* added addMultTrans
- Autocode
* move into it's own module
- Point2D
* <= is used now instead of < for equality
- Added GeoRegressionVersion file
---------------------------------------------
Date : 2018/01/17
Version : 0.15
- Distance2D
* Added distance(x,y) to Point2D_I32
* Added distance(line,poing) I32
* Added distanceSq(line,x,y)
- Added equals() support to the following
* GeoTuple
* Rectangle2D
- Polygons 2D
* Added bounding rectangle
* Area of intersection between two
- BoxLength3D
* added getCorner()
---------------------------------------------
Date : 2017/10/12
Version : 0.14
- Updated for changes in EJML
- Added I32 line fit 2D code
- UtilVector3D
* Added perpendicularCanonical()
- UtilPlane3D
* Added selectAxis2D()
* Added point3Dto2D()
* Added point2Dto3D()
- Intersection3D
* Added intersection(Triangle3D,LineParametric3D)
- Intersection2D
* Added intersection of two lines defined by 4 points.
- Polygon2D
* Added getSideLength()
- UtilCircle2D
* circle from 3 points
---------------------------------------------
Date : 2017/08/13
Version : 0.13
- 32bit auto coding switched over to using auto64fto32f library
- Added basic support for twist coordinates and conversion to their exponential format
- added divide to tuple3
- Uses new F32 operations in EJML
* Before it was forced to do math in F64 even if a data structure was F32
- F32 verson of ellipse fitting operations
---------------------------------------------
Date : 2016/11/30
Version : 0.12
- Added FitEllipseWeightedAlgebraic
* Weighted version of FitEllipseAlgebraic
- Intersection2D
* point inside ellipse
* line ellipse intersection
- Intersection3D
* line sphere intersection
- Distance2D
* Euclidean distance of point from rotated ellipse
- UtilAngle
* Added bound for -pi/2 and pi/2
* Added bound wrap for 0.0 to 1.0
* Added bound reflect for 0.0 to 1.0
* Fixed behavior of atanSafe for x == 0 case
- UtilEllipse
* added computeTangent
* added tangentLines() - finds two lines which are tangent to the ellipse and pass through a point outside ellipse
* added tangentLines() - 4 lines which are tangent to two ellipses
- UtilPolygons2D
* added removeAlmostParallel()
- LineSegment2D_F64
* Added a toString() at the suggestion of thhart
- Added ConvertCoordinates3D
- angleToDegrees and degreesToAngle
* float versions
* short hand function calls
---------------------------------------------
Date : 2016/06/09
Version : 0.11
- Average of Quaternion
- Average of Rotation Matrix
---------------------------------------------
Date : 2016/01/23
Version : 0.10
- UtilAngle
* Added function to change domain from -pi to pi into 0 to 2*pi
- Fixed bug in Affine2D inverse
* storage for transform wasn't being used
- Distance2D
* distance from origin for parametric line
- UtilPoint2D_F
* Mean from array
- Renamed RotationMatrixGenerator to ConvertRotation3D
* Broken up into F64 and F32
- Added support for all 3-axis Euler angles
- New equations for some conversions too and from rotation matrix
---------------------------------------------
Date : 2015/11/07
Version : 0.9
- UtilPolygons2D
* Added convexHull()
- UtilPoint2D
* Added mean for 2 points
- UtilLine2D
* 2 point line segment into line general
- Area2D
* Fixed concave Quadrilateral case
* removed polygon convex
* added polygon simple
- Distance2D
* Added distance from point for normalized GeneralizedLine2D
---------------------------------------------
Date : 2015/09/18
Version : 0.8
- Fixed issue with UtilAngle.distanceCW and distanceCCW
* Would return 2*PI instead of 0 if two inputs were identical
- Added linear interpolation for Se2
- Added dot product and acute angle to Vector2D
- Added ClosestPoint3D.closestPointT() for line and plane
* Added LineParametric3D.setPointOnLine
- Distance2D
* added line segment to line segment
* added quadrilateral to point
* added Polygon2D and point
- UtilPolygons2D
* Center for Quadrilateral
* added vertexAve
* isConvex()
* isIdentical()
* isEquivalent()
* convert poly to quad
* flip()
- Area2D
* Area convex polygon
- Quadrilateral
* isEquals()
* get( index )
- Rectangle2D
* enforceExtents()
- Intersection2D_I32
* inside( rect , pt )
- Intersection2D_F64
* intersectionArea( Rectangle2D_F64 a , Rectangle2D_F64 b )
* contains quadrilateral and a point
- Math
* minus point output vector in 2D
- RotationMatrixGenerator
* Rotations of PI degrees are now handled correctly
---------------------------------------------
Date : 2014/09/17
Version : 0.7
- Switch build system over to Gradle
- Cleared up which direction found transforms are going in MotionTransformPoint
- Shapes added
* Point3D_I32
* Box3D_I32
* Renamed Cube_F* to Box_F*. cube is too specific
* Triangle3D_F*
- Se3
* added setTranslation() and setRotation() to make it more user friendly.
* removed setT() and setR() so that serialization doesn't get messed up.
- Vectors and Points
* Added cross and minus inline to vector
* Added default addition and multiplication Tuple3D and Tuple2D
* Acute angle between two 3d vectors
- ClosestPoint
* Added 2D line segment to point
* Added ClosestPoint3D.closestPointOrigin()
* Added closest point on line to a point in 3D parameterized as a scalar
- Intersection
* Added 3D triangle and line segment
* Added contained2() for Rectangle2D_F* and Box2D_F* in which the upper extent is inclusive
* Added line general and line general for 2D point (homogeneous already existed)
- UtilLine2D
* Added convert polar to general and general to polar
* Added convert line segment to general
* Added acuteAngle() and acuteAngleN() for computing the acute angle between the slope of two general lines
- UtilPoint2D
* added bounding() for finding the bounding rectangle
* added orderCCW() for sorting a points on CCW order around their centroid
- Added default plus and times operators to GeoTuple2D and GeoTuple3D
- Added UtilPlane3D.planeToWorld()
- Changed packages named homo to homography
- Added Linear interpolation between two Se3. InterpolateLinearSe3_*
- MotionSe2PointSVD no longer throws RuntimeException if it fails. returns false instead
- Renamed Rectangle2D to RectangleLength2D and RectangleCorner2D to Rectangle2D for consistency with 3D Box format
- Rectangle2D now uses points instead of regular variables
- CovarianceToEllipse_F64 for computing containment ellipses from 2D covariance matrix
- Area2D
* Added quadrilateral
- Fixed bug in FitLine.polar(points,weights)
---------------------------------------------
Date : 2014-06-18
Version : 0.6
- Auto code generator ignores the copyright notice.
- Closest point and distance from a 3D triangle and a point
- Fixed bug in distance and closest point from a point to a 3D line segment
- Made InvertibleTransformSequence generic and moved to transform package
- Made more structures implement Serializable so that they might be a Java Bean
* Haven't rigorously checked to see if they truly are
- Fixed bug in UtilLine2D_F64.convert( Parametric , Polar )
- Split up AffinePointOps into 32 and 64
- Rectangle
* Removed image processing notation for top-left corner. Replaced with lower-extend and upper-extent
---------------------------------------------
Date : 2013-12-26
Version : 0.5
- Flushed out Quadrilateral
- Added functions to Rectangle2D
- Added Cube3D
- Added Sphere3D
- Added Cylinder3D
- Added LineSegment3D
- Added Intersection3D.contain(cube,point)
- Least squares fitting
* Plane3D
* Sphere3D
* Cylinder3D
- Made F64 and F32 variants of Rodrigues and Quaternion
---------------------------------------------
Date : 2013-06-24
Version : 0.4
- Adding support for 3D planes
* converting between different formulations
* intersection of lines and planes
* intersection of two planes
* closest point and distance to point
- Added ConvertStructureDataType for converting between 64bit and 32bit data structures and the reverse
- Renamed Se2.tran to Se2.T for consistency with Se3
- Fixed incorrect no constructor initialization in Se2
---------------------------------------------
Date : 2013-04-11
Version : 0.3
- UtilPoint3D_F64
* Added distance() and distanceSq()
- UtilPoint2D_I32
* distanceSq()
- Added Circle2D
- Added Ellipse
- Various ellipse related algorithm
* Algebraic best fit to points
* Euclidean best fit to points
* Euclidean distance from points
- Intersection2D_F64.containConcave() tests to see if a point is contained in a concave polygon
- Added dependency to DDogleg library
---------------------------------------------
Date : 2013-02-16
Version : 0.2
- Added metric.Area2D
* Area of arbitrary triangle
---------------------------------------------
Date : 2012-11-27
Version : 0.1
First versioned release and added to maven
--------------------------
- Early development release. Changes kept track of inside GIT comments