CGAL 6.2 - 3D Generalized Barycentric Coordinates

Loading...
Searching...
No Matches
List of all members
BarycentricTraits_3 Concept Reference
3D Generalized Barycentric Coordinates Reference » Concepts

## Definition

A concept that describes the set of requirements of the template parameter `GeomTraits` used to parameterize all classes and functions with 3D barycentric coordinates from the namespace `CGAL::Barycentric_coordinates`. The concept `BarycentricTraits_3` extends the concept `BarycentricTraits_2` and adds the requirements for 3D objects.

Generalizes:
  `BarycentricTraits_2`

Has models
  All models of the CGAL concept `Kernel`

## Types
typedef unspecified_type | FT
| A model of `FieldNumberType`.

## 3D Geometric Objects
typedef unspecified_type | Point_3
| A model of `Kernel::Point_3`.
typedef unspecified_type | Vector_3
| A model of `Kernel::Vector_3`.
typedef unspecified_type | Plane_3
| A model of `Kernel::Plane_3`.

## 2D Geometric Objects
typedef unspecified_type | Point_2
| A model of `Kernel::Point_2`.
typedef unspecified_type | Vector_2
| A model of `Kernel::Vector_2`.
typedef unspecified_type | Triangle_2
| A model of `Kernel::Triangle_2`.
typedef unspecified_type | Iso_rectangle_2
| A model of `Kernel::Iso_rectangle_2`.

## 3D Generalized Constructions
typedef unspecified_type | Compute_approximate_angle_3
| A construction object that must provide the function operator:
typedef unspecified_type | Compute_determinant_3
| A construction object that must provide the function operator:
typedef unspecified_type | Compute_scalar_product_3
| A construction object that must provide the function operator:
typedef unspecified_type | Compute_squared_length_3
| A construction object that must provide the function operator:
typedef unspecified_type | Compute_volume_3
| A construction object that must provide the function operator:
typedef unspecified_type | Cartesian_const_iterator_3
| A model of `CartesianConstIterator_3`.
typedef unspecified_type | Construct_cartesian_const_iterator_3
| A construction object that must provide the function operator:
typedef unspecified_type | Construct_cross_product_vector_3
| A construction object that must provide the function operator:
typedef unspecified_type | Construct_projected_xy_point_2
| A construction object that must provide the function operator:
typedef unspecified_type | Construct_plane_3
| A construction object that must provide the function operator:
typedef unspecified_type | Construct_divided_vector_3
| A construction object that must provide the function operator:
typedef unspecified_type | Construct_point_3
| A construction object that must provide the function operator:
typedef unspecified_type | Construct_scaled_vector_3
| A construction object that must provide the function operator:
typedef unspecified_type | Construct_vector_3
| A construction object that must provide the function operator:

## 2D Generalized Constructions
typedef unspecified_type | Compute_area_2
| A construction object that must provide the function operator:
typedef unspecified_type | Compute_squared_distance_2
| A construction object that must provide the function operator:
typedef unspecified_type | Compute_scalar_product_2
| A construction object that must provide the function operator:
typedef unspecified_type | Construct_vector_2
| A construction object that must provide the function operator:

## 2D Generalized Predicates
typedef unspecified_type | Collinear_2
| A predicate object that must provide the function operator:
typedef unspecified_type | Collinear_are_ordered_along_line_2
| A predicate object that must provide the function operator:
typedef unspecified_type | Compare_x_2
| A predicate object that must provide the function operator:
typedef unspecified_type | Compare_y_2
| A predicate object that must provide the function operator:
typedef unspecified_type | Equal_2
| A predicate object that must provide the function operator:
typedef unspecified_type | Less_xy_2
| A predicate object that must provide the function operator:
typedef unspecified_type | Orientation_2
| A predicate object that must provide the function operator:
Collinear_2 | collinear_2_object ()
| The following functions give access to the predicate and constructor objects.

## Member Typedef Documentation

## ◆ Collinear_2

typedef unspecified_type BarycentricTraits_3::Collinear_2

A predicate object that must provide the function operator:

`bool operator()(Point_2 p, Point_2 q, Point_2 r)`

that returns `true` if the points `p`, `q`, and `r` are collinear and `false` otherwise.

## ◆ Collinear_are_ordered_along_line_2

typedef unspecified_type BarycentricTraits_3::Collinear_are_ordered_along_line_2

A predicate object that must provide the function operator:

`bool operator()(Point_2 p, Point_2 q, Point_2 r)`

that returns `true`, iff `q` lies between `p` and `r` and `p`, `q`, and `r` satisfy the precondition that they are collinear.

## ◆ Compare_x_2

typedef unspecified_type BarycentricTraits_3::Compare_x_2

A predicate object that must provide the function operator:

`Comparison_result operator()(Point_2 p, Point_2 q)`

that returns `SMALLER, EQUAL` or `LARGER` according to the \( x\)-ordering of points `p` and `q`.

## ◆ Compare_y_2

typedef unspecified_type BarycentricTraits_3::Compare_y_2

A predicate object that must provide the function operator:

`Comparison_result operator()(Point_2 p, Point_2 q)`

that returns `SMALLER, EQUAL` or `LARGER` according to the \( y\)-ordering of points `p` and `q`.

## ◆ Compute_approximate_angle_3

typedef unspecified_type BarycentricTraits_3::Compute_approximate_angle_3

A construction object that must provide the function operator:

`FT operator(Vector_3 u, Vector_3 v)`

that returns an approximation of the angle between `u` and `v`. The angle is given in degrees.

## ◆ Compute_area_2

typedef unspecified_type BarycentricTraits_3::Compute_area_2

A construction object that must provide the function operator:

