VSTGUI  4.10
Graphical User Interface Framework not only for VST plugins
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CGraphicsPath Class Reference

Graphics Path Object. More...

+ Inheritance diagram for CGraphicsPath:

Public Member Functions

 CGraphicsPath (const PlatformGraphicsPathFactoryPtr &factory, PlatformGraphicsPathPtr &&path)
 
 ~CGraphicsPath () noexceptoverride
 
const PlatformGraphicsPathPtrgetPlatformPath (PlatformGraphicsPathFillMode fillMode)
 
Creating gradients
CGradientcreateGradient (double color1Start, double color2Start, const CColor &color1, const CColor &color2)
 creates a new gradient object, you must release it with forget() when you're done with it
 
Adding Elements
void addArc (const CRect &rect, double startAngle, double endAngle, bool clockwise)
 add an arc to the path.
 
void addEllipse (const CRect &rect)
 add an ellipse to the path.
 
void addRect (const CRect &rect)
 add a rectangle to the path.
 
void addPath (const CGraphicsPath &path, CGraphicsTransform *transformation=nullptr)
 add another path to the path.
 
void addLine (const CPoint &to)
 add a line to the path.
 
void addBezierCurve (const CPoint &control1, const CPoint &control2, const CPoint &end)
 add a bezier curve to the path.
 
void beginSubpath (const CPoint &start)
 begin a new subpath.
 
void closeSubpath ()
 close a subpath.
 
void beginSubpath (CCoord x, CCoord y)
 
void addLine (CCoord x, CCoord y)
 
void addBezierCurve (CCoord cp1x, CCoord cp1y, CCoord cp2x, CCoord cp2y, CCoord x, CCoord y)
 
Helpers
void addRoundRect (const CRect &size, CCoord radius)
 
Hit Testing
bool hitTest (const CPoint &p, bool evenOddFilled=false, CGraphicsTransform *transform=nullptr)
 
States
CPoint getCurrentPosition ()
 
CRect getBoundingBox ()
 
- Public Member Functions inherited from ReferenceCounted< T >
 ReferenceCounted ()=default
 
virtual ~ReferenceCounted () noexcept=default
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
void forget () override
 decrease refcount and delete object if refcount == 0
 
void remember () override
 increase refcount
 
virtual int32_t getNbReference () const
 get refcount
 

Protected Types

using ElementList = std::vector< Element >
 

Protected Member Functions

void makePlatformGraphicsPath (PlatformGraphicsPathFillMode fillMode)
 
bool ensurePlatformGraphicsPathValid (PlatformGraphicsPathFillMode fillMode)
 
void dirty ()
 

Protected Attributes

ElementList elements
 
PlatformGraphicsPathFactoryPtr factory
 
PlatformGraphicsPathPtr path
 

Detailed Description

Graphics Path Object.

Member Typedef Documentation

using ElementList = std::vector<Element>
protected

Constructor & Destructor Documentation

~CGraphicsPath ( )
overridenoexcept

Member Function Documentation

void addArc ( const CRect rect,
double  startAngle,
double  endAngle,
bool  clockwise 
)

add an arc to the path.

Begins a new subpath if no elements were added before.

void addBezierCurve ( const CPoint control1,
const CPoint control2,
const CPoint end 
)

add a bezier curve to the path.

A subpath must begin before

void addBezierCurve ( CCoord  cp1x,
CCoord  cp1y,
CCoord  cp2x,
CCoord  cp2y,
CCoord  x,
CCoord  y 
)
inline
void addEllipse ( const CRect rect)

add an ellipse to the path.

Begins a new subpath if no elements were added before.

void addLine ( const CPoint to)

add a line to the path.

A subpath must begin before

void addLine ( CCoord  x,
CCoord  y 
)
inline
void addPath ( const CGraphicsPath path,
CGraphicsTransform transformation = nullptr 
)

add another path to the path.

Begins a new subpath if no elements were added before.

void addRect ( const CRect rect)

add a rectangle to the path.

Begins a new subpath if no elements were added before.

void addRoundRect ( const CRect size,
CCoord  radius 
)
void beginSubpath ( const CPoint start)

begin a new subpath.

void beginSubpath ( CCoord  x,
CCoord  y 
)
inline
void closeSubpath ( )

close a subpath.

A straight line will be added from the current point to the start point.

CGradient * createGradient ( double  color1Start,
double  color2Start,
const CColor color1,
const CColor color2 
)

creates a new gradient object, you must release it with forget() when you're done with it

Parameters
color1Startvalue between zero and one which defines the normalized start offset for color1
color2Startvalue between zero and one which defines the normalized start offset for color2
color1the first color of the gradient
color2the second color of the gradient
Returns
a new gradient object
void dirty ( )
protected
bool ensurePlatformGraphicsPathValid ( PlatformGraphicsPathFillMode  fillMode)
protected
CRect getBoundingBox ( )
CPoint getCurrentPosition ( )
const PlatformGraphicsPathPtr & getPlatformPath ( PlatformGraphicsPathFillMode  fillMode)
bool hitTest ( const CPoint p,
bool  evenOddFilled = false,
CGraphicsTransform transform = nullptr 
)
void makePlatformGraphicsPath ( PlatformGraphicsPathFillMode  fillMode)
protected

Member Data Documentation

ElementList elements
protected
PlatformGraphicsPathFactoryPtr factory
protected
PlatformGraphicsPathPtr path
protected

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