|
Classes |
class | BoundingBox |
struct | ThrowingCatchAll |
class | ParametricCurve |
| The base class for any parametric curve. More...
|
class | ControlPointCurveBase |
| The base class for any curve defined by control points. More...
|
class | Line |
| A line segment. More...
|
class | Polyline |
| A polyline. More...
|
class | Arc |
| An arc. More...
|
class | Arc< 2 > |
class | PointNd |
class | VecNd |
class | Transform |
| A 4x4 matrix for transformations. More...
|
Namespaces |
namespace | detail |
Typedefs |
typedef BoundingBox< Point2d > | BoundingBox2d |
typedef BoundingBox< Point3d > | BoundingBox3d |
typedef shared_ptr< ParametricCurve< 2 > > | CurvePtr2d |
typedef shared_ptr< ParametricCurve< 3 > > | CurvePtr3d |
typedef std::vector< CurvePtr2d > | CompositeCurve2d |
typedef std::vector< CurvePtr3d > | CompositeCurve3d |
typedef Line< 2 > | Line2d |
typedef Line< 3 > | Line3d |
typedef Polyline< 2 > | Polyline2d |
typedef Polyline< 3 > | Polyline3d |
typedef Arc< 2 > | Arc2d |
typedef Arc< 3 > | Arc3d |
typedef boost::variant< geom::Point2d,
CurvePtr2d > | CurveIntersectionResult |
typedef std::vector< CurveIntersectionResult > | CurveIntersectionResults |
typedef PointNd< 2 > | Point2d |
| Definition of Point2d.
|
typedef VecNd< 2 > | Vec2d |
| Definition of Vec2d.
|
typedef PointNd< 3 > | Point3d |
| Definition of Point3d.
|
typedef VecNd< 3 > | Vec3d |
| Definition of Vec3d.
|
typedef PointNd< 4 > | Point4d |
| Definition of Point4d.
|
typedef VecNd< 4 > | Vec4d |
| Definition of Vec4d.
|
Functions |
int | maxBoxCoord (int) |
double | maxBoxCoord (double) |
template<class B, class P> |
bool | isPointInBox (const B &box, const P &pt) |
template<class B> |
bool | boxesIntersect (const B &b1, const B &b2) |
template<class B, class P> |
void | getBoundingBox (const P &pt, B *pBox) |
template<class B> |
void | expandBoundingBox (double eps, B *pBox) |
template<class T> |
PointNd< util::TypeStripper<
T >::base_type::Dim > | getStartPoint (T curve) |
template<class T> |
PointNd< util::TypeStripper<
T >::base_type::Dim > | getEndPoint (T curve) |
template<class T, class P> |
void | setStartPoint (T curve, const P &pt) |
template<class T, class P> |
void | setEndPoint (T curve, const P &pt) |
template<int n> |
shared_ptr< Line< n > > | makeLine () |
template<int n> |
shared_ptr< Line< n > > | makeLine (const PointNd< n > &start, const PointNd< n > &end) |
template<int n> |
shared_ptr< Polyline< n > > | makePolyline (const std::vector< geom::PointNd< n > > &pts) |
shared_ptr< Arc< 2 > > | makeArc (const Point2d ¢er, double radius, double startAngle, double endAngle) |
shared_ptr< Arc< 2 > > | makeCCWArcCenter (const Point2d ¢er, const Point2d &startPt, const Point2d &endPt) |
shared_ptr< Arc< 2 > > | makeCCWArcCenterRadius (const Point2d ¢er, const Point2d &startPt, const Point2d &endPt, double radius) |
shared_ptr< Arc< 2 > > | makeCWArcCenter (const Point2d ¢er, const Point2d &startPt, const Point2d &endPt) |
shared_ptr< Arc< 2 > > | makeCircle (const Point2d ¢er, double radius) |
CurvePtr2d | makeArcTangents (const Point2d &startPt, const Point2d &commonTan, const Point2d &endPt) |
template<class Curve> |
void | getBoundingBox (const Curve &c, BoundingBox< geom::Point2d > *pBox) |
template<class Curve> |
void | intersectCurves (const Curve &c1, const Curve &c2, double tol, CurveIntersectionResults *pIntersections) |
template<class Curve> |
double | getLength (const Curve &curve) |
CurvePtr2d | createSubCurve (const CurvePtr2d &curve, double startParam, double endParam) |
template<class Curve, class Point> |
bool | projectPointToCurve (const Curve &curve, const Point &pt, double tol, Point *pProjPt=0, double *pParam=0) |
template<class Curve, class Point> |
void | tessellateCurve (const Curve &curve, double tol, std::vector< Point > *pPoints) |
template<class CurveIter, class Point> |
void | tessellateLoop (CurveIter begin, CurveIter end, double tol, std::vector< Point > *pPoints) |
template<class Curves, class Point> |
void | tessellateLoop (const Curves &curves, double tol, std::vector< Point > *pPoints) |
template<class Curves> |
void | reverseLoop (Curves &curves) |
template<class CurveIter, class KnotIter> |
void | createKnots (CurveIter begin, CurveIter end, KnotIter outIt) |
template<class KnotIter> |
int | getSpan (KnotIter begin, KnotIter end, double param) |
template<class Arc, class P> |
bool | projectPointToArc (const Arc &arc, const P &pt, double tol, P *pProjPt=0, double *pParam=0) |
Vec3d | crossProduct (const Vec3d &v0, const Vec3d &v1) |
| The cross-product of two 3-dimensional vectors.
|
Point3d | crossProduct (const Point3d &v0, const Point3d &v1) |
| The cross-product of two 3-dimensional points.
|
template<class V> |
double | tripleProduct (const V &v0, const V &v1, const V &v2) |
double | crossProduct (const Vec2d &v0, const Vec2d &v1) |
| The cross-product of two 2-dimensional vectors.
|
double | crossProduct (const Point2d &v0, const Point2d &v1) |
| The cross-product of two 2-dimensional points.
|
template<int n> |
VecNd< n > | normalize (const VecNd< n > &v) |
| Take a vector and return a unit vector in the same direction.
|
template<int n> |
double | length (const VecNd< n > &v) |
| The magnitude of a vector.
|
double | angle (const Vec2d &v0, const Vec2d &v1) |
| The angle between two planar vectors, in radians.
|
template<int n> |
double | distance (const PointNd< n > &p0, const PointNd< n > &p1) |
| The Euclidean distance between two points.
|
template<class Vec> |
Vec | projectParallel (const Vec &v1, const Vec &v2) |
| Get the component of v1 that is in the direction of v2.
|
template<class Vec> |
Vec | projectPerp (const Vec &v1, const Vec &v2) |
| Get the component of v1 that is not in the direction of v2.
|
template<int n> |
PointNd< n > | operator+ (const PointNd< n > &pt, const VecNd< n > &vec) |
template<int n> |
PointNd< n > | operator- (const PointNd< n > &pt, const VecNd< n > &vec) |
template<int n> |
PointNd< n > | operator+ (const PointNd< n > &pt, const PointNd< n > &pt1) |
template<int n> |
PointNd< n > | operator * (const PointNd< n > &pt, double scale) |
template<int n> |
PointNd< n > | operator/ (const PointNd< n > &pt, double scale) |
template<int n> |
PointNd< n > | operator * (double scale, const PointNd< n > &pt) |
template<int n> |
VecNd< n > | operator+ (const VecNd< n > &vec0, const VecNd< n > &vec) |
template<int n> |
VecNd< n > | operator- (const VecNd< n > &vec0, const VecNd< n > &vec) |
template<int n> |
VecNd< n > | operator * (const VecNd< n > &v, double scale) |
template<int n> |
VecNd< n > | operator * (double scale, const VecNd< n > &v) |
template<int n> |
PointNd< n > | operator- (const PointNd< n > &pt0, const PointNd< n > &pt1) |
template<int n> |
PointNd< n > | operator- (const PointNd< n > &pt) |
template<int n> |
double | operator * (const VecNd< n > &vec0, const VecNd< n > &vec1) |
| dot product of two vectors.
|
template<int n> |
double | operator * (const PointNd< n > &pt0, const PointNd< n > &pt1) |
| dot product of two points.
|
template<int n> |
PointNd< n > | linComb (double d0, const PointNd< n > &pt0, double d1, const PointNd< n > &pt1) |
| Linear combination of two points.
|
template<int n> |
VecNd< n > | linComb (double d0, const VecNd< n > &pt0, double d1, const VecNd< n > &pt1) |
| Linear combination of two vectors.
|
template<int n> |
bool | operator== (const PointNd< n > &pt0, const PointNd< n > &pt1) |
| Compare two points for equality.
|
template<int n> |
bool | operator!= (const PointNd< n > &pt0, const PointNd< n > &pt1) |
| Compare two points for inequality.
|
template<int n> |
bool | operator< (const PointNd< n > &pt0, const PointNd< n > &pt1) |
template<int n> |
PointNd< n-1 > | projectHomogeneous (const PointNd< n > &pt) |
template<int n> |
PointNd< n+1 > | makeHomogeneous (const PointNd< n > &pt, double weight=1.0) |
PointNd< 3 > | operator+ (const PointNd< 3 > &pt, const VecNd< 3 > &vec) |
PointNd< 3 > | operator+ (const PointNd< 3 > &pt, const PointNd< 3 > &pt1) |
PointNd< 3 > | operator- (const PointNd< 3 > &pt, const VecNd< 3 > &vec) |
PointNd< 3 > | operator * (const PointNd< 3 > &pt, double scale) |
PointNd< 3 > | operator/ (const PointNd< 3 > &pt, double scale) |
template<class P> |
P | projectPointToLine (const P &startPt, const P &endPt, const P &pt) |
| Project the point pt to the infinite line through startPt and endPt.
|
template<class P> |
bool | projectPointToSegment (const P &startPt, const P &endPt, const P &pt, double tol, P *pProjPt=0, double *pParam=0) |
template<class P> |
int | getOrientation (const P &p0, const P &p1, const P &pt, double tol) |