CGAL 6.0 - Vector Graphics on Triangulated Surface Meshes
Loading...
Searching...
No Matches

Classes

struct  CGAL::Vector_graphics_on_surfaces::Dual_geodesic_solver< FT >
 Geodesic solver class used to store precomputed information of a given mesh for approximate geodesic compution. More...
 

Typedefs

template<class TriangleMesh , class FT >
using CGAL::Vector_graphics_on_surfaces::Bezier_segment = std::array< CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT >, 4 >
 array containing the locations of the four control points of a Bézier segment on a triangle mesh init_geodesic_dual_solver().
 

Functions

template<class FT , class TriangleMesh >
void CGAL::Vector_graphics_on_surfaces::init_geodesic_dual_solver (Dual_geodesic_solver< FT > &solver, const TriangleMesh &tmesh)
 fills solver for a given mesh tmesh.
 
template<class FT , class TriangleMesh , class VertexDistanceMap >
void CGAL::Vector_graphics_on_surfaces::approximate_geodesic_distance_field (const CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > &center, VertexDistanceMap distance_map, const TriangleMesh &tmesh)
 computes the approximate geodesic distances of center to all the vertices of the mesh (only one connected component is expected) and put the distance in distance_map
 
template<class K , class PointRange_2 >
std::vector< std::pair< typename K::FT, typename K::FT > > CGAL::Vector_graphics_on_surfaces::convert_to_polar_coordinates (const PointRange_2 &points, std::optional< typename K::Point_2 > center=std::nullopt)
 converts the coordinates of a range of points into polar coordinates with respect to a given center
 
template<class FT , class TriangleMesh >
FT CGAL::Vector_graphics_on_surfaces::path_length (const std::vector< CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > > &path, const TriangleMesh &tmesh)
 computes the length of a path on a triangle mesh.
 
template<class FT , class TriangleMesh >
FT CGAL::Vector_graphics_on_surfaces::path_length (const std::vector< CGAL::Polygon_mesh_processing::Edge_location< TriangleMesh, FT > > &path, const CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > &src, const CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > &tgt, const TriangleMesh &tmesh)
 computes the length of a path on a triangle mesh.
 
template<class TriangleMesh , class FT , class OutputIterator >
OutputIterator CGAL::Vector_graphics_on_surfaces::convert_path_to_polyline (const std::vector< CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > > &path, const TriangleMesh &tmesh, OutputIterator poly_out)
 converts a path on a triangle mesh to the corresponding polyline of points.
 
template<class TriangleMesh , class FT , class OutputIterator >
OutputIterator CGAL::Vector_graphics_on_surfaces::convert_path_to_polyline (const CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > &src, const std::vector< CGAL::Polygon_mesh_processing::Edge_location< TriangleMesh, FT > > &path, const CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > &tgt, const TriangleMesh &tmesh, OutputIterator poly_out)
 converts a path on a triangle mesh to the corresponding polyline of points.
 

Typedef Documentation

◆ Bezier_segment

template<class TriangleMesh , class FT >
using CGAL::Vector_graphics_on_surfaces::Bezier_segment = typedef std::array<CGAL::Polygon_mesh_processing::Face_location<TriangleMesh, FT>, 4>

#include <CGAL/Vector_graphics_on_surfaces/locally_shortest_path.h>

array containing the locations of the four control points of a Bézier segment on a triangle mesh init_geodesic_dual_solver().

Template Parameters
FTfloating point number type (float or double)
TriangleMesha model of FaceListGraph and EdgeListGraph

Function Documentation

◆ convert_path_to_polyline() [1/2]

template<class TriangleMesh , class FT , class OutputIterator >
OutputIterator CGAL::Vector_graphics_on_surfaces::convert_path_to_polyline ( const CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > &  src,
const std::vector< CGAL::Polygon_mesh_processing::Edge_location< TriangleMesh, FT > > &  path,
const CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > &  tgt,
const TriangleMesh &  tmesh,
OutputIterator  poly_out 
)

#include <CGAL/Vector_graphics_on_surfaces/locally_shortest_path.h>

converts a path on a triangle mesh to the corresponding polyline of points.

If path contains identical consecutive vertices, only one point will be put in poly_out for this vertex.

Template Parameters
FTfloating point number type (float or double)
TriangleMesha model of FaceGraph
OutputIteratoran output iterator accepting points from tmesh
Parameters
srcsource of the path
tgttarget of the path
patha path described as a range of edge locations, with the property that for two consecutive edge locations, there exists an edge in tmesh containing the two corresponding points.
tmeshthe triangle mesh supporing the path
poly_outoutput iterator where points of the polyline are put.
Todo:

