AdjustPointGrids3D
Aligns (rotation + translation) a point grid to match best the reference point grid.
Syntax
C++
C#
Python
def AdjustPointGrids3D( inPoints: Point3DGrid, inReferencePoints: Point3DGrid, outAlignedPoints: Point3DGrid, outAlignment: Matrix, /, *, inMaxIterationCount: int = 100, inMatchFraction: float = 0.1111111111111111, inDiscardFurthestFraction: float = 0.05 ) -> ( diagPointsWorkingSet: list[Point3D], diagReferencePointsWorkingSet: list[Point3D], diagAttractionSegments: list[ list[Segment3D] ] )
Parameters
| Name | Type | Range | Default | Description | |
|---|---|---|---|---|---|
![]() |
inPoints | Point3DGrid | Data points to be aligned, may contain background clutter. | ||
![]() |
inReferencePoints | Point3DGrid | Reference points to align to, may only contain points belonging to the object of interest. | ||
![]() |
inMaxIterationCount | int | 1 - ![]() |
100 | Maximal number of iteration for the algorithm |
![]() |
inMatchFraction | float | 0.0 - 1.0 | 0.1111111111111111 | Defines fraction of input points that is being fitted in every iteration |
![]() |
inDiscardFurthestFraction | float | 0.0 - 1.0 | 0.05 | Fraction of point pairs to be discarded during internal ICP loop. Furthest pairs are discarded, and only in last 10% of algorithm iterations. Useful for handling outliers in the inReferencePoints, as well as gaps/holes in the inPoints data. |
![]() |
outAlignedPoints | Point3DGrid | The aligned input points | ||
![]() |
outAlignment | Matrix | The transform that aligns best the input points to the reference points | ||
![]() |
diagPointsWorkingSet | list[Point3D] | inPoints after decimation by inMatchFraction, i.e. points which will be fitted in every iteration | ||
![]() |
diagReferencePointsWorkingSet | list[Point3D] | inReferencePoints after decimation by inMatchFraction, i.e. points which will be fitted in every iteration | ||
![]() |
diagAttractionSegments | list[ list[Segment3D] ] | Attraction segments from every iteration. Note that the algorithm internally moves inReferencePoints towards inPoints (and returns inverse transformation), so the segments show movement of reference towards data. |




