|
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) |