groimp-platform:pointcloudtools
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
groimp-platform:pointcloudtools [2024/11/11 18:02] – gaetan | groimp-platform:pointcloudtools [2024/12/06 12:04] (current) – [Point cloud tools] gaetan | ||
---|---|---|---|
Line 26: | Line 26: | ||
To use the tools in RGG you should import the following packages: | To use the tools in RGG you should import the following packages: | ||
<code java> | <code java> | ||
- | import de.grogra.pointcloud.groimp.*; | ||
- | import de.grogra.pointcloud.groimp.PointCloud; | ||
import de.grogra.pointcloud.objects.impl.*; | import de.grogra.pointcloud.objects.impl.*; | ||
import de.grogra.pointcloud.tools.Tools; | import de.grogra.pointcloud.tools.Tools; | ||
Line 33: | Line 31: | ||
+ | ===== Local transformation ===== | ||
+ | |||
+ | It is key to understand that in GroIMP each node have a local transformation, | ||
+ | |||
+ | For point clouds nodes, it means that two point clouds with points that have the SAME coordinates, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | The first image results from // | ||
+ | |||
+ | It is possible to force a point cloud to have global coordinates by moving it to the root of the graph and transforming it with its globalTransformation with : | ||
+ | |||
+ | <code java> | ||
+ | PointCloud myPC = ...; | ||
+ | Matrix34d transfo = de.grogra.pointcloud.utils.Utils.getGlobalTransform( myPC); | ||
+ | Matrix4d localT = myPC.getLocalTransformation(); | ||
+ | myPC.setTransform( transfo.transform( localT ) ); | ||
+ | [c: | ||
+ | </ | ||
===== Split by plane ===== | ===== Split by plane ===== | ||
Line 123: | Line 140: | ||
=== Output === | === Output === | ||
+ | |||
+ | Point clouds added to the Project graph root: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Point clouds with local transformations (as part branch of Nodes with transformations). | ||
+ | In the following example, the two point clouds are added each after a F build by the following code (where //PC1// and //PC2// are the Point cloud nodes: | ||
+ | <code java> | ||
+ | Axiom ==> F PC1 F PC2 ; | ||
+ | </ | ||
+ | |||
+ | In that example, the points of PC1 are translated by the //F// Node, but their local coordinates do not include this translation. Similarly, the points of PC2 are translated twice, once per F. | ||
+ | |||
+ | If we merge the //RED// point cloud (PC2) into the //BLACK// one we have the following result (the points of PC2 are translated only by the first F): | ||
+ | |||
+ | {{: | ||
==== Cluster ==== | ==== Cluster ==== |
groimp-platform/pointcloudtools.1731344520.txt.gz · Last modified: 2024/11/11 18:02 by gaetan