|
Data Structures |
| struct | PTDBL |
| | This structure holds data on the X and Y coordinates of a point, in double precision. More...
|
| struct | RECTDBL |
| | This structure holds data on the location of a rectangle, in double precision. More...
|
| struct | ROUNDRECT |
| | This structure holds data on the location of a rounded rectangle, in double precision. More...
|
| struct | PATHSEGMENT |
| | This structure holds data on the ending points and other parameters of each path segment. More...
|
| struct | FULLPATHSEGMENT |
| | This structure holds data on the starting and ending points and other parameters of each path segment. More...
|
| struct | PATHITERATOR |
| struct | FULLPATHCONTEXT |
| struct | FLATPATHPARAMS |
| | This structure contains parameters for the iterators FlatPathIterator and CubicToQuadIterator. More...
|
| struct | SVGARC |
| struct | CENTERARC |
Defines |
| #define | ISONE(value) (abs(value-1.0)<2.22E-15) |
| #define | ISZERO(value) (abs(value)<2.22E-15) |
| #define | DoubleIsFinite(x) (abs(x)<=1.7976931348623157e+308) |
| #define | FloatIsFinite(x) (abs(x)<=3.402823E+38f) |
| #define | RectDblToInt(rcdbl, rcint) |
| #define | RectNormalize(rc, tmp) |
| #define | RectIsEmpty(rc) ((rc)->left>=(rc)->right||(rc)->top>=(rc)->bottom) |
| #define | RectAddPoint(rc, x, y) |
| #define | RectAddRect(rc, rc2) |
| #define | PATH_MOVETO 1 |
| #define | PATH_LINETO 2 |
| #define | PATH_QUADTO 3 |
| #define | PATH_CUBICTO 4 |
| #define | PATH_CLOSE 5 |
| #define | WIND_NONZERO 1 |
| #define | WIND_EVENODD 2 |
Functions |
| double | ModDouble (double x, double y) |
| int | ModInt (int x, int y) |
| BOOL | AreClose (double a, double b) |
| BOOL | LessThan (double a, double b) |
| BOOL | LessOrClose (double a, double b) |
| BOOL | GreaterThan (double a, double b) |
| BOOL | GreaterOrClose (double a, double b) |
| double | SegmentDistanceSq (double x0, double y0, double x1, double y1, double ptx, double pty) |
| double | PerpendicularDistance (double x0, double y0, double x1, double y1, double ptx, double pty) |
| double | PointDistance (double x1, double y1, double x2, double y2) |
| void | LineSubdivide (double *src, double *left, double *right, double t) |
| | Subdivides a line into two lines, at the parameter value _t_.
|
| void | QuadSubdivide (double *src, double *left, double *right, double t) |
| | Subdivides a quadratic curve into two curves, at the parameter value _t_.
|
| void | CubicSubdivide (double *src, double *left, double *right, double t) |
| | Subdivides a cubic curve into two curves, at the parameter value _t_.
|
| double | QuadFlatnessSq (double *c) |
| double | CubicFlatnessSq (double *c) |
| void | CubicCurveFromQuadratic (double *pSrc, double *pDst) |
| | Converts a quadratic curve into a cubic curve.
|
| double | QuadControlPolygonLength (double *qc) |
| double | QuadChordLength (double *qc) |
| double | QuadCalcLength (double *qc, double tolerance) |
| double | CubicControlPolygonLength (double *qc) |
| double | CubicChordLength (double *qc) |
| double | CubicCalcLength (double *qc, double tolerance) |
| int | SolveLinear (double c[2], double s[1]) |
| | Solves a linear equation and finds its non-complex roots.
|
| int | SolveQuadratic (double c[3], double s[2]) |
| | Solves a quadratic equation and finds its non-complex roots.
|
| int | SolveCubic (double c[4], double s[3]) |
| | Solves a cubic equation and finds its non-complex roots.
|
| BOOL | PathMoveTo (ITEMARRAY *ia, double x, double y) |
| | Adds a "move to" command to the path.
|
| BOOL | PathAddPoint (ITEMARRAY *ia, double x, double y) |
| | Adds a "move to" command to the path, but only if its end point is different from the new position.
|
| BOOL | PathLineTo (ITEMARRAY *ia, double x, double y) |
| | Draws a line from the current position to a new one, starting at the path's current end point.
|
| BOOL | PathQuadTo (ITEMARRAY *ia, double x, double y, double x1, double y1) |
| | Adds a quadratic Bezier curve to the path, starting at the path's current end point.
|
| BOOL | PathCubicTo (ITEMARRAY *ia, double x, double y, double x1, double y1, double x2, double y2) |
| | Adds a cubic Bezier curve to the path, starting at the path's current end point.
|
| BOOL | PathSmoothQuadTo (ITEMARRAY *ia, double x, double y) |
| | Adds a quadratic Bezier curve to the path, starting at the path's current end point.
|
| BOOL | PathSmoothCubicTo (ITEMARRAY *ia, double x1, double y1, double x2, double y2) |
| | Adds a cubic Bezier curve to the path, starting at the path's current end point.
|
| BOOL | PathClose (ITEMARRAY *ia) |
| | Adds a "close path" command, where a straight line is drawn from the current position to the starting point.
|
| BOOL | PathGetEndPoint (ITEMARRAY *ia, double *endpt) |
| | Finds the path's current end point.
|
| BOOL | PathAddSegment (ITEMARRAY *ia, PATHSEGMENT *ps) |
| | Adds a path segment to the path.
|
| BOOL | PathAddArc (ITEMARRAY *ia, double centerX, double centerY, double radiusX, double radiusY, double start, double sweep, double phi) |
| | Adds an arc segment to the path, defined using center parameterization.
|
| BOOL | PathArcTo (ITEMARRAY *ia, double centerX, double centerY, double radiusX, double radiusY, double start, double sweep, double phi) |
| | Adds an arc segment to the path, defined using center parameterization, that is, where the arc is part of an ellipse defined using its center, radius, start and end angles, and rotation.
|
| BOOL | PathAddSvgArc (ITEMARRAY *ia, double x0, double x1, double x, double y, double rx, double ry, double phi, BOOL largeArc, BOOL sweep) |
| | Adds an arc segment to the path where the arc is defined as having a start and end point as well as additional parameters that define an imaginary ellipse, as in the SVG specification.
|
| BOOL | PathSvgArcTo (ITEMARRAY *ia, double x, double y, double rx, double ry, double phi, BOOL largeArc, BOOL sweep) |
| | Adds an arc segment to the path where the arc is defined as having a start and end point as well as additional parameters that define an imaginary ellipse, as in the SVG specification.
|
| void | PathCardinalSplineTo (ITEMARRAY *path, double *coords, LONG numpoints, double tension) |
| | Adds a cardinal spline to the path, starting with the path's current point.
|
| void | PathAddCardinalSpline (ITEMARRAY *path, double *coords, LONG numpoints, double tension, BOOL closefigure) |
| | Adds a cardinal spline to the path.
|
| BOOL | PathTransform (ITEMARRAY *path, MATRIX *xfm) |
| | Applies an affine transform to the path.
|
| double * | PathSegmentEndPoint (PATHSEGMENT *ps) |
| | Returns a pointer to the end point of the path segment _ps_, or NULL if the path segment has no end point.
|
| BOOL | PathSegmentTransform (PATHSEGMENT *ps, MATRIX *xfm) |
| | Applies a transform matrix to a path segment.
|
| int | PathGetBounds (PATHITERATOR *pcb, LPVOID data, MATRIX *xfm, RECTDBL *prc) |
| | Calculates a path's bounding box.
|
| BOOL | PathAppendPath (ITEMARRAY *ia, PATHITERATOR *pcb, LPVOID data, MATRIX *xfm, BOOL connect) |
| | Appends another path, in the form of a path iterator, to this path.
|
| void | DebugOutPathSegment (PATHSEGMENT *ps, LPCTSTR add) |
| | Displays output about a path segment to the debugger.
|
| void | DebugOutPathSegmentAsSvg (PATHSEGMENT *ps) |
| | Displays output about a path segment in SVG format to the debugger.
|
| void | DebugOutFullPathSegment (FULLPATHSEGMENT *ps, LPCTSTR add) |
| BOOL | ViewSpaceCalcTransformEx (MATRIX *xfmDst, RECTDBL *rcViewport, RECTDBL *rcWindow, int align, int meetOrSlice) |
| | Calculates a transform matrix where units from one coordinate system are mapped to units in another coordinate system.
|
| void | FullPathContextInit (FULLPATHCONTEXT *fpc) |
| | Initializes a full path context for use in the iterator functions FullPathIteratorNext() and ClosedPathIteratorNext().
|
| BOOL | FullPathSegmentTransform (FULLPATHSEGMENT *ps, MATRIX *xfm) |
| | Applies a transform matrix to a full path segment.
|
| void | FullToPathSegment (FULLPATHSEGMENT *fullSegment, PATHSEGMENT *pathSegment) |
| int | FullPathIteratorNext (PATHITERATOR *iter, LPVOID h, FULLPATHCONTEXT *fpc, FULLPATHSEGMENT *fps, MATRIX *matrix) |
| | An alternative path iterator that includes the starting points of each path segment.
|
| int | ClosedPathIteratorNext (PATHITERATOR *iter, LPVOID h, FULLPATHCONTEXT *fpc, FULLPATHSEGMENT *fps, MATRIX *matrix) |
| | An alternative path iterator where all subpaths are explicitly closed.
|
Variables |
| PATHITERATOR | RectPath |
| | A path iterator that retrieves the path of a rectangle.
|
| PATHITERATOR | RoundRectPath |
| | A path iterator that retrieves the path of a rounded rectangle.
|
| PATHITERATOR | EllipsePath |
| | A path iterator that retrieves the path of an ellipse.
|
| PATHITERATOR | LinePath |
| | A path iterator that retrieves the path of a line.
|
| PATHITERATOR | QuadPath |
| | A path iterator that retrieves the path of a quadratic curve.
|
| PATHITERATOR | CubicPath |
| | A path iterator that retrieves the path of a cubic curve.
|
| PATHITERATOR | FlatPathIterator |
| | A path iterator that converts all curves in a path into lines.
|
| PATHITERATOR | CubicToQuadIterator |
| | A path iterator that converts all cubic curves in a path into quadratic curves.
|
| PATHITERATOR | PathSegmentsNonZero |
| | A path iterator that retrieves the segments of a path and uses the NONZERO fill rule.
|
| PATHITERATOR | PathSegmentsEvenOdd |
| | A path iterator that retrieves the segments of a path and uses the EVENODD fill rule.
|