Subject: CGAL users discussion list
List archive
- From: Simon Giraudot <>
- To:
- Subject: Re: [cgal-discuss] Poisson reconstruction of multiple connected components
- Date: Tue, 6 Aug 2019 09:49:55 +0200
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=None ; spf=None
- Ironport-phdr: 9a23:IX6V6h+s7Q8fUf9uRHKM819IXTAuvvDOBiVQ1KB20+4cTK2v8tzYMVDF4r011RmVBN+dsqoVwLOM7ujJYi8p2d65qncMcZhBBVcuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6JvjvGo7Vks+7y/2+94fcbglVmjaxe65+IAmyoAneq8Uan4tvIbstxxXUpXdFZ/5Yzn5yK1KJmBb86Maw/Jp9/ClVpvks6c1OX7jkcqohVbBXAygoPG4z5M3wqBnMVhCP6WcGUmUXiRVHHQ7I5wznU5jrsyv6su192DSGPcDzULs5Vyiu47ttRRT1jioMKjw3/3zNisFokaxVvhyhqRx8zYDabo6aO/hxcb/Sc94BWWpMXdxcWzBdDo6ybYYCCfcKM+ZCr4n6olsDtQawBQipBOPozD9Dm3743awg0+s7DAHJwQsgH84Tu3nTt9X1NaISUeezzKXSwjXDbulW1i3g6IfVdRAhveqBXb1ufsrWzEkgCR/Fjk+QqIzrJTyayvgNs2+B7+tgT+6gl2knqwRorzWp28wihI7JhocPxVDF8yV02IA1KsejR0FgZd6rDoFcuD2dN4tzWs8iTH9nuCE/yrIYpZ67ZigLyJo9yBHDd/yHdJKI4xL5WOmNJjd4gXRoc6+8iRaq6UWtxezxWtOp3FpWridJiNvBu3QX2xHc68WLUuVx8l281TuPzQzf9+5JLEIumabFN5Isxrg9nYcJv0vZBC/5gkD2gbeWdko6/uio7Pzqbqj6qpOGMo90jRzyP6Yql8ClBOQ3KAkOX2yC9eS7yb3j4Vf1QLJUjv02iKXZto7VJdgDqq64BQ9azJoj5g6wAjqnytgUgGULIVJfdB+Fi4XlIV7DLfHgAfe6mVuskTNrx/7cPr3mB5XANmPDkLbkfbZ67U5Q0gUzzdFF551OF7EOPfXzWlPqudzXEBA5NAm0zPj7CNVn1oIeV3iADbOFMKPVq1+J5vgjLPWLZI8QoDr9MeQq5+byjX8lnl8QZbWm3ZQNZ3C8B/hpPkSZYWHwjdccCmcKpREzTPfqiV2HST5cfWy+X6M65jEhCYKpF53PRo63gO/J4CDuFZJfYiVKC0uHDGzzX4SCQfYFLiyIceF7lTlRbrmkTIlp+hC0vRL2zKYvevHV/yoe853iztFo6+rPvR4/8jl5E96M3WiGU2ZujyUDQDpgj/M3mlB01lrWifswuPdfD9EGv6oVADd/DobVyqlBM/63QhjIJI7bR1uhR9i6GyA/R9ktxMUfJU16Hof610GR72+RG7YQ0oezKtkx+6PY0WL2IpwkmXnL06wsk0M3TMJEKWq8l+h08A2BX9eUwXXcrL6jcOEn5ACI9GqHyjDR7hgAFgt3CPqUG3UWZ0+TqsnloETcT/moBKh1agY=
Hello,
The documented function "get_inner_point()" returns the vertex of the underlying Delaunay 3D Triangulation (where the Poisson function is stored) where the Poisson function is minimum. What you are asking for, if I understand correctly, is to identify as many inner points as there are connected components. I think this is achievable by iterating on each Delaunay vertex that has a Poisson function value under 0 (or under the wanted threshold, usually the median value at input points), then separate these vertices by connected components on the triangulation, and finally just return one point per connected component.
I don't think you can achieve that with the documented API. However, some undocumented functions in the Poisson package may help: the class Poisson_reconstruction_function has a method "tr()" that returns a const ref the underlying triangulation. Using that, you can access the vertices of the triangulation which have a method "f()" that returns the value of the Poisson function. See the files "Poisson_reconstruction_function.h" and "Reconstruction_triangulation_3.h" for the undocumented classes/functions (they are still commented / internally documented for most of them).
Let me know if this is clear and if I can help any further.
Best,
--
Simon Giraudot, PhD
R&D Engineer
GeometryFactory - http://geometryfactory.com/
Le 02/08/2019 à 01:12, Gaetan a écrit :
Hi all,
I want to perform a Poisson reconstruction of an oriented point cloud that
represents several disjoint smooth closed surfaces.
Furthermore, I assume that the surfaces are not mutually included.
To recover several disjoint surfaces I need to add at least one point per
connected component to the c2t3 object (see this post
<http://cgal-discuss.949826.n4.nabble.com/About-the-surface-mesh-generator-tt952799.html#a952801>
).
However, I do not know the number of connected components nor do I know
where they are located.
Inserting all the points in the c2t3 allows to recover all the components
but this leads to an oversampled and un-smooth surface mesh.
So far, I have thought of a workaround where I would mesh the opposite of
the Poisson implicit function within the bounding sphere of the point cloud.
This means that instead of meshing a set of disjoint smooth closed surfaces
I would mesh a sphere with disjoint holes.
The final step would be to extract the holes as a set of disjoint smooth
closed surfaces.
Nonetheless, I am wondering if there is not a better way to do this.
For example, could we detect the connected components when computing the
Poisson implicit function, and ultimately extract one point per connected
component?
Thanks for your help,
Gaetan
--
Sent from: http://cgal-discuss.949826.n4.nabble.com/
- [cgal-discuss] Poisson reconstruction of multiple connected components, Gaetan, 08/02/2019
- Re: [cgal-discuss] Poisson reconstruction of multiple connected components, Simon Giraudot, 08/06/2019
- Re: [cgal-discuss] Poisson reconstruction of multiple connected components, Gaetan, 08/07/2019
- Re: [cgal-discuss] Poisson reconstruction of multiple connected components, Simon Giraudot, 08/06/2019
Archive powered by MHonArc 2.6.18.