Skia
2D Graphics Library
SkPathMeasure Class Reference

#include <SkPathMeasure.h>

Public Types

enum  MatrixFlags { kGetPosition_MatrixFlag = 0x01 , kGetTangent_MatrixFlag = 0x02 , kGetPosAndTan_MatrixFlag = kGetPosition_MatrixFlag | kGetTangent_MatrixFlag }
 

Public Member Functions

 SkPathMeasure ()
 
 SkPathMeasure (const SkPath &path, bool forceClosed, SkScalar resScale=1)
 Initialize the pathmeasure with the specified path. More...
 
 ~SkPathMeasure ()
 
 SkPathMeasure (SkPathMeasure &&)=default
 
SkPathMeasureoperator= (SkPathMeasure &&)=default
 
void setPath (const SkPath *, bool forceClosed)
 Reset the pathmeasure with the specified path. More...
 
SkScalar getLength ()
 Return the total length of the current contour, or 0 if no path is associated (e.g. More...
 
bool getPosTan (SkScalar distance, SkPoint *position, SkVector *tangent)
 Pins distance to 0 <= distance <= getLength(), and then computes the corresponding position and tangent. More...
 
bool getMatrix (SkScalar distance, SkMatrix *matrix, MatrixFlags flags=kGetPosAndTan_MatrixFlag)
 Pins distance to 0 <= distance <= getLength(), and then computes the corresponding matrix (by calling getPosTan). More...
 
bool getSegment (SkScalar startD, SkScalar stopD, SkPath *dst, bool startWithMoveTo)
 Given a start and stop distance, return in dst the intervening segment(s). More...
 
bool isClosed ()
 Return true if the current contour is closed() More...
 
bool nextContour ()
 Move to the next contour in the path. More...
 

Member Enumeration Documentation

◆ MatrixFlags

Enumerator
kGetPosition_MatrixFlag 
kGetTangent_MatrixFlag 
kGetPosAndTan_MatrixFlag 

Constructor & Destructor Documentation

◆ SkPathMeasure() [1/3]

SkPathMeasure::SkPathMeasure ( )

◆ SkPathMeasure() [2/3]

SkPathMeasure::SkPathMeasure ( const SkPath path,
bool  forceClosed,
SkScalar  resScale = 1 
)

Initialize the pathmeasure with the specified path.

The parts of the path that are needed are copied, so the client is free to modify/delete the path after this call.

resScale controls the precision of the measure. values > 1 increase the precision (and possibly slow down the computation).

◆ ~SkPathMeasure()

SkPathMeasure::~SkPathMeasure ( )

◆ SkPathMeasure() [3/3]

SkPathMeasure::SkPathMeasure ( SkPathMeasure &&  )
default

Member Function Documentation

◆ getLength()

SkScalar SkPathMeasure::getLength ( )

Return the total length of the current contour, or 0 if no path is associated (e.g.

resetPath(null))

◆ getMatrix()

bool SkPathMeasure::getMatrix ( SkScalar  distance,
SkMatrix matrix,
MatrixFlags  flags = kGetPosAndTan_MatrixFlag 
)

Pins distance to 0 <= distance <= getLength(), and then computes the corresponding matrix (by calling getPosTan).

Returns false if there is no path, or a zero-length path was specified, in which case matrix is unchanged.

◆ getPosTan()

bool SkPathMeasure::getPosTan ( SkScalar  distance,
SkPoint *  position,
SkVector *  tangent 
)

Pins distance to 0 <= distance <= getLength(), and then computes the corresponding position and tangent.

Returns false if there is no path, or a zero-length path was specified, in which case position and tangent are unchanged.

◆ getSegment()

bool SkPathMeasure::getSegment ( SkScalar  startD,
SkScalar  stopD,
SkPath dst,
bool  startWithMoveTo 
)

Given a start and stop distance, return in dst the intervening segment(s).

If the segment is zero-length, return false, else return true. startD and stopD are pinned to legal values (0..getLength()). If startD > stopD then return false (and leave dst untouched). Begin the segment with a moveTo if startWithMoveTo is true

◆ isClosed()

bool SkPathMeasure::isClosed ( )

Return true if the current contour is closed()

◆ nextContour()

bool SkPathMeasure::nextContour ( )

Move to the next contour in the path.

Return true if one exists, or false if we're done with the path.

◆ operator=()

SkPathMeasure& SkPathMeasure::operator= ( SkPathMeasure &&  )
default

◆ setPath()

void SkPathMeasure::setPath ( const SkPath ,
bool  forceClosed 
)

Reset the pathmeasure with the specified path.

The parts of the path that are needed are copied, so the client is free to modify/delete the path after this call..


The documentation for this class was generated from the following file: