CartoType C++ API 8.8-7-gb35e4dc71
for Windows, Linux, Qt and other platforms supporting C++ development
|
#include <cartotype_path.h>
Public Member Functions | |
WritableContourView (MWritableContour &aWritableContour) | |
WritableContourView (CartoTypeCore::Point *aPoint, size_t aPoints, bool aClosed) | |
ContourView | ContourByIndex (size_t) const override |
bool | MayHaveCurves () const override |
size_t | Points () const override |
OutlinePoint | Point (size_t aIndex) const override |
bool | Closed () const override |
void | SetPoint (size_t aIndex, const OutlinePoint &aPoint) override |
void | ReduceSizeTo (size_t aPoints) override |
void | SetSize (size_t aPoints) override |
void | SetClosed (bool aClosed) override |
void | AppendPoint (const OutlinePoint &aPoint) override |
OutlinePoint * | OutlinePointData () override |
CartoTypeCore::Point * | PointData () override |
Public Member Functions inherited from CartoTypeCore::MWritableContour | |
MWritableContour & | operator= (const MContour &aContour) |
virtual void | SetPoint (size_t aIndex, const OutlinePoint &aPoint)=0 |
virtual void | ReduceSizeTo (size_t aPoints)=0 |
virtual void | SetSize (size_t aPoints)=0 |
virtual void | SetClosed (bool aClosed)=0 |
virtual void | AppendPoint (const OutlinePoint &aPoint)=0 |
virtual OutlinePoint * | OutlinePointData ()=0 |
virtual CartoTypeCore::Point * | PointData ()=0 |
void | Offset (int32_t aDx, int32_t aDy) |
void | AppendContour (const ContourView &aContour) |
void | SetLastPoint (const OutlinePoint &aPoint) |
void | Simplify (double aResolutionArea) |
void | AppendCircularArc (const CartoTypeCore::Point &aCenter, const CartoTypeCore::Point &aStart, const CartoTypeCore::Point &aEnd, EllipseAngleType aAngleType=EllipseAngleType::Shortest, bool aAppendStart=false) |
void | AppendHalfCircle (const CartoTypeCore::Point &aCenter, const CartoTypeCore::Point &aStart, const CartoTypeCore::Point &aEnd, EllipseAngleType aAngleType=EllipseAngleType::Shortest, bool aAppendStart=false) |
void | AppendHalfCircle (double aCx, double aCy, double aSx, double aSy, double aEx, double aEy, double aRadius, bool aAppendStart, bool aIsExactHalfCircle, bool aClockwise) |
void | AppendQuadrant (double aCx, double aCy, double aSx, double aSy, double aEx, double aEy, double aRadius, bool aAppendStart, bool aIsExactQuadrant, bool aClockwise) |
Public Member Functions inherited from CartoTypeCore::MContour | |
virtual size_t | Points () const =0 |
virtual OutlinePoint | Point (size_t aIndex) const =0 |
virtual bool | Closed () const =0 |
operator ContourView () const | |
size_t | Contours () const |
OutlinePoint | LastPoint () const |
OutlinePoint | FractionalPoint (double aIndex) const |
bool | IsGridOrientedRectangle (Rect *aRect=nullptr) const |
bool | Anticlockwise () const |
PolygonOrientation | Orientation () const |
bool | Contains (double aX, double aY) const |
bool | Contains (const CartoTypeCore::Point &aPoint) const |
Outline | ClippedContour (const Rect &aClip) const |
void | AppendClippedContour (Outline &aDest, const Rect &aClip) const |
size_t | AppendSplitContour (Outline &aDest, const PointFP &aLineStart, const PointFP &aLineVector) |
Contour | TruncatedContour (double aStart, double aEnd) const |
Contour | SubContourBetweenFractionalPoints (double aStartIndex, double aEndIndex) const |
Contour | SubContourBetweenNearestPoints (const PointFP *aStartPoint, const PointFP *aEndPoint) const |
Contour | CentralPath (std::shared_ptr< CEngine > aEngine, const Rect &aClip, bool aFractionalPixels, Line &aFallbackLine, bool aFallbackMustBeHorizontal) const |
Contour | Smooth (double aRadius) const |
Contour | ConcaveHull (double aMaxEdgeLength, PolygonOrientation aAssumedOrientation=PolygonOrientation::None) const |
bool | MayIntersect (const Rect &aRect) const |
bool | Intersects (const Rect &aRect) const |
PathIntersectionType | IntersectionType (const MContour &aOther, double *aDistance=nullptr, PointFP *aNearest1=nullptr, PointFP *aNearest2=nullptr) const |
PathIntersectionInfo | IntersectionInfo (const MContour &aOther) const |
double | DistanceFrom (const MContour &aOther, PointFP *aNearest1=nullptr, PointFP *aNearest2=nullptr, PathIntersectionType *aType=nullptr) const |
double | DistanceFromPoint (const PointFP &aPoint, PointFP *aNearest=nullptr, double *aNearestLength=nullptr, bool *aLeft=nullptr, size_t *aLineIndex=nullptr, double *aFractionalLineIndex=nullptr, bool aTreatAsOpen=false) const |
PointFP | PointAtLength (double aLength, double aOffset=0, int32_t *aLineIndex=nullptr) const |
CartoTypeCore::Point | Orientation (const CartoTypeCore::Point &aCenter) const |
void | GetPrincipalAxis (PointFP &aCenter, PointFP &aVector) const |
void | Write (OutputStream &aOutput) const |
void | GetAngles (double aDistance, double &aStartAngle, double &aEndAngle) |
Public Member Functions inherited from CartoTypeCore::MPath | |
virtual | ~MPath () |
virtual size_t | Contours () const =0 |
virtual ContourView | ContourByIndex (size_t aIndex) const =0 |
virtual bool | MayHaveCurves () const =0 |
template<class MPathTraverser > | |
void | Traverse (MPathTraverser &aTraverser, const Rect &aClip) const |
template<class MPathTraverser > | |
void | Traverse (MPathTraverser &aTraverser, const Rect *aClip=nullptr) const |
bool | operator== (const MPath &aOther) const |
Rect | CBox () const |
bool | CBoxBiggerThan (int32_t aSize) const |
bool | IsContainedIn (const Rect &aRect) const |
bool | Contains (double aX, double aY) const |
bool | Contains (const Point &aPoint) const |
bool | Contains (const PointFP &aPoint) const |
bool | MayIntersect (const Rect &aRect) const |
bool | MayIntersect (const Rect &aRect, int32_t aBorder) const |
bool | Intersects (const Rect &aRect) const |
bool | Intersects (const MPath &aPath, const Rect *aBounds=nullptr) const |
int32_t | MaxDistanceFromOrigin () const |
PathIntersectionType | IntersectionType (const MPath &aOther, double *aDistance=nullptr, PointFP *aNearest1=nullptr, PointFP *aNearest2=nullptr) const |
PathIntersectionInfo | IntersectionInfo (const MPath &aOther) const |
double | DistanceFrom (const MPath &aOther, PointFP *aNearest1=nullptr, PointFP *aNearest2=nullptr, PathIntersectionType *aType=nullptr) const |
double | DistanceFromPoint (const PointFP &aPoint, PointFP *aNearest=nullptr, size_t *aContourIndex=nullptr, size_t *aLineIndex=nullptr, double *aFractionaLineIndex=nullptr, bool aTreatAsOpen=false) const |
bool | IsClippingNeeded (const Rect &aClip) const |
Outline | Copy () const |
Outline | ClippedPath (const Rect &aClip) const |
Outline | ClippedPath (const MPath &aClip) const |
Outline | ClippedPath (const ClipRegion &aClip) const |
Outline | Clip (ClipOperation aClipOperation, const MPath &aClip) const |
Outline | Envelope (double aOffset) const |
Outline | ConcaveHull (double aMaxEdgeLength, PolygonOrientation aAssumedOrientation=PolygonOrientation::None) const |
bool | IsSmoothingNeeded () const |
Outline | SmoothPath () const |
Outline | FlatPath (double aMaxDistance) const |
Outline | TruncatedPath (double aStart, double aEnd) const |
Outline | OffsetPath (double aOffset) const |
Outline | TransformedPath (const AffineTransform &aTransform) const |
Outline | TransformedPath (DrawResult &aError, MPointTransformer &aTransformer, int32_t aFractionalBits) const |
Outline | Interpolate (int32_t aGranularity) const |
std::array< Line, 3 > | HorizontalPaths (GraphicsContext *aGc, int32_t aPathLength, int32_t aLabelAscent, int32_t aLabelDescent, const PointFP &aUpVector, const Rect *aBounds, const Rect *aClip) const |
PointFP | CenterOfGravity () const |
double | Length () const |
double | Area () const |
PointFP | PointAtLength (double aPos) const |
std::pair< Point, bool > | End () const |
void | Write (OutputStream &aOutput) const |
void | WriteAsXml (OutputStream &aOutput) const |
bool | IsEmpty () const |
bool | IsPoint () const |
bool | IsGridOrientedRectangle (Rect *aRect=nullptr) const |
void | GetSphericalAreaAndLength (const Projection &aProjection, double *aArea, double *aLength) const |
CartoTypeCore::ClipType | ClipType (const Rect &aRect) const |
bool | HasCurves () const |
size_t | PointCount () const |
ConstIter | begin () const |
ConstIter | end () const |
A writable contour view returned by MapObject::WritableContour. It forwards MWritableContour functions either to an external interface or an owned object. The latter option makes it possible for small objects holding a single point to return a writable contour object, in which case the point is changeable but the number of points is not, nor the closed status.
|
inline |
Creates a WritableContourView from an MWritableContour.
|
inline |
Creates a WritableContourView from a sequence of points.
|
inlineoverridevirtual |
Appends a point.
Implements CartoTypeCore::MWritableContour.
|
inlineoverridevirtual |
Returns true if this is a closed contour.
Implements CartoTypeCore::MContour.
|
inlineoverridevirtual |
Returns the contour indexed by aIndex.
Implements CartoTypeCore::MPath.
|
inlineoverridevirtual |
Returns true if the path may have off-curve points.
Implements CartoTypeCore::MPath.
|
inlineoverridevirtual |
Returns a writable pointer to OutlinePoint data if possible.
Implements CartoTypeCore::MWritableContour.
|
inlineoverridevirtual |
Returns a point selected by its index.
Implements CartoTypeCore::MContour.
|
inlineoverridevirtual |
Returns a writable pointer to Point data if possible.
Implements CartoTypeCore::MWritableContour.
|
inlineoverridevirtual |
Returns the number of points in the contour.
Implements CartoTypeCore::MContour.
|
inlineoverridevirtual |
Reduces the number of points to aPoints. The address of the points must not change.
Implements CartoTypeCore::MWritableContour.
|
inlineoverridevirtual |
Sets this contour's closed attribute. Does nothing if that is not possible.
Implements CartoTypeCore::MWritableContour.
|
inlineoverridevirtual |
Sets a point.
Implements CartoTypeCore::MWritableContour.
|
inlineoverridevirtual |
Sets the number of points to aPoints. The address of the points may change.
Implements CartoTypeCore::MWritableContour.