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 16:53] – [Point cloud tools] gaetan | groimp-platform:pointcloudtools [2024/12/06 12:04] (current) – [Point cloud tools] gaetan | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Point cloud tools ====== | ====== Point cloud tools ====== | ||
- | To use the GUI-tools two ways are possible, first in the main Menu under Edit you can find a enty for point clouds that contains the functions. The second way is to use the NodeToolBar which can be found under Panels/nodetoolbar3d. The NodeToolBar always shows the function available for the selected object. | + | This wiki present |
- | In order to select several obejcts please hold the **CTRL** key while clicking on the objects. | + | Every tools presented here are available both from GUI or from RGG code. The projects used to create |
+ | See more: | ||
+ | |||
+ | * [[groimp-platform: | ||
+ | * [[tutorials: | ||
+ | |||
+ | === Using tools from the GUI === | ||
+ | |||
+ | There are two GUI way for accessing the point clouds tools: | ||
+ | * The edit menu: | ||
+ | {{: | ||
+ | |||
+ | * The interactive toolbar (from the [[https:// | ||
+ | {{: | ||
+ | |||
+ | |||
+ | In order to select several objects please hold the **CTRL** key while clicking on the objects. | ||
+ | |||
+ | === Using tools from RGG code === | ||
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 15: | 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 ===== |
A given point cloud can be split into two point clouds based on a plane object. | A given point cloud can be split into two point clouds based on a plane object. | ||
Line 43: | Line 78: | ||
//Note: The RGG split only works with a plane added through RGG// | //Note: The RGG split only works with a plane added through RGG// | ||
+ | === Output === | ||
+ | {{: | ||
- | ==== Split by leaf ==== | + | ===== Split by leaf ===== |
A selection of leafs (points) of a point cloud can be seperated to become their own point cloud. | A selection of leafs (points) of a point cloud can be seperated to become their own point cloud. | ||
Line 73: | Line 110: | ||
</ | </ | ||
- | ==== Merge ==== | + | === Output === |
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Merge ===== | ||
Turning several point clouds into one. The end result will be of the format (graph/ | Turning several point clouds into one. The end result will be of the format (graph/ | ||
+ | |||
+ | The merge tool is considering the coordinate of the point relatively to the Point cloud Node. For Node added to the root of the project graph, their local transformations are equivalent to a global one. Thus, Point clouds added at the root of the project graph, or having not transforming parent to the root, have " | ||
+ | |||
+ | However, if the point clouds are under other transformations in the graph, the merged Points will be added to the other Point cloud with their local coordinate. | ||
=== GUI === | === GUI === | ||
Line 94: | Line 139: | ||
+ | === 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.1731340420.txt.gz · Last modified: 2024/11/11 16:53 by gaetan