#include <CircularArc.h>
|
|
using | CoordinateXY = geom::CoordinateXY |
| |
|
|
| CircularArc (const CoordinateXY &q0, const CoordinateXY &q1, const CoordinateXY &q2) |
| |
|
| CircularArc (double theta0, double theta2, const CoordinateXY ¢er, double radius, int orientation) |
| |
|
| CircularArc (const CoordinateXY &q0, const CoordinateXY &q2, const CoordinateXY ¢er, double radius, int orientation) |
| |
| int | getOrientation () const |
| |
|
bool | isCCW () const |
| |
|
const CoordinateXY & | getCenter () const |
| | Return the center point of the circle associated with this arc.
|
| |
|
double | getRadius () const |
| | Return the radius of the circle associated with this arc.
|
| |
|
bool | isCircle () const |
| | Return whether this arc forms a complete circle.
|
| |
|
bool | isLinear () const |
| | Returns whether this arc forms a straight line (p0, p1, and p2 are collinear)
|
| |
| double | getAngle () const |
| | Return the inner angle of the sector associated with this arc.
|
| |
|
double | getLength () const |
| | Return the length of the arc.
|
| |
|
double | getArea () const |
| | Return the area enclosed by the arc p0-p1-p2 and the line segment p2-p0.
|
| |
|
double | getSagitta () const |
| | Return the distance from the centerpoint of the arc to the line segment formed by the end points of the arc.
|
| |
|
double | theta0 () const |
| | Return the angle of p0.
|
| |
|
double | theta2 () const |
| | Return the angle of p2.
|
| |
| bool | containsPointOnCircle (const CoordinateXY &q) const |
| |
| bool | containsPoint (const CoordinateXY &q) const |
| |
|
bool | containsAngle (double theta) const |
| | Check to see if a given angle lies on this arc.
|
| |
| bool | isUpwardAtPoint (const CoordinateXY &q) const |
| |
|
std::pair< CircularArc, CircularArc > | splitAtPoint (const CoordinateXY &q) const |
| |
|
Iterator | begin () const |
| |
|
Iterator | end () const |
| |
|
|
CoordinateXY | p0 |
| |
|
CoordinateXY | p1 |
| |
|
CoordinateXY | p2 |
| |
A CircularArc is a reference to three points that define a circular arc. It provides for the lazy calculation of various arc properties such as the center, radius, and orientation
◆ containsPoint()
| bool geos::geom::CircularArc::containsPoint |
( |
const CoordinateXY & |
q | ) |
const |
|
inline |
Check to see if a coordinate lies on the arc, after testing whether it lies on the circle.
◆ containsPointOnCircle()
| bool geos::geom::CircularArc::containsPointOnCircle |
( |
const CoordinateXY & |
q | ) |
const |
|
inline |
Check to see if a coordinate lies on the arc Only the angle is checked, so it is assumed that the point lies on the circle of which this arc is a part.
◆ getAngle()
| double geos::geom::CircularArc::getAngle |
( |
| ) |
const |
|
inline |
Return the inner angle of the sector associated with this arc.
Even Rouault: potential optimization?: using crossproduct(p0 - center, p2 - center) = radius * radius * sin(angle) could yield the result by just doing a single asin(), instead of 2 atan2() actually one should also likely compute dotproduct(p0 - center, p2 - center) = radius * radius * cos(angle), and thus angle = atan2(crossproduct(p0 - center, p2 - center) , dotproduct(p0 - center, p2 - center) )
◆ getOrientation()
| int geos::geom::CircularArc::getOrientation |
( |
| ) |
const |
|
inline |
Return the orientation of the arc as one of:
- algorithm::Orientation::CLOCKWISE,
- algorithm::Orientation::COUNTERCLOCKWISE
- algorithm::Orientation::COLLINEAR
◆ isUpwardAtPoint()
| bool geos::geom::CircularArc::isUpwardAtPoint |
( |
const CoordinateXY & |
q | ) |
const |
|
inline |
Return true if the arc is pointing positive in the y direction at the location of a specified point. The point is assumed to be on the arc.
The documentation for this class was generated from the following file: