\( \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.8 - 2D Placement of Streamlines

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
Integrator_2 Concept Reference
Concepts

## Definition

The concept `Integrator_2` describes the set of requirements for the second template parameter of the class `CGAL::Stream_lines_2<VectorField_2,Integrator_2>`. This concept provides the operation that integrates a new point from a given point with a predefined step, and according to a specified vector.

Has Models:

  `CGAL::Euler_integrator_2<VectorField_2>`

  `CGAL::Runge_kutta_integrator_2<VectorField_2>`

## Types
typedef unspecified_type | FT
| The scalar type.
typedef unspecified_type | Point_2
| The point type.
typedef unspecified_type | Vector_2
| The vector type.
typedef unspecified_type | Vector_field_2
| The vector field type.

## Creation
| Integrator_2 ()
| Default constructor.

## Operations
The following operations return the newly integrated point.
Point_2 | operator() (Point_2 p, Vector_field_2 vector_field_2)
| Returns the new position from the actual position defined by `p`, according to the vector given by `vector_field_2` at `p`. More...
Point_2 | operator() (Point_2 p, Vector_field_2 vector_field_2, FT integration_step)
| As above. The integration step is defined by `integration_step`. More...
Point_2 | operator() (Point_2 p, Vector_field_2 vector_field_2, FT integration_step, bool direction)
| As above. In addition, this function integrates forward if `direction` is true, and backward if it is false. More...

## Member Function Documentation

Point_2 Integrator_2::operator() | ( | Point_2 | p,
|  | Vector_field_2 | vector_field_2
| ) |  |

Returns the new position from the actual position defined by `p`, according to the vector given by `vector_field_2` at `p`.

Precondition
  `vector_field_2.is_in_domain(p)` must be `true`.

Point_2 Integrator_2::operator() | ( | Point_2 | p,
|  | Vector_field_2 | vector_field_2,
|  | FT | integration_step
| ) |  |

As above. The integration step is defined by `integration_step`.

Precondition
  `vector_field_2.is_in_domain(p)` must be `true`.

Point_2 Integrator_2::operator() | ( | Point_2 | p,
|  | Vector_field_2 | vector_field_2,
|  | FT | integration_step,
|  | bool | direction
| ) |  |

As above. In addition, this function integrates forward if `direction` is true, and backward if it is false.

Precondition
  `vector_field_2.is_in_domain(p)` must be `true`.