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
