\( \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 5.0 - 2D Placement of Streamlines
Integrator_2 Concept Reference

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

◆ operator()() [1/3]

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.

◆ operator()() [2/3]

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.

◆ operator()() [3/3]

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.