`FT operator(Point_2 p0, Point_2 p1, Point_3 p2)`

that returns the signed area of the triangle defined by the three points `p0`, `p1`, and `p2`.

## ◆ Compute_determinant_3

typedef unspecified_type BarycentricTraits_3::Compute_determinant_3

A construction object that must provide the function operator:

`FT operator(Vector_3 u, Vector_3 v, Vector_3 w)`

that returns the determinant of the three vectors `u`, `v` and `w`.

## ◆ Compute_scalar_product_2

typedef unspecified_type BarycentricTraits_3::Compute_scalar_product_2

A construction object that must provide the function operator:

`FT operator()(Vector_2 v, Vector_2 w)`

that returns the scalar product of the vectors `v` and `w`.

## ◆ Compute_scalar_product_3

typedef unspecified_type BarycentricTraits_3::Compute_scalar_product_3

A construction object that must provide the function operator:

`FT operator(Vector_3 v, Vector_3 w)`

that returns the scalar (inner) product of the two vectors `v` and `w`.

## ◆ Compute_squared_distance_2

typedef unspecified_type BarycentricTraits_3::Compute_squared_distance_2

A construction object that must provide the function operator:

`FT operator()(Point_2 p, Point_2 q),`

which returns the squared distance between `p` and `q`.

## ◆ Compute_squared_length_3

typedef unspecified_type BarycentricTraits_3::Compute_squared_length_3

A construction object that must provide the function operator:

`FT operator()(const Vector_3& v)`

that returns the squared length of the vector `v`.

## ◆ Compute_volume_3

typedef unspecified_type BarycentricTraits_3::Compute_volume_3

A construction object that must provide the function operator:

`FT operator(Point_3 p0, Point_3 p1, Point_3 p2, Point_3 p3)`

that returns the signed volume of the tetrahedron defined by the four points `p0`, `p1`, `p2`, and `p3`.

## ◆ Construct_cartesian_const_iterator_3

typedef unspecified_type BarycentricTraits_3::Construct_cartesian_const_iterator_3

A construction object that must provide the function operator:

`Cartesian_const_iterator_3 operator() (Point_3 p)`

returns an iterator on the zeroth Cartesian coordinate of p.

## ◆ Construct_cross_product_vector_3

typedef unspecified_type BarycentricTraits_3::Construct_cross_product_vector_3

A construction object that must provide the function operator:

`Vector_3 operator(Vector_3 u, Vector_3 v)`

that returns the cross product between `u` and `v`.

## ◆ Construct_divided_vector_3

typedef unspecified_type BarycentricTraits_3::Construct_divided_vector_3

A construction object that must provide the function operator:

`Vector_3 operator()(Vector_3 v, FT t)`

returning the vector `v / t`.

## ◆ Construct_plane_3

typedef unspecified_type BarycentricTraits_3::Construct_plane_3

A construction object that must provide the function operator:

`Plane_3 operator()(Point_3 p, Point_3 q, Point_3 r)`,

which constructs a plane passing through `p`, `q`, and `r` and oriented in a positive sense when seen from the positive side of the plane.

## ◆ Construct_point_3

typedef unspecified_type BarycentricTraits_3::Construct_point_3

A construction object that must provide the function operator:

`Point_3 operator(FT x, FT y, FT z)`

that returns the point with coordinates `x`, `y` and `z`.

## ◆ Construct_projected_xy_point_2

typedef unspecified_type BarycentricTraits_3::Construct_projected_xy_point_2

A construction object that must provide the function operator:

`Point_2 operator()(Plane_3 h, Point_3 p)`,

which returns image point of the projection of `p` under an affine transformation, which maps `h` onto the `xy`-plane, with the `z`-coordinate removed.

## ◆ Construct_scaled_vector_3

typedef unspecified_type BarycentricTraits_3::Construct_scaled_vector_3

A construction object that must provide the function operator:

`Vector_3 operator()(Vector_3 v, FT t)`

returning the vector `v * t`.

## ◆ Construct_vector_2

typedef unspecified_type BarycentricTraits_3::Construct_vector_2

A construction object that must provide the function operator:

`Vector_2 operator()(Point_2 a, Point_2 b)`

that computes the vector `b-a`.

## ◆ Construct_vector_3

typedef unspecified_type BarycentricTraits_3::Construct_vector_3

A construction object that must provide the function operator:

`Vector_3 operator(Point_3 p, Point_3 q)`

that returns the vector `q` - `p`.

## ◆ Equal_2

typedef unspecified_type BarycentricTraits_3::Equal_2

A predicate object that must provide the function operator:

`bool operator()(Point_2 p, Point_2 q)`,

which returns `true` iff `p` is equal to `q`.

## ◆ Less_xy_2

typedef unspecified_type BarycentricTraits_3::Less_xy_2

A predicate object that must provide the function operator:

`bool operator()(Point_2 p, Point_2 q)`

where `true` is returned iff \( p <_{xy} q\). We have \( p<_{xy}q\), iff \( p_x < q_x\) or \( p_x = q_x\) and \( p_y < q_y\), where \( p_x\) and \( p_y\) denote \( x\) and \( y\) coordinate of point \( p\), respectively.

## ◆ Orientation_2

typedef unspecified_type BarycentricTraits_3::Orientation_2

A predicate object that must provide the function operator:

`Orientation operator()(Point_2 p, Point_2 q, Point_2 r)`

that returns `CGAL::LEFT_TURN` if `r` lies to the left of the oriented line `l` defined by `p` and `q`, returns `CGAL::RIGHT_TURN` if `r` lies to the right of `l`, and returns `CGAL::COLLINEAR` if `r` lies on `l`.