\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.7 - 2D Generalized Barycentric Coordinates
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Barycentric_coordinates::Triangle_coordinates_2< Traits > Class Template Reference

#include <CGAL/Barycentric_coordinates_2/Triangle_coordinates_2.h>

Definition

The class Triangle_coordinates_2 implements barycentric coordinates ( [1], [2] ) with respect to an arbitrary non-degenerate triangle in the plane.

This class is parameterized by a traits class Traits.

Template Parameters
Traitsmust be a model of the concept BarycentricTraits_2.
Examples:
Barycentric_coordinates_2/Triangle_coordinates_example.cpp, and Barycentric_coordinates_2/Triangle_coordinates_speed_test.cpp.

Related Functions

(Note that these are not member functions.)

template<class Traits >
CGAL::cpp11::array< typename
Traits::FT, 3 > 
compute_triangle_coordinates_2 (const typename Traits::Point_2 &first_vertex, const typename Traits::Point_2 &second_vertex, const typename Traits::Point_2 &third_vertex, const typename Traits::Point_2 &query_point, const Traits &barycentric_traits=Traits())
 

Types

typedef Traits::FT FT
 Number type.
 
typedef Traits::Point_2 Point_2
 Point type.
 
typedef unspecified_type Vertex_range
 Range of vertices in a triangle. More...
 

Creation

 Triangle_coordinates_2 (const Point_2 &first_vertex, const Point_2 &second_vertex, const Point_2 &third_vertex, const Traits &b_traits=Traits())
 Creates the class Triangle_coordinates_2 that implements triangle coordinates with respect to an arbitrary non-degenerate triangle in the plane. More...
 

Computation

template<class OutputIterator >
boost::optional< OutputIteratoroperator() (const Point_2 &query_point, OutputIterator output)
 Computes triangle barycentric coordinates for a chosen query point with respect to all three vertices of the triangle. More...
 

Endpoint Accessors

const Vertex_rangevertices () const
 Returns all the vertices of the triangle.
 
const Point_2first_vertex () const
 Returns the first vertex of the triangle.
 
const Point_2second_vertex () const
 Returns the second vertex of the triangle.
 
const Point_2third_vertex () const
 Returns the third vertex of the triangle.
 

Member Typedef Documentation

Range of vertices in a triangle.

This type is a model of the concept Range. Its iterator type is RandomAccessIterator, and its value type is Traits::Point_2.

Constructor & Destructor Documentation

template<class Traits >
CGAL::Barycentric_coordinates::Triangle_coordinates_2< Traits >::Triangle_coordinates_2 ( const Point_2 first_vertex,
const Point_2 second_vertex,
const Point_2 third_vertex,
const Traits &  b_traits = Traits() 
)

Creates the class Triangle_coordinates_2 that implements triangle coordinates with respect to an arbitrary non-degenerate triangle in the plane.

The triangle is given by its three vertices.

Precondition
Triangle is not degenerate.

Member Function Documentation

template<class Traits >
template<class OutputIterator >
boost::optional<OutputIterator> CGAL::Barycentric_coordinates::Triangle_coordinates_2< Traits >::operator() ( const Point_2 query_point,
OutputIterator  output 
)

Computes triangle barycentric coordinates for a chosen query point with respect to all three vertices of the triangle.

Computed coordinates are stored in the output iterator output.

Friends And Related Function Documentation

template<class Traits >
CGAL::cpp11::array< typename Traits::FT, 3 > compute_triangle_coordinates_2 ( const typename Traits::Point_2 &  first_vertex,
const typename Traits::Point_2 &  second_vertex,
const typename Traits::Point_2 &  third_vertex,
const typename Traits::Point_2 &  query_point,
const Traits &  barycentric_traits = Traits() 
)
related

This is a global function that takes three vertices of a triangle and computes triangle coordinates at a given query point with respect to these vertices.

Template Parameters
Traitsmust be a model of the concept BarycentricTraits_2.