Represents a quadratic or cubic BezierCurve.
More...
#include <luciad/geometries/BezierCurve.h>
|
size_t | getHash () const override |
| Returns the hash value for this geometry. More...
|
|
virtual size_t | getHash () const =0 |
| Returns the hash value for this geometry. More...
|
|
Represents a quadratic or cubic BezierCurve.
A Bézier curve is defined by 3 or 4 control points:
-
the start point
-
one control point for a quadratic curve, or two control points for a cubic curve
-
the end point
- See also
- GeometryFactory::createQuadraticBezierCurve
-
GeometryFactory::createCubicBezierCurve
◆ ~BezierCurve()
luciad::BezierCurve::~BezierCurve |
( |
| ) |
|
|
override |
◆ computePoint()
Coordinate luciad::BezierCurve::computePoint |
( |
double |
parameter | ) |
const |
|
overridevirtual |
Computes a point of the curve, defined by the given parameter.
- At parameter 0, the point is the start point of the curve.
- At parameter 1, the point is the end point of the curve.
- Parameters
-
parameter | the parameter value, within [0,1] , to compute the point location for. |
- Returns
- the computed point location.
- Exceptions
-
luciad::InvalidArgumentException | if parameter is not within [0,1] , or if the point could not be computed. For example, when the curve is defined by invalid points. |
Implements luciad::Curve.
◆ getBounds()
Bounds luciad::BezierCurve::getBounds |
( |
| ) |
const |
|
overridevirtual |
Returns the bounds for the geometry object.
- Returns
- the bounds for the geometry object.
- Exceptions
-
Implements luciad::Geometry.
◆ getControlPoint()
Coordinate luciad::BezierCurve::getControlPoint |
( |
size_t |
index | ) |
const |
Retrieves the control point at the given index.
The available indices depends on the degree of the Bézier curve.
- Quadratic Bézier curve (degree 2 => 3 control points):
- 0 => start control point
- 1 => intermediate control point
- 2 => end control point
- Cubic Bézier curve (degree 3 => 4 control points):
- 0 => start control point
- 1 or 2 => intermediate control points
- 3 => end control point
Using indices out of this range will result in an exception.
Bézier curves with a higher degree are currently not supported.
- Parameters
-
index | the index of the control point |
- Returns
- a copy of the Bézier curve with a moved control point.
- Exceptions
-
InvalidArgumentException | when the index of the control point is out of range (i.e. larger than 2 or 3, depending on the degree of the Bézier curve) |
- Since
- 2024.1
◆ getControlPointCount()
size_t luciad::BezierCurve::getControlPointCount |
( |
| ) |
const |
Returns the amount of control points defining the Bézier curve.
- For a quadratic curve, it returns 3.
- For a cubic curve, it returns 4.
- Returns
- the amount of control points defining the Bézier curve.
- Since
- 2024.1
◆ getEndPoint()
Coordinate luciad::BezierCurve::getEndPoint |
( |
| ) |
const |
Returns the end point (third control point) of the quadratic Bézier curve.
- Returns
- the end point (third control point) of the quadratic Bézier curve.
◆ getHash()
size_t luciad::BezierCurve::getHash |
( |
| ) |
const |
|
overrideprotectedvirtual |
Returns the hash value for this geometry.
- Returns
- the hash value for this geometry.
Implements luciad::Geometry.
◆ getLength2D()
double luciad::BezierCurve::getLength2D |
( |
| ) |
const |
|
overridevirtual |
Returns the length of the curve.
- Returns
- the length of the curve.
- Exceptions
-
Implements luciad::Curve.
◆ getReference()
Returns the coordinate reference of the geometry.
- Returns
- the coordinate reference of the geometry.
Implements luciad::Geometry.
◆ getStartPoint()
Coordinate luciad::BezierCurve::getStartPoint |
( |
| ) |
const |
Returns the start point (first control point) of the quadratic Bézier curve.
- Returns
- the start point (first control point) of the quadratic Bézier curve.
◆ moveControlPoint()
std::shared_ptr< BezierCurve > luciad::BezierCurve::moveControlPoint |
( |
Coordinate |
newLocation, |
|
|
size_t |
index |
|
) |
| const |
Moves the control point at the given index to a new location.
The available indices depends on the degree of the Bézier curve.
- Quadratic Bézier curve (degree 2 => 3 control points):
- 0 => start control point
- 1 => intermediate control point
- 2 => end control point
- Cubic Bézier curve (degree 3 => 4 control points):
- 0 => start control point
- 1 or 2 => intermediate control points
- 3 => end control point
Using indices out of this range will result in an exception.
Bézier curves with a higher degree are currently not supported.
- Parameters
-
newLocation | the new location of the control point. |
index | the index of the control point |
- Returns
- a copy of the Bézier curve with a moved control point.
- Exceptions
-
InvalidArgumentException | when the index of the control point is out of range (i.e. larger than 2 or 3, depending on the degree of the Bézier curve) |
- Since
- 2024.1
◆ moveEndPoint()
Returns a copy of the Bézier curve with a moved end point.
- Parameters
-
newLocation | the new location of the point. |
- Returns
- a copy of the Bézier curve with a moved end point.
◆ moveStartPoint()
Returns a copy of the Bézier curve with a moved start point.
- Parameters
-
newLocation | the new location of the point. |
- Returns
- a copy of the Bézier curve with a moved start point.