add named parameters

generic range

◆ convert_path_to_polyline() [2/2]

template<class TriangleMesh , class FT , class OutputIterator >
OutputIterator CGAL::Vector_graphics_on_surfaces::convert_path_to_polyline ( const std::vector< CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > > &  path,
const TriangleMesh &  tmesh,
OutputIterator  poly_out 
)

#include <CGAL/Vector_graphics_on_surfaces/locally_shortest_path.h>

converts a path on a triangle mesh to the corresponding polyline of points.

If path contains identical consecutive vertices, only one point will be put in poly_out for this vertex.

Template Parameters
FTfloating point number type (float or double)
TriangleMesha model of FaceGraph
OutputIteratoran output iterator accepting points from tmesh
Parameters
patha path described as a range of face locations, with the property that for two consecutive face locations, there exists a face in tmesh containing the two corresponding points.
tmeshthe triangle mesh supporing the path
poly_outoutput iterator where points of the polyline are put.
Todo:

add named parameters

generic range

◆ convert_to_polar_coordinates()

template<class K , class PointRange_2 >
std::vector< std::pair< typename K::FT, typename K::FT > > CGAL::Vector_graphics_on_surfaces::convert_to_polar_coordinates ( const PointRange_2 &  points,
std::optional< typename K::Point_2 >  center = std::nullopt 
)

#include <CGAL/Vector_graphics_on_surfaces/locally_shortest_path.h>

converts the coordinates of a range of points into polar coordinates with respect to a given center

Template Parameters
Ka model of PolygonTraits_2
PointRange_2a model of the concept RandomAccessContainer with K::Point_2 as value type
Parameters
pointsthe input points to convert.
centerthe point of reference for the polar coordinates. If omitted, then centroid of polygon will be used.
Returns
the polar coordinates of the points as a pair (distance, angle)

◆ init_geodesic_dual_solver()

template<class FT , class TriangleMesh >
void CGAL::Vector_graphics_on_surfaces::init_geodesic_dual_solver ( Dual_geodesic_solver< FT > &  solver,
const TriangleMesh &  tmesh 
)

#include <CGAL/Vector_graphics_on_surfaces/locally_shortest_path.h>

fills solver for a given mesh tmesh.

It is the user responsability to call again this function if tmesh or the points of its vertices are modified. If solver was used in a previous call to this function, information will be overwritten.

Template Parameters
TriangleMesha model of FaceListGraph and EdgeListGraph
FTfloating point number type (float or double)
Parameters
solverthe container for the precomputed information
tmeshtriangle mesh to be considered for the precomputations
Todo:

add named parameters

make sure solver.graph is cleared before filling it

◆ path_length() [1/2]

template<class FT , class TriangleMesh >
FT CGAL::Vector_graphics_on_surfaces::path_length ( const std::vector< CGAL::Polygon_mesh_processing::Edge_location< TriangleMesh, FT > > &  path,
const CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > &  src,
const CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > &  tgt,
const TriangleMesh &  tmesh 
)

#include <CGAL/Vector_graphics_on_surfaces/locally_shortest_path.h>

computes the length of a path on a triangle mesh.

Template Parameters
FTfloating point number type (float or double)
TriangleMesha model of FaceGraph
Parameters
srcsource of the path
tgttarget of the path
patha path described as a range of edge locations, with the property that for two consecutive edge locations, there exists a face in tmesh containing the two corresponding points.
tmeshthe triangle mesh supporing the path
Todo:

add named parameters

generic range

◆ path_length() [2/2]

template<class FT , class TriangleMesh >
FT CGAL::Vector_graphics_on_surfaces::path_length ( const std::vector< CGAL::Polygon_mesh_processing::Face_location< TriangleMesh, FT > > &  path,
const TriangleMesh &  tmesh 
)

#include <CGAL/Vector_graphics_on_surfaces/locally_shortest_path.h>

computes the length of a path on a triangle mesh.

Template Parameters
FTfloating point number type (float or double)
TriangleMesha model of FaceGraph
Parameters
patha path described as a range of face locations, with the property that for two consecutive face locations, there exists a face in tmesh containing the two corresponding points.
tmeshthe triangle mesh supporing the path
Todo:

add named parameters

generic range