Skia
2D Graphics Library
SkContourMeasure Class Reference

#include <SkContourMeasure.h>

Inheritance diagram for SkContourMeasure:

Public Types

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

Public Member Functions

SkScalar length () const
 Return the length of the contour. More...
 
bool getPosTan (SkScalar distance, SkPoint *position, SkVector *tangent) const
 Pins distance to 0 <= distance <= length(), and then computes the corresponding position and tangent. More...
 
bool getMatrix (SkScalar distance, SkMatrix *matrix, MatrixFlags flags=kGetPosAndTan_MatrixFlag) const
 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) const
 Given a start and stop distance, return in dst the intervening segment(s). More...
 
bool isClosed () const
 Return true if the contour is closed() More...
 
bool unique () const
 May return true if the caller is the only owner. More...
 
void ref () const
 Increment the reference count. More...
 
void unref () const
 Decrement the reference count. More...
 

Friends

class SkContourMeasureIter
 

Member Enumeration Documentation

◆ MatrixFlags

Enumerator
kGetPosition_MatrixFlag 
kGetTangent_MatrixFlag 
kGetPosAndTan_MatrixFlag 

Member Function Documentation

◆ getMatrix()

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

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 SkContourMeasure::getPosTan ( SkScalar  distance,
SkPoint *  position,
SkVector *  tangent 
) const

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

◆ getSegment()

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

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 SkContourMeasure::isClosed ( ) const
inline

Return true if the contour is closed()

◆ length()

SkScalar SkContourMeasure::length ( ) const
inline

Return the length of the contour.

◆ ref()

void SkRefCntBase::ref ( ) const
inlineinherited

Increment the reference count.

Must be balanced by a call to unref().

◆ unique()

bool SkRefCntBase::unique ( ) const
inlineinherited

May return true if the caller is the only owner.

Ensures that all previous owner's actions are complete.

◆ unref()

void SkRefCntBase::unref ( ) const
inlineinherited

Decrement the reference count.

If the reference count is 1 before the decrement, then delete the object. Note that if this is the case, then the object needs to have been allocated via new, and not on the stack.

Friends And Related Function Documentation

◆ SkContourMeasureIter

friend class SkContourMeasureIter
friend

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