Tizen Native API
9.0
|
Functions | |
void | eina_bezier_values_set (Eina_Bezier *b, double start_x, double start_y, double ctrl_start_x, double ctrl_start_y, double ctrl_end_x, double ctrl_end_y, double end_x, double end_y) |
Sets the values of the points of the given floating point cubic bezier curve. | |
void | eina_bezier_values_get (const Eina_Bezier *b, double *start_x, double *start_y, double *ctrl_start_x, double *ctrl_start_y, double *ctrl_end_x, double *ctrl_end_y, double *end_x, double *end_y) |
Gets the values of the points of the given floating point cubic bezier curve. | |
double | eina_bezier_length_get (const Eina_Bezier *b) |
Calculates the approximate length of the given floating point cubic bezier curve. | |
double | eina_bezier_t_at (const Eina_Bezier *b, double len) |
Returns the relative position on a bezier at a given length. | |
void | eina_bezier_point_at (const Eina_Bezier *b, double t, double *px, double *py) |
Gets the point on the bezier curve at position t. | |
double | eina_bezier_angle_at (const Eina_Bezier *b, double t) |
Determines the slope of the bezier at a given position. | |
void | eina_bezier_split_at_length (const Eina_Bezier *b, double len, Eina_Bezier *left, Eina_Bezier *right) |
Splits the bezier at a given length. | |
void | eina_bezier_bounds_get (const Eina_Bezier *b, double *x, double *y, double *w, double *h) |
Calculates the bounding box for the bezier. | |
void | eina_bezier_on_interval (Eina_Bezier *b, double t0, double t1, Eina_Bezier *result) |
Finds the bezier between the given interval. | |
Typedefs | |
typedef struct _Eina_Bezier | Eina_Bezier |
Typedef Documentation
typedef struct _Eina_Bezier Eina_Bezier |
Floating point cubic bezier curve
Function Documentation
double eina_bezier_angle_at | ( | const Eina_Bezier * | b, |
double | t | ||
) |
Determines the slope of the bezier at a given position.
- Parameters:
-
[in] b The floating point bezier. [out] t The position along the bezier between 0.0 and 1.0.
No check is done on b
.
- Since (EFL) :
- 1.16
- Since :
- 3.0
void eina_bezier_bounds_get | ( | const Eina_Bezier * | b, |
double * | x, | ||
double * | y, | ||
double * | w, | ||
double * | h | ||
) |
Calculates the bounding box for the bezier.
- Parameters:
-
[in] b The floating point bezier. [out] x The X coordinate of the bounding box. [out] y The Y coordinate of the bounding box. [out] w The width of the bounding box. [out] h The height of the bounding box.
No check is done on b
.
- Since (EFL) :
- 1.17
- Since :
- 3.0
double eina_bezier_length_get | ( | const Eina_Bezier * | b | ) |
Calculates the approximate length of the given floating point cubic bezier curve.
- Parameters:
-
[in] b The floating point bezier.
- Returns:
- The bezier's length.
The curve length is approximated using the Alpha max plus beta min algorithm, which is designed to give fast results with a maximum error of less than 7% compared with the correct value.
No check is done on b
.
- Since (EFL) :
- 1.16
- Since :
- 3.0
void eina_bezier_on_interval | ( | Eina_Bezier * | b, |
double | t0, | ||
double | t1, | ||
Eina_Bezier * | result | ||
) |
Finds the bezier between the given interval.
- Parameters:
-
[in] b The floating point bezier. [in] t0 The start of the interval. [in] t1 The end of the interval. [out] result The resulting bezier.
No check is done on b
.
- Since (EFL) :
- 1.17
void eina_bezier_point_at | ( | const Eina_Bezier * | b, |
double | t, | ||
double * | px, | ||
double * | py | ||
) |
Gets the point on the bezier curve at position t.
- Parameters:
-
[in] b The floating point bezier. [in] t The floating point position between 0.0 and 1.0. [out] px The corresponding point's X coordinate. [out] py The corresponding point's Y coordinate.
No check is done on b
.
- Since (EFL) :
- 1.16
- Since :
- 3.0
void eina_bezier_split_at_length | ( | const Eina_Bezier * | b, |
double | len, | ||
Eina_Bezier * | left, | ||
Eina_Bezier * | right | ||
) |
Splits the bezier at a given length.
- Parameters:
-
[in] b The floating point bezier. [in] len The length along the bezier to make the split. [out] left The resultant split's left portion of the bezier. [out] right The resultant split's right portion of the bezier.
No check is done on b
.
- Since (EFL) :
- 1.16
- Since :
- 3.0
double eina_bezier_t_at | ( | const Eina_Bezier * | b, |
double | len | ||
) |
Returns the relative position on a bezier at a given length.
- Parameters:
-
[in] b The floating point bezier. [in] len The length along the bezier curve.
- Returns:
- The relative position from 0.0 to 1.0.
Calculates the proportional location on b
as a number from 0.0 to 1.0 that corresponds to a distance len
along it. Returns 1.0 if len
is equal or greater than the bezier's length.
No check is done on b
.
- Since (EFL) :
- 1.16
- Since :
- 3.0
void eina_bezier_values_get | ( | const Eina_Bezier * | b, |
double * | start_x, | ||
double * | start_y, | ||
double * | ctrl_start_x, | ||
double * | ctrl_start_y, | ||
double * | ctrl_end_x, | ||
double * | ctrl_end_y, | ||
double * | end_x, | ||
double * | end_y | ||
) |
Gets the values of the points of the given floating point cubic bezier curve.
- Parameters:
-
[in] b The floating point bezier. [out] start_x x coordinate of start point. [out] start_y y coordinate of start point. [out] ctrl_start_x x coordinate of 1st control point. [out] ctrl_start_y y coordinate of 1st control point. [out] ctrl_end_x x coordinate of 2nd control point. [out] ctrl_end_y y coordinate of 2nd control point. [out] end_x x coordinate of end point. [out] end_y y coordinate of end point.
b
. No check is done on b
.
- Since (EFL) :
- 1.16
- Since :
- 3.0
void eina_bezier_values_set | ( | Eina_Bezier * | b, |
double | start_x, | ||
double | start_y, | ||
double | ctrl_start_x, | ||
double | ctrl_start_y, | ||
double | ctrl_end_x, | ||
double | ctrl_end_y, | ||
double | end_x, | ||
double | end_y | ||
) |
Sets the values of the points of the given floating point cubic bezier curve.
- Parameters:
-
[out] b The floating point bezier. [in] start_x The x coordinate of the start point. [in] start_y The y coordinate of the start point. [in] ctrl_start_x The x coordinate of the 1st control point. [in] ctrl_start_y The y coordinate of the 1st control point. [in] ctrl_end_x The X coordinate of the 2nd control point. [in] ctrl_end_y The Y coordinate of the 2nd control point. [in] end_x The X coordinate of the end point. [in] end_y The Y coordinate of the end point.
b
. No check is done on b
.
- Since (EFL) :
- 1.16
- Since :
- 3.0