#include <iostream>#include <CGAL/Cartesian.h>#include <CGAL/Gmpq.h>#include <CGAL/Lazy_exact_nt.h>#include <CGAL/Linear_algebraCd.h>#include <CGAL/double.h>#include <CGAL/Arr_segment_traits_2.h>#include <CGAL/Arr_default_dcel.h>#include <CGAL/Arrangement_2.h>#include <CGAL/IO/Arr_iostream.h>#include <CGAL/Arr_walk_along_line_point_location.h>#include <CGAL/Arr_naive_point_location.h>#include <CGAL/Polygon_2.h>#include <CGAL/Polygon_2_algorithms.h>#include <CGAL/intersections.h>#include <CGAL/Bbox_2.h>#include <CGAL/Random.h>#include <CGAL/Extended_cartesian.h>#include <CGAL/Nef_polyhedron_2.h>Go to the source code of this file.
Classes | |
| class | Polygons |
| class | LineTes |
| Polygonal tessellation of a bounded rectangular domain. More... | |
| class | LineTes::Seg |
| Segment in a line tessellation. More... | |
| class | LineTes::Seg_list |
| List of Seg objects. More... | |
| class | LineTes::Seg_sublist |
| Sublist of Seg objects. More... | |
| class | LineTes_halfedge |
| Halfedge class used by the LineTes class. More... | |
| struct | IVertex |
| Data about removal of an I-vertex. More... | |
| struct | ModList |
| Representation of a modification to be applied to a line tessellation. More... | |
| class | TTessel |
| Dynamic T-tessellation. More... | |
| class | TTessel::Modification |
| Abstract class representing a modification of a T-tessellation. More... | |
| class | TTessel::Split |
| A split that can be applied to a T-tessellation. More... | |
| class | TTessel::Merge |
| A merge that can be applied to a T-tessellation. More... | |
| class | TTessel::Flip |
| A flip that can be applied to a T-tessellation. More... | |
| struct | CatItems< T > |
| Storage structure for categorized items. More... | |
| struct | Features |
| Set of vertex, edge, face and segment features. More... | |
| class | Energy |
| Energy of a Gibbsian random T-tessellation. More... | |
| struct | ModifCounts |
| Data summarizing changes occuring through SMF iterations. More... | |
| class | SMFChain |
| Markovian T-tessellation. More... | |
| class | PseudoLikDiscrete |
| Discrete approximation of the log-pseudolikelihood of a Gibbsian T-tessellation. More... | |
| class | PLInferenceNOIS |
| Pseudo-likelihood inference of a Gibsian T-tessellation with alternate updates. More... | |
Typedefs | |
|
typedef CGAL::Lazy_exact_nt < CGAL::Gmpq > | NT |
| The CGAL numeric type used for exact computations in LiTe. | |
| typedef CGAL::Cartesian< NT > | Kernel |
| The CGAL type of coordinates used in LiTe. | |
|
typedef CGAL::Arr_segment_traits_2 < Kernel > | Traits |
| The CGAL arrangement traits class used for representing tessellations. | |
| typedef CGAL::Vector_2< Kernel > | Vector |
| The CGAL class used for representing vectors. | |
| typedef Traits::Point_2 | Point2 |
| CGAL class representing a point from a tessellation. | |
| typedef Traits::Segment_2 | Segment |
| CGAL class representing a line segment from a tessellation. | |
| typedef Traits::X_monotone_curve_2 | Curve |
| CGAL class representing a curve (line segment) from a tessellation. | |
| typedef CGAL::Iso_rectangle_2 < Kernel > | Rectangle |
| CGAL class representing a rectangle with horizontal and vertical sides. More... | |
| typedef CGAL::Line_2< Kernel > | Line |
| CGAL class representing an infinite line. | |
| typedef CGAL::Ray_2< Kernel > | Rayon |
| CGAL class representing a half-line. | |
| typedef CGAL::Direction_2< Kernel > | Direction |
| CGAL class representing a direction in the plane. | |
|
typedef CGAL::Aff_transformation_2 < Kernel > | Transformation |
| CGAL class representing an affine transformation. | |
| typedef CGAL::Polygon_2< Kernel > | Polygon |
| CGAL class representing a polygon. | |
| typedef std::vector< Point2 > | Points |
| Class representing a series of points. | |
| typedef CGAL::Linear_algebraCd < double > | LA |
| Class used for basic linear algebra. More... | |
| typedef LA::Vector | FVector |
| Class used for representing a vector (in the linear algebra sense) | |
| typedef LA::Matrix | FMatrix |
| Class used for representing a matrix. | |
| typedef CGAL::Arr_dcel_base < CGAL::Arr_vertex_base < Point2 >, LineTes_halfedge, CGAL::Arr_face_base > | Dcel |
| Class used as a template parameter for the Arrangement class. More... | |
|
typedef CGAL::Arrangement_2 < Traits, Dcel > | Arrangement |
| Class representing a tessellation. | |
| typedef Dcel::Size | Size |
| Number type used for indexing tessellation features. | |
| typedef CatItems< double > | CatVector |
| Storage structure for vector of doubles associated with categories vertices, edges, faces or segs. | |
| typedef CatItems< CatVector > | CatMatrix |
| Storage structure for matrices (vector of vectors) of doubles associated with categories vertices, edges, faces or segs. | |
Functions | |
| bool | compare_ivertices (IVertex v1, IVertex v2) |
| Comparison of I-vertices based on length variation. More... | |
| template<typename T > | |
| const CatItems< T > | operator+ (const CatItems< T > &x1, const CatItems< T > &x2) |
| Addition operator for CatItems objects. | |
| template<typename T > | |
| const CatItems< T > | operator* (const double &scalar, const CatItems< T > &x) |
| Product of a CatItems object with a scalar. | |
| template<typename T > | |
| const CatItems< T > | operator- (const CatItems< T > &x1, const CatItems< T > &x2) |
| Subtraction of two CatItems objects. | |
| template<typename T > | |
| const CatItems< T > | operator* (const CatItems< T > &x1, const CatItems< T > &x2) |
| Term by term product of CatItems objects. | |
| void | fill (CatVector &, FVector &) |
| Fill a CatVector object with the elements of a FVector object. More... | |
| std::vector< double > | asVectorOfDoubles (const CatVector &) |
| Generate a vector of doubles from a CatVector object. | |
| FVector | asFVector (const CatVector &) |
| Generate a FVector object from CatVector object. | |
| std::ostream & | operator<< (std::ostream &, const CatVector &) |
| Print a CatVector to an output stream. | |
| double | sum (const CatVector &) |
| Compute the sum of components of a CatVector object. | |
| FMatrix | asFMatrix (const CatMatrix &) |
| Generate a FMatrix object from a CatMatrix object. | |
| CatMatrix | outer (const CatVector &, const CatVector &) |
| Outer product of two CatVector objects. | |
| bool | are_aligned (Point2 p, Point2 q, Point2 r, bool verbose=false) |
| Test whether three points are aligned. More... | |
| Segment | clip_segment_by_convex_polygon (Segment, Polygon) |
| Clip a segment by a convex polygon. More... | |
| double | precompute_lengthening (Arrangement::Halfedge_handle, Arrangement::Halfedge_handle *, Point2 *) |
| Predict added length when lengthening an edge in an arrangement. More... | |
| bool | exist_halfedge (LineTes &, LineTes::Halfedge_handle) |
| Test whether a halfedge handle is valid. More... | |
| LineTes::Halfedge_handle | compute_prev_hf (LineTes::Halfedge_handle) |
| Compute the previous halfedge along a segment. More... | |
| LineTes::Halfedge_handle | compute_next_hf (LineTes::Halfedge_handle) |
| Compute the next halfedge along a segment. More... | |
| void | set_junction (LineTes::Halfedge_handle, LineTes::Halfedge_handle) |
| Set neighbour relationships between two halfedges. More... | |
| LineTes::Halfedge_handle | find_halfedge (LineTes &, Point2, Point2) |
| Find a tessellation halfedge ending at two given points. More... | |
| bool | is_a_T_vertex (LineTes::Vertex_handle, bool verbose=false) |
| Test whether a vertex of a line tessellation is a T-vertex. More... | |
| unsigned long int | number_of_internal_vertices (TTessel &) |
| Return the total number of internal vertices. More... | |
| Polygon | face2poly (TTessel::Face_handle) |
| Returns a Polygon object representing a face of the tessellation. More... | |
| double | face_number (Polygon, TTessel *) |
| Return 1. More... | |
| double | face_area_2 (Polygon, TTessel *) |
| Return the squared face area of a tessellation face. More... | |
| double | face_sum_of_angles (Polygon, TTessel *) |
| Measure the deviation of a T-tessellation face from a rectangle. More... | |
| double | face_shape (Polygon, TTessel *) |
| double | angle_between_vectors (Vector v1, Vector v2) |
| Return the angle between two planar vectors. More... | |
| double | edge_length (Segment, TTessel *) |
| Return the length of an internal T-tessellation segment. More... | |
| double | is_point_inside_window (Point2, LineTes *) |
| Test whether a point is in the interior of the tessellated domain. More... | |
| double | is_point_inside_window (Point2, TTessel *) |
| Test whether a point is in the interior of the tessellated domain. More... | |
| double | seg_number (std::vector< Point2 >, TTessel *) |
| Return 1. More... | |
| double | is_segment_internal (std::vector< Point2 >, TTessel *) |
| Test whether a segment of a T-tessellation is internal. More... | |
| double | minus_is_segment_internal (std::vector< Point2 > s, TTessel *t) |
| Return -1. More... | |
| double | min_angle (Polygon, TTessel *) |
| Return the smallest angle in a tessellation face. More... | |
| double | sum_of_faces_squared_areas (TTessel *) |
| Return the sum of squared areas of all faces of a T-tessellation. More... | |
| double | sum_of_min_angles (TTessel *) |
| Return the sum of smallest angles on all faces of a T-tessellation. More... | |
| double | sum_of_angles_obt (TTessel *) |
| Return the sum of obtuse angles on all faces of a T-tessellation. More... | |
| double | segment_size_2 (std::vector< Point2 >, TTessel *) |
| Return the squared number of edges on a segment of a T-tessellation. More... | |
| double | sum_of_segment_squared_sizes (TTessel *t) |
| Return the sum of squared numbers of edges on all segments of a T-tessellation. More... | |
Variables | |
| CGAL::Random * | rnd |
| LiTe random generator. More... | |
| LineTes::Halfedge_handle | NULL_HALFEDGE_HANDLE |
| Null value for a LineTes halfedge handle. | |
| LineTes::Face_handle | NULL_FACE_HANDLE |
| Null value for a LineTes face handle. | |
| LineTes::Seg_handle | NULL_SEG_HANDLE |
| Null value for a LineTes segment handle. | |
Class used as a template parameter for the Arrangement class.
Use of non-standard halfedges (class LineTes_halfedge)
Class used for basic linear algebra.
This class is used in particular for some computations on matrices.
CGAL class representing a rectangle with horizontal and vertical sides.
typedef
Return the angle between two planar vectors.
| v1 | : first vector. |
| v2 | : second vector. |
Test whether three points are aligned.
| p | : first point. |
| q | : intermediate point. |
| r | : last point. |
| verbose | : if true, when points are found not aligned, a message explaining whny is printed to the standard output for logging. Default to false. |
Clip a segment by a convex polygon.
| S | : segment to be clipped. |
| P | : clipping polygon. |
Comparison of I-vertices based on length variation.
| v1 | : data related to the first I-vertex. |
| v2 | : data related to the second I-vertex. |
| LineTes::Halfedge_handle compute_next_hf | ( | LineTes::Halfedge_handle | e | ) |
Compute the next halfedge along a segment.
| e | halfedge whose neighbour is to be computed |
| LineTes::Halfedge_handle compute_prev_hf | ( | LineTes::Halfedge_handle | e | ) |
Compute the previous halfedge along a segment.
| e | halfedge whose neighbour is to be computed |
Return the length of an internal T-tessellation segment.
If the segment is not internal, zero is returned.
| bool exist_halfedge | ( | LineTes & | tesl, |
| LineTes::Halfedge_handle | e | ||
| ) |
Test whether a halfedge handle is valid.
Just check whether the halfedge handle can be found within the halfedge iterators.
| tesl | : the line tessellation to be searched. |
| e | : halfedge to be checked. |
| Polygon face2poly | ( | TTessel::Face_handle | f | ) |
Returns a Polygon object representing a face of the tessellation.
Only vertices joining non-aligned edges are specified during the Polygon construction.
Fill a CatVector object with the elements of a FVector object.
| v | : the CatVector to be filled |
| x | : the input object |
The lengths of arguments must fit.
Find a tessellation halfedge ending at two given points.
| tesl | : a tessellation. |
| p1 | : a point. |
| p2 | : another point. |
| bool is_a_T_vertex | ( | LineTes::Vertex_handle | v, |
| bool | verbose | ||
| ) |
Test whether a vertex of a line tessellation is a T-vertex.
| v | : vertex to be tested. |
| verbose | : if true, information about I-vertex processing is sent to the standard output. Default to false. |
Test whether a point is in the interior of the tessellated domain.
Test whether a point is in the interior of the tessellated domain.
Test whether a segment of a T-tessellation is internal.
| s | : a vector containing the two ends of the segment to be tested. The ends must be Point2 objects. |
| t | : a pointer to the T-tessellation. |
A segment is considered as internal if it is not fully contained in the domain boundary.
Return -1.
| s | : a tessellation segment as a vector of its 2 ends. |
| t | : the tessellation to be considered. |
Silly function that can be used by an Energy object for specifying minus the number of segment as a tessellation feature.
| unsigned long int number_of_internal_vertices | ( | TTessel & | t | ) |
Return the total number of internal vertices.
| t | : the T-tessellation. |
A vertex is internal if it does not lie on the boundary of the tessellated domain.
| double precompute_lengthening | ( | Arrangement::Halfedge_handle | e, |
| Arrangement::Halfedge_handle * | ehit, | ||
| Point2 * | p | ||
| ) |
Predict added length when lengthening an edge in an arrangement.
| [in] | e | : halfedge that would be lengthened. |
| [out] | ehit | : halfedge where lengthening would end. |
| [out] | p | : location of the end of lengthening. |
Predict what would happen if an edge in an arrangement is extended to the next existing edge.
Return 1.
| s | : a tessellation segment as a vector of its 2 ends. |
| t | : the tessellation to be considered. |
Silly function that can be used by an Energy object for specifying the number of tessellation segments as a feature.
| void set_junction | ( | LineTes::Halfedge_handle | e1, |
| LineTes::Halfedge_handle | e2 | ||
| ) |
Set neighbour relationships between two halfedges.
| e1 | : halfedge. |
| e2 | : other halfedge supposed to follow e1 on the same segment. |
| double sum_of_angles_obt | ( | TTessel * | t | ) |
Return the sum of obtuse angles on all faces of a T-tessellation.
| t | : the tessellation to be considered. |
| double sum_of_faces_squared_areas | ( | TTessel * | t | ) |
Return the sum of squared areas of all faces of a T-tessellation.
| t | : the tessellation to be considered. |
| double sum_of_min_angles | ( | TTessel * | t | ) |
Return the sum of smallest angles on all faces of a T-tessellation.
| t | : the tessellation to be considered. |
| double sum_of_segment_squared_sizes | ( | TTessel * | t | ) |
Return the sum of squared numbers of edges on all segments of a T-tessellation.
| t | : the tessellation to be considered. |
| CGAL::Random* rnd |
LiTe random generator.
LiTe implements several stochastic algorihtms where this generator is used.
1.8.6