Frontier in a Delaunay Triangulation - cgal

I´m working in a Delaunay triangulation. I have my own frontier that is not the convex hull polygon. I want to use the my own frontier, instead of use the cgal convex hull. I haven´t found in the documentation how to do that. I suppouse that this should be done in the insertion of a vertex or a edge but havent found a function to do that. Any help will be appreciated.

By imposing the outline you are changing the nature of the problem and turn it to a so-called constrained Delaunay triangulation. Check the cgal documentation about it.

Related

Calculate the distance between two triangulated surface meshes by CGAL

We need a tool to compute the distance between two triangulated surface meshes. And we are only allowed to use the CGAL to solve the problem.
I only found the API computing the distance from a point to a surface in AABB tree package, and some relevant APIs in Surface_mesh_shortest_path package. But I still can't fix my problem. Is there any tool in CGAL could fix my problem? Thanks!
You posted that as an issue and we converted it into a discussion, and told you that there is the Hausdorff distance function in the Polygon Mesh Processing package. You did not react, so what is wrong about this answer?

Inverted faces in surface mesh produced by Polygonal Surface Reconstruction

I'm trying to use Polygonal Surface Reconstruction with building point cloud to create simplified building models.
I did first tests with this CGAL code example and got first promising results.
As an example, I used this point cloud with vertex normals correctly oriented and got the following result from PSR. Some faces are clearly inverted (dark faces with normals pointing inside the watertight mesh and therefore not visible).
I was wondering if there a way to fix this face orientation error. I've noticed orientation methods on Polygon mesh but I don't really know to apply them to the resulting PSR surface mesh. As far as logic is concerned making normal point outwards should not be too complicated I guess.
Thanks in advance for any help
You can use the function reverse_face_orientations in the Polygon mesh processing package.
Note that this package has several functions that can help you to correct/modify your mesh.

CGAL 2D delaunay triangulation with mixed boundary conditions

I am new to CGAL, so I do not know where to start.
I want CGAL to calculate a delaunay triangulation of a set of points in 2D. My problem is that there is a class for nonperiodic systems and another one for periodic systems (sorry, can not post more than 2 links), but none for mixed periodic and nonperiodic systems.
Imagine something like this, which is periodic in x direction.
For your information: The vertices near the upper und lower boundary are connected to vertices far from y=0, but this not particularly relevant to the problem.
Is there any easy way to achieve this or do I need to implement this manually?
The 2D Periodic triangulation package in CGAL only handle periodicity in the x and y direction (i.e triangulation in the two dimensional flat torus).

How to get one non-manifod mesh with adaptive point distribution

all
I try to obtain one triangle mesh from one point cloud. The mesh is expected to be manifold, the triangles are well shaped or equilateral and the distribution of the points are adaptive in terms of the curvature.
There are valuable information provided on this website.
robust algorithm for surface reconstruction from 3D point cloud?
Mesh generation from points with x, y and z coordinates
I try Poisson reconstruction algorithm, but the triangles are not well shaped.
So I need to improve the quality of the triangles. I learn that centroidal voronoi tessellation(CVT) can achieve that, but I don't know whether the operation will introduce non-manifold vertices and self-intersection. I hope to get some information about it from you.
The mesh from the following post looks pretty good.
How to fill polygon with points regularly?
Delaunay refinement algorithm is used. Can delaunay refinement algorithm apply to triangle mesh directly? Do I first need to delaunay triangulation of the point cloud of the mesh, and then use the information from delaunay triangulation to perform delaunay refinement?
Thanks.
Regards
Jogging
I created the image in the mentioned post: You can insert all points into a Delaunay triangulation and then create a Zone object (area) consisting of these triangles. Then you call refine(pZone,...) to get a quality mesh. Other options are to create the Zone from constraint edges or as the result of a boolean operation. However, this library is made for 2D and 2.5D. The 3D version will not be released before 2014.
Do you know the BallPivoting approach?

Triangulate a surface with vtk from points AND normals

I have a set of points in 3D that lie on a surface and I also have the normals at every point.
I would like to generate a surface triangulation with this information. In addition I could tell the algorithm to use what points lie on the boundary if that is needed.
So, I have quite a bit of information:
* points
* normals
* boundary
How do I triangulate a surface with this information using vtk?
A surface reconstruction algorithm is like using a bomb for this problem since I have all this information that I would like to use. This information comes from a simulation so I know the surface exists and that is quite smooth.
I would like the answer to be cast in terms of either what vtk function to use and if available (and that would be great) examples using this function.
Thank you so much in advance.
You can use the vtkSurfaceReconstruction filter to create a surface from a set of 3D points.
You could try the point cloud library
Point Cloud Library
Just the 3D points would be good enough. Since you know that your surface is smooth, you can perform a Delaunay triangulation of the points (vtkDelaunay3D) and apply a subdivision filter for smoothening (vtkButterflySubdivisionFilter).
Delaunay3D triangulation