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/>

--

You are currently subscribed to cgal-discuss.

To unsubscribe or access the archives, go to

https://sympa.inria.fr/sympa/info/cgal-discuss