Gnash
0.8.10
|
Defines an edge with a control point and an anchor point. More...
#include <Geometry.h>
Public Member Functions | |
Edge () | |
Edge (boost::int32_t cx, boost::int32_t cy, boost::int32_t ax, boost::int32_t ay) | |
Edge (const Edge &from) | |
Edge (const point &ncp, const point &nap) | |
bool | straight () const |
void | transform (const SWFMatrix &mat) |
Transform the edge according to the given SWFMatrix. | |
Static Public Member Functions | |
static double | squareDistancePtSeg (const point &p, const point &A, const point &B) |
Return squared distance between point pt and segment A-B. | |
static double | distancePtSeg (const point &pt, const point &A, const point &B) |
Return distance between point pt and segment A-B. | |
static point | pointOnCurve (const point &A, const point &C, const point &B, float t) |
Find point of the quadratic curve defined by points A,C,B. | |
static boost::int64_t | squareDistancePtCurve (const point &A, const point &C, const point &B, const point &p, float t) |
Public Attributes | |
point | cp |
point | ap |
Defines an edge with a control point and an anchor point.
Could be a quadratic bezier curve, or a straight line(degenerated curve).
gnash::Edge::Edge | ( | ) | [inline] |
gnash::Edge::Edge | ( | boost::int32_t | cx, |
boost::int32_t | cy, | ||
boost::int32_t | ax, | ||
boost::int32_t | ay | ||
) | [inline] |
gnash::Edge::Edge | ( | const Edge & | from | ) | [inline] |
static double gnash::Edge::distancePtSeg | ( | const point & | pt, |
const point & | A, | ||
const point & | B | ||
) | [inline, static] |
Return distance between point pt and segment A-B.
References squareDistancePtSeg().
static point gnash::Edge::pointOnCurve | ( | const point & | A, |
const point & | C, | ||
const point & | B, | ||
float | t | ||
) | [inline, static] |
Find point of the quadratic curve defined by points A,C,B.
A | The first point |
C | The second point (control point) |
B | The third point (anchor point) |
t | the step factor between 0 and 1 |
References gnash::key::R.
Referenced by squareDistancePtCurve(), and gnash::Path::withinSquareDistance().
static boost::int64_t gnash::Edge::squareDistancePtCurve | ( | const point & | A, |
const point & | C, | ||
const point & | B, | ||
const point & | p, | ||
float | t | ||
) | [inline, static] |
Return square distance between point pt and the point on curve found by applying the T parameter to the quadratic bezier curve function
A | The first point of the bezier curve |
C | The second point of the bezier curve (control point) |
B | The third point of the bezier curve (anchor point) |
p | The point we want to compute distance from |
t | the step factor between 0 and 1 |
References gnash::geometry::Point2d::squareDistance(), and pointOnCurve().
static double gnash::Edge::squareDistancePtSeg | ( | const point & | p, |
const point & | A, | ||
const point & | B | ||
) | [inline, static] |
Return squared distance between point pt and segment A-B.
References gnash::geometry::Point2d::x, gnash::geometry::Point2d::y, gnash::geometry::Point2d::squareDistance(), and gnash::key::u.
Referenced by distancePtSeg(), and gnash::Path::withinSquareDistance().
bool gnash::Edge::straight | ( | ) | const [inline] |
void gnash::Edge::transform | ( | const SWFMatrix & | mat | ) | [inline] |
Transform the edge according to the given SWFMatrix.
References gnash::SWFMatrix::transform(), ap, and cp.