#include <chart.h>
Public Member Functions | |
LinearBezierMapping () | |
LinearBezierMapping (const LinearBezierMapping &) | |
LinearBezierMapping (const Point< 2 > &, const Point< 2 > &, const Point< 2 > &, const Point< 2 > &) | |
~LinearBezierMapping () | |
LinearBezierMapping & | operator= (const LinearBezierMapping &x) |
void | setup () |
const Point< 2 > & | get_b_00 () const |
const Point< 2 > & | get_b_01 () const |
const Point< 2 > & | get_b_10 () const |
const Point< 2 > & | get_b_11 () const |
void | map_point (const Point< 2 > &, Point< 2 > &) const |
double | map_point (const double, const int) const |
void | map_point_inv (const Point< 2 > &, Point< 2 > &) const |
double | map_point_inv (const double, const int) const |
const double | Gram_factor (const Point< 2 > &x) const |
const double | Gram_D_factor (const unsigned int i, const Point< 2 > &x) const |
const double | Dkappa_inv (const unsigned int i, const unsigned int j, const Point< 2 > &x) const |
const bool | in_patch (const Point< 2 > &x) const |
const double | a_i (const int i) const |
const string | to_string () const |
Public Attributes | |
Point< 2 > | b_00 |
Point< 2 > | b_01 |
Point< 2 > | b_10 |
Point< 2 > | b_11 |
Static Public Attributes | |
static const string | className = "LinearBezierMapping" |
This class models parametrizations for arbitrary quadrangles in R^2. It's crucial functionality is to map a single point, lying in (0,1)^2 to a point in the quadrangle and vice versa. The involved mapping explicitely looks like:
k(s,t) := (1-s)*(1-t)b_00 + s*(1-t)b_10 + (1-s)*t*b_01 + s*t*b_11,
where the b_ij are the vertices of the qudrangle at hand.
MathTL::LinearBezierMapping::LinearBezierMapping | ( | ) | [inline] |
default constructor:
MathTL::LinearBezierMapping::LinearBezierMapping | ( | const LinearBezierMapping & | kappa | ) | [inline] |
copy constructor
MathTL::LinearBezierMapping::LinearBezierMapping | ( | const Point< 2 > & | _b_00, |
const Point< 2 > & | _b_01, | ||
const Point< 2 > & | _b_10, | ||
const Point< 2 > & | _b_11 | ||
) | [inline] |
constructor for initialization of the four vertices
MathTL::LinearBezierMapping::~LinearBezierMapping | ( | ) | [inline] |
virtual destructor
const double MathTL::LinearBezierMapping::a_i | ( | const int | i | ) | const [inline, virtual] |
return the i-th diagonal element in the case of kappa not depending on x TODO: shift this virtual method into a subclass of Chart
Implements MathTL::Chart< 2, 2 >.
const Point< 2 > & MathTL::LinearBezierMapping::get_b_00 | ( | ) | const [inline] |
access to vertices
double MathTL::LinearBezierMapping::map_point | ( | const double | , |
const int | |||
) | const [inline, virtual] |
special 1D version TODO: remove this member in this generic branch!
Implements MathTL::Chart< 2, 2 >.
double MathTL::LinearBezierMapping::map_point_inv | ( | const double | , |
const int | |||
) | const [inline, virtual] |
special 1D version TODO: remove this member in this generic branch!
Implements MathTL::Chart< 2, 2 >.
LinearBezierMapping& MathTL::LinearBezierMapping::operator= | ( | const LinearBezierMapping & | x | ) |
assignment operator
void MathTL::LinearBezierMapping::setup | ( | ) | [inline] |
setup routine, called by preceding constructor, sets up generic qudrangle, needed for beeingable to invert the mapping. idea: by appropriate shifting rotation and shearing, the qudrangle can be transformed into another qudrangle for which it is clear how its parametrization be inverted.
const string MathTL::LinearBezierMapping::to_string | ( | ) | const [virtual] |
returns a string representation of this object
Implements MathTL::Chart< 2, 2 >.
const string MathTL::LinearBezierMapping::className = "LinearBezierMapping" [static] |
static field to store the name of the class