Fix/low rank conversion pointcloud #672
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes the issue #669 .
root cause
Root cause seems to be that
PointCloud._check_LRC_dimwas False in this case, and soPointCloud.to_LRCGeometry()returned the unmodified point cloud; which meant that thegeom.to_LRCGeometry(rank=0, scale=scale, **kwargs)call in grid.py was not returning alow_rank.LRCGeometryobject, and so the linec_1, c_2 = geom.cost_1, geom.cost_2causes the crash becauseAttributeError: 'PointCloud' object has no attribute 'cost_1'.fix
As the inline comments above
geom.to_LRCGeometry(rank=0, scale=scale, **kwargs)call in grid.py explain,rank=0is supposed to force low rank conversion. But,PointCloud.to_LRCGeometry()was ignoring that kwarg. I added a Boolean flag calledforce = (kwargs.get("rank") == 0)to coerce a low rank conversion.The repro code from the issue now runs: