CartoType C++ API 7.8.2, 2022-03-25
for Windows, Linux, Qt and other platforms supporting C++ development
|
#include <cartotype_path.h>
Public Member Functions | |
TWritableContour (MWritableContour &aWritableContour) | |
TWritableContour (TPoint *aPoint, size_t aPoints, bool aClosed) | |
TContour | Contour (size_t) const override |
bool | MayHaveCurves () const override |
size_t | Points () const override |
TOutlinePoint | Point (size_t aIndex) const override |
bool | Closed () const override |
void | SetPoint (size_t aIndex, const TOutlinePoint &aPoint) override |
void | ReduceSizeTo (size_t aPoints) override |
void | SetSize (size_t aPoints) override |
void | SetClosed (bool aClosed) override |
void | AppendPoint (const TOutlinePoint &aPoint) override |
TOutlinePoint * | OutlinePointData () override |
TPoint * | PointData () override |
Public Member Functions inherited from CartoType::MWritableContour | |
MWritableContour & | operator= (const MContour &aContour) |
virtual void | SetPoint (size_t aIndex, const TOutlinePoint &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 TOutlinePoint &aPoint)=0 |
virtual TOutlinePoint * | OutlinePointData ()=0 |
virtual TPoint * | PointData ()=0 |
void | Offset (int32_t aDx, int32_t aDy) |
void | AppendContour (const TContour &aContour) |
void | SetLastPoint (const TOutlinePoint &aPoint) |
void | Simplify (double aResolutionArea) |
void | AppendCircularArc (const TPoint &aCenter, const TPoint &aStart, const TPoint &aEnd, TEllipseAngleType aAngleType=TEllipseAngleType::Shortest, bool aAppendStart=false) |
void | AppendHalfCircle (const TPoint &aCenter, const TPoint &aStart, const TPoint &aEnd, TEllipseAngleType aAngleType=TEllipseAngleType::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 CartoType::MContour | |
virtual size_t | Points () const =0 |
virtual TOutlinePoint | Point (size_t aIndex) const =0 |
virtual bool | Closed () const =0 |
operator TContour () const | |
size_t | Contours () const |
TOutlinePoint | LastPoint () const |
TOutlinePoint | FractionalPoint (double aIndex) const |
bool | IsGridOrientedRectangle (TRect *aRect=nullptr) const |
bool | Anticlockwise () const |
bool | Contains (double aX, double aY) const |
bool | Contains (const TPoint &aPoint) const |
COutline | ClippedContour (const TRect &aClip) const |
void | AppendClippedContour (COutline &aDest, const TRect &aClip) const |
size_t | AppendSplitContour (COutline &aDest, const TPointFP &aLineStart, const TPointFP &aLineVector) |
CContour | TruncatedContour (double aStart, double aEnd) const |
CContour | SubContourBetweenFractionalPoints (double aStartIndex, double aEndIndex) const |
CContour | SubContourBetweenNearestPoints (const TPointFP *aStartPoint, const TPointFP *aEndPoint) const |
CContour | CentralPath (std::shared_ptr< CEngine > aEngine, const TRect &aClip, bool aFractionalPixels, TLine &aFallbackLine, bool aFallbackMustBeHorizontal) const |
CContour | Smooth (double aRadius) const |
bool | MayIntersect (const TRect &aRect) const |
bool | Intersects (const TRect &aRect) const |
TPathIntersectionType | IntersectionType (const MContour &aOther, double *aDistance=nullptr, TPointFP *aNearest1=nullptr, TPointFP *aNearest2=nullptr) const |
TPathIntersectionInfo | IntersectionInfo (const MContour &aOther) const |
double | DistanceFrom (const MContour &aOther, TPointFP *aNearest1=nullptr, TPointFP *aNearest2=nullptr, TPathIntersectionType *aType=nullptr) const |
double | DistanceFromPoint (const TPointFP &aPoint, TPointFP *aNearest=nullptr, double *aNearestLength=nullptr, bool *aLeft=nullptr, size_t *aLineIndex=nullptr, double *aFractionalLineIndex=nullptr, bool aTreatAsOpen=false) const |
TPointFP | PointAtLength (double aLength, double aOffset=0, int32_t *aLineIndex=nullptr) const |
void | GetOrientation (const TPoint &aCenter, TPoint &aOrientation) const |
void | GetPrincipalAxis (TPointFP &aCenter, TPointFP &aVector) const |
void | Write (TDataOutputStream &aOutput) const |
void | GetAngles (double aDistance, double &aStartAngle, double &aEndAngle) |
Public Member Functions inherited from CartoType::MPath | |
virtual | ~MPath () |
virtual size_t | Contours () const =0 |
virtual TContour | Contour (size_t aIndex) const =0 |
virtual bool | MayHaveCurves () const =0 |
template<class MPathTraverser > | |
void | Traverse (MPathTraverser &aTraverser, const TRect &aClip) const |
template<class MPathTraverser > | |
void | Traverse (MPathTraverser &aTraverser, const TRect *aClip=nullptr) const |
bool | operator== (const MPath &aOther) const |
TRect | CBox () const |
bool | CBoxBiggerThan (int32_t aSize) const |
bool | IsContainedIn (const TRect &aRect) const |
bool | Contains (double aX, double aY) const |
bool | Contains (const TPoint &aPoint) const |
bool | Contains (const TPointFP &aPoint) const |
bool | MayIntersect (const TRect &aRect) const |
bool | MayIntersect (const TRect &aRect, int32_t aBorder) const |
bool | Intersects (const TRect &aRect) const |
bool | Intersects (const MPath &aPath, const TRect *aBounds=nullptr) const |
int32_t | MaxDistanceFromOrigin () const |
TPathIntersectionType | IntersectionType (const MPath &aOther, double *aDistance=nullptr, TPointFP *aNearest1=nullptr, TPointFP *aNearest2=nullptr) const |
TPathIntersectionInfo | IntersectionInfo (const MPath &aOther) const |
double | DistanceFrom (const MPath &aOther, TPointFP *aNearest1=nullptr, TPointFP *aNearest2=nullptr, TPathIntersectionType *aType=nullptr) const |
double | DistanceFromPoint (const TPointFP &aPoint, TPointFP *aNearest=nullptr, size_t *aContourIndex=nullptr, size_t *aLineIndex=nullptr, double *aFractionaLineIndex=nullptr, bool aTreatAsOpen=false) const |
bool | IsClippingNeeded (const TRect &aClip) const |
COutline | Copy () const |
COutline | ClippedPath (const TRect &aClip) const |
COutline | ClippedPath (const MPath &aClip) const |
COutline | ClippedPath (const TClipRegion &aClip) const |
COutline | Clip (TClipOperation aClipOperation, const MPath &aClip) const |
COutline | Envelope (double aOffset) const |
bool | IsSmoothingNeeded () const |
COutline | SmoothPath () const |
COutline | FlatPath (double aMaxDistance) const |
COutline | TruncatedPath (double aStart, double aEnd) const |
COutline | OffsetPath (double aOffset) const |
COutline | TransformedPath (const TTransform &aTransform) const |
COutline | TransformedPath (TDrawResult &aError, MPointTransformer &aTransformer, int32_t aFractionalBits) const |
std::array< TLine, 3 > | GetHorizontalPaths (int32_t aPathLength, int32_t aLabelHeight, const TPointFP &aUpVector, const TRect *aBounds, const TRect *aClip) const |
TPointFP | CenterOfGravity () const |
void | GetCenterOfGravity (TPoint &aCenter) const |
double | Length () const |
double | Area () const |
TPointFP | PointAtLength (double aPos) const |
std::pair< TPoint, bool > | End () const |
void | Write (TDataOutputStream &aOutput) const |
bool | IsEmpty () const |
bool | IsPoint () const |
bool | IsGridOrientedRectangle (TRect *aRect=nullptr) const |
void | GetSphericalAreaAndLength (const CProjection &aProjection, double *aArea, double *aLength) const |
TClipType | ClipType (const TRect &aRect) const |
bool | HasCurves () const |
ConstIter | begin () const |
ConstIter | end () const |
A concrete writable contour to be returned by CMapObject::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 TWritableContour from an MWritableContour.
|
inline |
Creates a TWritableContour from a sequence of points.
|
inlineoverridevirtual |
Appends a point.
Implements CartoType::MWritableContour.
|
inlineoverridevirtual |
Returns true if this is a closed contour.
Implements CartoType::MContour.
|
inlineoverridevirtual |
Returns the contour indexed by aIndex.
Implements CartoType::MPath.
|
inlineoverridevirtual |
Returns true if the path may have off-curve points.
Implements CartoType::MPath.
|
inlineoverridevirtual |
Returns a writable pointer to TOutlinePoint data if possible.
Implements CartoType::MWritableContour.
|
inlineoverridevirtual |
Returns a point selected by its index.
Implements CartoType::MContour.
|
inlineoverridevirtual |
Returns a writable pointer to TPoint data if possible.
Implements CartoType::MWritableContour.
|
inlineoverridevirtual |
Returns the number of points in the contour.
Implements CartoType::MContour.
|
inlineoverridevirtual |
Reduces the number of points to aPoints. The address of the points must not change.
Implements CartoType::MWritableContour.
|
inlineoverridevirtual |
Sets this contour's closed attribute. Does nothing if that is not possible.
Implements CartoType::MWritableContour.
|
inlineoverridevirtual |
Sets a point.
Implements CartoType::MWritableContour.
|
inlineoverridevirtual |
Sets the number of points to aPoints. The address of the points may change.
Implements CartoType::MWritableContour.