52 #ifndef __PCL_Graphics_h
53 #define __PCL_Graphics_h
57 #ifndef __PCL_BUILDING_PIXINSIGHT_APPLICATION
69 #ifndef __PCL_GRAPHICS_DONT_REMOVE_PREVIOUS_DECLARATIONS
134 namespace CompositionOp
163 NumberOfCompositionOps
191 #ifndef __PCL_BUILDING_PIXINSIGHT_APPLICATION
214 using composition_op = CompositionOp::value_type;
219 using fill_rule = FillRule::value_type;
327 EnableTransformation( !disable );
341 double m21,
double m22,
double m23,
342 double m31,
double m32,
double m33 )
344 SetTransformationMatrix(
Matrix( m11, m12, m13, m21, m22, m23, m31, m32, m33 ) );
354 double m21,
double m22,
double m23,
355 double m31,
double m32,
double m33 )
357 MultiplyTransformationMatrix(
Matrix( m11, m12, m13, m21, m22, m23, m31, m32, m33 ) );
372 ScaleTransformation( scale, scale );
383 TranslateTransformation( d, d );
394 ShearTransformation( s, s );
413 Transform( a.Begin(), a.Length() );
421 Transform( p1.
x, p1.
y );
430 Transform( r1.
x0, r1.
y0 );
431 Transform( r1.
x1, r1.
y1 );
456 EnableClipping( !disable );
471 EnableAntialiasing( !disable );
486 EnableTextAntialiasing( !disable );
501 EnableSmoothInterpolation( !disable );
516 SetCompositionOperator( CompositionOp::SourceOver );
543 return !IsTransparentBackground();
554 SetTransparentBackground( !opaque );
589 return this->
Brush();
631 void* CloneHandle()
const override;
735 SetClipRect( r.
x0, r.
y0, r.
x1, r.
y1 );
746 SetClipRect( ClipRect().Intersection( r ) );
753 IntersectClipRect(
pcl::Rect( x0, y0, x1, y1 ) );
760 SetClipRect( ClipRect().Union( r ) );
767 UniteClipRect(
pcl::Rect( x0, y0, x1, y1 ) );
778 SetBrushOrigin( p.
x, p.
y );
789 DrawPoint( p.
x, p.
y );
800 DrawLine( p0.
x, p0.
y, p1.
x, p1.
y );
826 StrokeRect( r.
x0, r.
y0, r.
x1, r.
y1, pen );
837 FillRect( r.
x0, r.
y0, r.
x1, r.
y1, brush );
844 FillRect( x0, y0, x1, y1, BackgroundBrush() );
851 EraseRect( r.
x0, r.
y0, r.
x1, r.
y1 );
862 DrawRoundedRect( x0, y0, x1, y1, rxy, rxy );
869 DrawRoundedRect( r.
x0, r.
y0, r.
x1, r.
y1, rx, ry );
876 DrawRoundedRect( r.
x0, r.
y0, r.
x1, r.
y1, rxy, rxy );
887 StrokeRoundedRect( x0, y0, x1, y1, rxy, rxy, pen );
894 StrokeRoundedRect( r.
x0, r.
y0, r.
x1, r.
y1, rx, ry, pen );
901 StrokeRoundedRect( r.
x0, r.
y0, r.
x1, r.
y1, rxy, rxy, pen );
912 FillRoundedRect( x0, y0, x1, y1, rxy, rxy, brush );
919 FillRoundedRect( r.
x0, r.
y0, r.
x1, r.
y1, rx, ry, brush );
926 FillRoundedRect( r.
x0, r.
y0, r.
x1, r.
y1, rxy, rxy, brush );
933 FillRoundedRect( x0, y0, x1, y1, rx, ry, BackgroundBrush() );
940 EraseRoundedRect( x0, y0, x1, y1, rxy, rxy );
947 EraseRoundedRect( r.
x0, r.
y0, r.
x1, r.
y1, rx, ry );
954 EraseRoundedRect( r.
x0, r.
y0, r.
x1, r.
y1, rxy, rxy );
965 DrawEllipse( r.
x0, r.
y0, r.
x1, r.
y1 );
976 StrokeEllipse( r.
x0, r.
y0, r.
x1, r.
y1, pen );
987 FillEllipse( r.
x0, r.
y0, r.
x1, r.
y1, brush );
994 FillEllipse( x0, y0, x1, y1, BackgroundBrush() );
1001 EraseEllipse( r.
x0, r.
y0, r.
x1, r.
y1 );
1008 DrawEllipse( xc-r, yc-r, xc+r+1, yc+r+1 );
1015 DrawCircle( c.
x, c.
y, r );
1022 StrokeEllipse( xc-r, yc-r, xc+r+1, yc+r+1, pen );
1029 StrokeCircle( c.
x, c.
y, r, pen );
1036 FillEllipse( xc-r, yc-r, xc+r+1, yc+r+1, brush );
1043 FillCircle( c.
x, c.
y, r, brush );
1050 FillCircle( xc, yc, r, BackgroundBrush() );
1057 EraseCircle( c.
x, c.
y, r );
1069 DrawPolygon( c.Begin(), c.Length(), rule );
1081 StrokePolygon( c.Begin(), c.Length(), pen, rule );
1093 FillPolygon( c.Begin(), c.Length(), brush, rule );
1100 FillPolygon( p, n, BackgroundBrush(), rule );
1108 ErasePolygon( c.Begin(), c.Length(), rule );
1120 DrawPolyline( c.Begin(), c.Length() );
1131 DrawEllipticArc( r.
x0, r.
y0, r.
x1, r.
y1, start, span );
1136 void DrawArc(
int xc,
int yc,
int r,
double start,
double span )
1138 DrawEllipticArc( xc-r, yc-r, xc+r+1, yc+r+1, start, span );
1145 DrawArc( c.
x, c.
y, r, start, span );
1156 DrawEllipticChord( r.
x0, r.
y0, r.
x1, r.
y1, start, span );
1167 StrokeEllipticChord( r.
x0, r.
y0, r.
x1, r.
y1, start, span, pen );
1178 FillEllipticChord( r.
x0, r.
y0, r.
x1, r.
y1, start, span, brush );
1185 FillEllipticChord( x0, y0, x1, y1, start, span, BackgroundBrush() );
1192 EraseEllipticChord( r.
x0, r.
y0, r.
x1, r.
y1, start, span );
1197 void DrawChord(
int xc,
int yc,
int r,
double start,
double span )
1199 DrawEllipticChord( xc-r, yc-r, xc+r+1, yc+r+1, start, span );
1206 DrawChord( c.
x, c.
y, r, start, span );
1213 StrokeEllipticChord( xc-r, yc-r, xc+r+1, yc+r+1, start, span, pen );
1220 StrokeChord( c.
x, c.
y, r, start, span, pen );
1227 FillEllipticChord( xc-r, yc-r, xc+r+1, yc+r+1, start, span, brush );
1234 FillChord( c.
x, c.
y, r, start, span, brush );
1239 void EraseChord(
int xc,
int yc,
int r,
double start,
double span )
1241 FillChord( xc, yc, r, start, span, BackgroundBrush() );
1248 EraseChord( c.
x, c.
y, r, start, span );
1259 DrawEllipticPie( r.
x0, r.
y0, r.
x1, r.
y1, start, span );
1270 StrokeEllipticPie( r.
x0, r.
y0, r.
x1, r.
y1, start, span, pen );
1281 FillEllipticPie( r.
x0, r.
y0, r.
x1, r.
y1, start, span, brush );
1288 FillEllipticPie( x0, y0, x1, y1, start, span, BackgroundBrush() );
1295 EraseEllipticPie( r.
x0, r.
y0, r.
x1, r.
y1, start, span );
1300 void DrawPie(
int xc,
int yc,
int r,
double start,
double span )
1302 DrawEllipticPie( xc-r, yc-r, xc+r+1, yc+r+1, start, span );
1309 DrawPie( c.
x, c.
y, r, start, span );
1316 StrokeEllipticPie( xc-r, yc-r, xc+r+1, yc+r+1, start, span, pen );
1323 StrokePie( c.
x, c.
y, r, start, span, pen );
1330 FillEllipticPie( xc-r, yc-r, xc+r+1, yc+r+1, start, span, brush );
1337 FillPie( c.
x, c.
y, r, start, span, brush );
1342 void ErasePie(
int xc,
int yc,
int r,
double start,
double span )
1344 FillPie( xc, yc, r, start, span, BackgroundBrush() );
1351 ErasePie( c.
x, c.
y, r, start, span );
1362 DrawBitmap( p.
x, p.
y, bm );
1373 DrawBitmapRect( p.
x, p.
y, bm, r.
x0, r.
y0, r.
x1, r.
y1 );
1384 DrawScaledBitmap( r.
x0, r.
y0, r.
x1, r.
y1, bm );
1395 DrawScaledBitmapRect( dst.
x0, dst.
y0, dst.
x1, dst.
y1, bm, src.
x0, src.
y0, src.
x1, src.
y1 );
1406 DrawTiledBitmap( r.
x0, r.
y0, r.
x1, r.
y1, bm, offset.x, offset.y );
1417 DrawText( p.
x, p.
y, s );
1428 DrawTextRect( r.
x0, r.
y0, r.
x1, r.
y1, s, a );
1439 return TextRect( r.
x0, r.
y0, r.
x1, r.
y1, s, a );
1448 friend class InterfaceDispatcher;
1553 SetClipRect( r.x0, r.y0, r.x1, r.y1 );
1565 SetClipRect( ClipRect().Intersection( r ) );
1572 IntersectClipRect(
pcl::DRect( x0, y0, x1, y1 ) );
1580 SetClipRect( ClipRect().Union( r ) );
1587 UniteClipRect(
pcl::DRect( x0, y0, x1, y1 ) );
1599 SetBrushOrigin( p.x, p.y );
1611 DrawPoint( p.x, p.y );
1620 template <
class P0,
class P1>
1623 DrawLine( p0.x, p0.y, p1.x, p1.y );
1628 void DrawLine(
double x0,
double y0,
double x1,
double y1 );
1632 void DrawRect(
double x0,
double y0,
double x1,
double y1 );
1639 DrawRect( r.x0, r.y0, r.x1, r.y1 );
1651 StrokeRect( r.x0, r.y0, r.x1, r.y1, pen );
1663 FillRect( r.x0, r.y0, r.x1, r.y1, brush );
1668 void EraseRect(
double x0,
double y0,
double x1,
double y1 )
1670 FillRect( x0, y0, x1, y1, BackgroundBrush() );
1678 EraseRect( r.x0, r.y0, r.x1, r.y1 );
1689 DrawRoundedRect( x0, y0, x1, y1, rxy, rxy );
1697 DrawRoundedRect( r.x0, r.y0, r.x1, r.y1, rx, ry );
1705 DrawRoundedRect( r.x0, r.y0, r.x1, r.y1, rxy, rxy );
1716 StrokeRoundedRect( x0, y0, x1, y1, rxy, rxy, pen );
1724 StrokeRoundedRect( r.x0, r.y0, r.x1, r.y1, rx, ry, pen );
1732 StrokeRoundedRect( r.x0, r.y0, r.x1, r.y1, rxy, rxy, pen );
1743 FillRoundedRect( x0, y0, x1, y1, rxy, rxy, brush );
1751 FillRoundedRect( r.x0, r.y0, r.x1, r.y1, rx, ry, brush );
1759 FillRoundedRect( r.x0, r.y0, r.x1, r.y1, rxy, rxy, brush );
1766 FillRoundedRect( x0, y0, x1, y1, rx, ry, BackgroundBrush() );
1773 EraseRoundedRect( x0, y0, x1, y1, rxy, rxy );
1781 EraseRoundedRect( r.x0, r.y0, r.x1, r.y1, rx, ry );
1789 EraseRoundedRect( r.x0, r.y0, r.x1, r.y1, rxy, rxy );
1801 DrawEllipse( r.x0, r.y0, r.x1, r.y1 );
1813 StrokeEllipse( r.x0, r.y0, r.x1, r.y1, pen );
1825 FillEllipse( r.x0, r.y0, r.x1, r.y1, brush );
1832 FillEllipse( x0, y0, x1, y1, BackgroundBrush() );
1840 EraseEllipse( r.x0, r.y0, r.x1, r.y1 );
1847 DrawEllipse( xc-r, yc-r, xc+r, yc+r );
1855 DrawCircle( c.x, c.y, r );
1862 StrokeEllipse( xc-r, yc-r, xc+r, yc+r, pen );
1870 StrokeCircle( c.x, c.y, r, pen );
1877 FillEllipse( xc-r, yc-r, xc+r, yc+r, brush );
1885 FillCircle( c.x, c.y, r, brush );
1892 FillCircle( xc, yc, r, BackgroundBrush() );
1900 EraseCircle( c.x, c.y, r );
1912 DrawPolygon( c.Begin(), c.Length(), rule );
1924 StrokePolygon( c.Begin(), c.Length(), pen, rule );
1936 FillPolygon( c.Begin(), c.Length(), brush, rule );
1943 FillPolygon( p, n, BackgroundBrush(), rule );
1951 ErasePolygon( c.Begin(), c.Length(), rule );
1963 DrawPolyline( c.Begin(), c.Length() );
1968 void DrawEllipticArc(
double x0,
double y0,
double x1,
double y1,
double start,
double span );
1975 DrawEllipticArc( r.x0, r.y0, r.x1, r.y1, start, span );
1980 void DrawArc(
double xc,
double yc,
double r,
double start,
double span )
1982 DrawEllipticArc( xc-r, yc-r, xc+r, yc+r, start, span );
1988 void DrawArc(
const P& c,
double r,
double start,
double span )
1990 DrawArc( c.x, c.y, r, start, span );
2002 DrawEllipticChord( r.x0, r.y0, r.x1, r.y1, start, span );
2014 StrokeEllipticChord( r.x0, r.y0, r.x1, r.y1, start, span, pen );
2026 FillEllipticChord( r.x0, r.y0, r.x1, r.y1, start, span, brush );
2033 FillEllipticChord( x0, y0, x1, y1, start, span, BackgroundBrush() );
2041 EraseEllipticChord( r.x0, r.y0, r.x1, r.y1, start, span );
2046 void DrawChord(
double xc,
double yc,
double r,
double start,
double span )
2048 DrawEllipticChord( xc-r, yc-r, xc+r, yc+r, start, span );
2054 void DrawChord(
const P& c,
double r,
double start,
double span )
2056 DrawChord( c.x, c.y, r, start, span );
2063 StrokeEllipticChord( xc-r, yc-r, xc+r, yc+r, start, span, pen );
2071 StrokeChord( c.x, c.y, r, start, span, pen );
2078 FillEllipticChord( xc-r, yc-r, xc+r, yc+r, start, span, brush );
2086 FillChord( c.x, c.y, r, start, span, brush );
2091 void EraseChord(
double xc,
double yc,
double r,
double start,
double span )
2093 FillChord( xc, yc, r, start, span, BackgroundBrush() );
2099 void EraseChord(
const P& c,
double r,
double start,
double span )
2101 EraseChord( c.x, c.y, r, start, span );
2106 void DrawEllipticPie(
double x0,
double y0,
double x1,
double y1,
double start,
double span );
2113 DrawEllipticPie( r.x0, r.y0, r.x1, r.y1, start, span );
2125 StrokeEllipticPie( r.x0, r.y0, r.x1, r.y1, start, span, pen );
2137 FillEllipticPie( r.x0, r.y0, r.x1, r.y1, start, span, brush );
2144 FillEllipticPie( x0, y0, x1, y1, start, span, BackgroundBrush() );
2152 EraseEllipticPie( r.x0, r.y0, r.x1, r.y1, start, span );
2157 void DrawPie(
double xc,
double yc,
double r,
double start,
double span )
2159 DrawEllipticPie( xc-r, yc-r, xc+r, yc+r, start, span );
2165 void DrawPie(
const P& c,
double r,
double start,
double span )
2167 DrawPie( c.x, c.y, r, start, span );
2174 StrokeEllipticPie( xc-r, yc-r, xc+r, yc+r, start, span, pen );
2182 StrokePie( c.x, c.y, r, start, span, pen );
2189 FillEllipticPie( xc-r, yc-r, xc+r, yc+r, start, span, brush );
2197 FillPie( c.x, c.y, r, start, span, brush );
2202 void ErasePie(
double xc,
double yc,
double r,
double start,
double span )
2204 FillPie( xc, yc, r, start, span, BackgroundBrush() );
2210 void ErasePie(
const P& c,
double r,
double start,
double span )
2212 ErasePie( c.x, c.y, r, start, span );
2224 DrawBitmap( p.x, p.y, bm );
2233 template <
class P,
class R>
2236 DrawBitmapRect( p.x, p.y, bm, r.x0, r.y0, r.x1, r.y1 );
2248 DrawScaledBitmap( r.x0, r.y0, r.x1, r.y1, bm );
2257 template <
class R1,
class R2>
2260 DrawScaledBitmapRect( dst.x0, dst.y0, dst.x1, dst.y1, bm, src.x0, src.y0, src.x1, src.y1 );
2265 void DrawTiledBitmap(
double x0,
double y0,
double x1,
double y1,
const Bitmap&,
double xOffset = 0,
double yOffset = 0 );
2269 template <
class R,
class P>
2272 DrawTiledBitmap( r.x0, r.y0, r.x1, r.y1, bm, offset.x, offset.y );
2284 DrawText( p.x, p.y, s );
2296 DrawTextRect( r.x0, r.y0, r.x1, r.y1, s, a );
2308 return TextRect( r.x0, r.y0, r.x1, r.y1, s, a );
2317 friend class InterfaceDispatcher;
Client-side interface to a PixInsight Bitmap object.
Client-side interface to a PixInsight Brush object.
Client-side interface to a PixInsight Control object.
A type-safe collection of enumerated flags.
Client-side interface to a PixInsight Font object.
Generic dynamic matrix of arbitrary dimensions.
A generic point in the two-dimensional space.
component x
Abscissa (horizontal, or X-axis coordinate).
component y
Ordinate (vertical, or Y-axis coordinate).
A generic rectangle in the two-dimensional space.
component x1
Horizontal coordinate of the lower right corner.
component y1
Vertical coordinate of the lower right corner.
component y0
Vertical coordinate of the upper left corner.
component x0
Horizontal coordinate of the upper left corner.
Base class of client-side interface classes to PixInsight graphics contexts
void DisableTextAntialiasing(bool disable=true)
bool IsTextAntialiasingEnabled() const
void ShearTransformation(double sx, double sy)
void EnableAntialiasing(bool=true)
DPoint Transformed(const DPoint &p) const
void ShearTransformation(double s)
void Transform(double &x, double &y) const
void SetPen(RGBA color, float width)
bool IsOpaqueBackground() const
void SetCompositionOperator(composition_op)
void SetOpaqueBackground(bool opaque=true)
bool IsClippingEnabled() const
void SetBrush(const pcl::Brush &)
void Transform(DPoint *p, size_type n) const
bool BeginPaint(Control &control)
GraphicsContextBase(Control &control)
void ScaleTransformation(double scale)
~GraphicsContextBase() override
void EnableTextAntialiasing(bool=true)
GraphicsContextBase(SVG &svg)
void MultiplyTransformationMatrix(double m11, double m12, double m13, double m21, double m22, double m23, double m31, double m32, double m33)
Array< DPoint > Transformed(const Array< DPoint > &a) const
void SetOpacity(double op)
FillRule::value_type fill_rule
void Transform(Array< DPoint > &a) const
void SetTransparentBackground(bool=true)
void SetFont(const pcl::Font &)
void DisableTransformation(bool disable=true)
bool IsSmoothInterpolationEnabled() const
void EnableSmoothInterpolation(bool=true)
void ScaleTransformation(double xScale, double yScale)
pcl::Font GetFont() const
void SetTransformationMatrix(double m11, double m12, double m13, double m21, double m22, double m23, double m31, double m32, double m33)
void SetBackgroundBrush(const pcl::Brush &)
GraphicsContextBase(GraphicsContextBase &&x)
void MultiplyTransformationMatrix(const Matrix &M)
void EnableTransformation(bool=true)
void ResetCompositionOperator()
bool IsTransparentBackground() const
void RotateTransformation(double angleRadians)
bool IsTransformationEnabled() const
void DisableAntialiasing(bool disable=true)
void DisableClipping(bool disable=true)
void DisableSmoothInterpolation(bool disable=true)
void SetTransformationMatrix(const Matrix &M)
bool BeginPaint(Bitmap &bitmap)
void TranslateTransformation(double d)
pcl::Brush BackgroundBrush() const
composition_op CompositionOperator() const
GraphicsContextBase(Bitmap &bitmap)
DRect Transformed(const DRect &r) const
pcl::Brush GetBrush() const
bool IsAntialiasingEnabled() const
void EnableClipping(bool=true)
void SetPen(const pcl::Pen &)
Matrix TransformationMatrix() const
void ResetTransformation()
void EnsureUnique() override
void TranslateTransformation(double dx, double dy)
CompositionOp::value_type composition_op
bool BeginPaint(SVG &svg)
Client-side interface to a PixInsight graphics context object.
void DrawScaledBitmapRect(const pcl::Rect &dst, const Bitmap &bm, const pcl::Rect &src)
void EraseCircle(const pcl::Point &c, int r)
void SetClipRect(const pcl::Rect &r)
void DrawText(const pcl::Point &p, const String &s)
void DrawBitmap(int x, int y, const Bitmap &)
void DrawBitmap(const pcl::Point &p, const Bitmap &bm)
void DrawScaledBitmap(const pcl::Rect &r, const Bitmap &bm)
void ErasePie(int xc, int yc, int r, double start, double span)
void EraseRoundedRect(const pcl::Rect &r, double rx, double ry)
void FillRoundedRect(const pcl::Rect &r, double rxy=25, const pcl::Brush &brush=pcl::Brush::Null())
void DrawScaledBitmap(int x0, int y0, int x1, int y1, const Bitmap &)
void StrokeEllipticChord(int x0, int y0, int x1, int y1, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void DrawTiledBitmap(int x0, int y0, int x1, int y1, const Bitmap &, int xOffset=0, int yOffset=0)
void StrokePie(int xc, int yc, int r, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void FillEllipticPie(int x0, int y0, int x1, int y1, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void EraseRect(int x0, int y0, int x1, int y1)
pcl::Rect ClipRect() const
pcl::Point BrushOrigin() const
void DrawChord(int xc, int yc, int r, double start, double span)
void DrawCircle(int xc, int yc, int r)
void DrawTextRect(int x0, int y0, int x1, int y1, const String &, TextAlignmentFlags=TextAlign::Default)
void DrawPolygon(const C &c, fill_rule rule=FillRule::OddEven)
void StrokeRect(int x0, int y0, int x1, int y1, const pcl::Pen &pen=pcl::Pen::Null())
pcl::Rect TextRect(const pcl::Rect r, const String &s, TextAlignmentFlags a=TextAlign::Default)
void FillRect(const pcl::Rect &r, const pcl::Brush &brush=pcl::Brush::Null())
void EraseRoundedRect(int x0, int y0, int x1, int y1, double rx, double ry)
void StrokeRect(const pcl::Rect &r, const pcl::Pen &pen=pcl::Pen::Null())
void StrokeRoundedRect(const pcl::Rect &r, double rxy=25, const pcl::Pen &pen=pcl::Pen::Null())
void DrawRoundedRect(int x0, int y0, int x1, int y1, double rx, double ry)
void ErasePolygon(const pcl::Point *p, size_type n, fill_rule rule=FillRule::OddEven)
void IntersectClipRect(const pcl::Rect &r)
void IntersectClipRect(int x0, int y0, int x1, int y1)
void FillChord(int xc, int yc, int r, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void StrokeRoundedRect(const pcl::Rect &r, double rx, double ry, const pcl::Pen &pen=pcl::Pen::Null())
void FillChord(const pcl::Point &c, int r, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void StrokeEllipticPie(int x0, int y0, int x1, int y1, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void EraseRoundedRect(const pcl::Rect &r, double rxy=25)
void SetClipRect(int x0, int y0, int x1, int y1)
void DrawEllipse(const pcl::Rect &r)
void DrawTextRect(const pcl::Rect r, const String &s, TextAlignmentFlags a=TextAlign::Default)
void DrawEllipticPie(int x0, int y0, int x1, int y1, double start, double span)
void StrokeEllipse(int x0, int y0, int x1, int y1, const pcl::Pen &pen=pcl::Pen::Null())
void DrawEllipticChord(int x0, int y0, int x1, int y1, double start, double span)
void FillRoundedRect(int x0, int y0, int x1, int y1, double rxy=25, const pcl::Brush &brush=pcl::Brush::Null())
void SetBrushOrigin(int x, int y)
void EraseEllipticPie(const pcl::Rect &r, double start, double span)
void EraseEllipse(int x0, int y0, int x1, int y1)
void DrawTiledBitmap(const pcl::Rect &r, const Bitmap &bm, const pcl::Point &offset=pcl::Point(0))
void FillEllipse(int x0, int y0, int x1, int y1, const pcl::Brush &brush=pcl::Brush::Null())
void EraseCircle(int xc, int yc, int r)
void DrawPolygon(const pcl::Point *p, size_type n, fill_rule rule=FillRule::OddEven)
void FillPie(const pcl::Point &c, int r, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void EraseRoundedRect(int x0, int y0, int x1, int y1, double rxy=25)
void FillPie(int xc, int yc, int r, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void StrokeChord(int xc, int yc, int r, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void DrawArc(const pcl::Point &c, int r, double start, double span)
void FillPolygon(const pcl::Point *p, size_type n, const pcl::Brush &brush=pcl::Brush::Null(), fill_rule rule=FillRule::OddEven)
Graphics(Control &control)
void FillEllipticPie(const pcl::Rect &r, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void DrawEllipticArc(const pcl::Rect &r, double start, double span)
void StrokeRoundedRect(int x0, int y0, int x1, int y1, double rx, double ry, const pcl::Pen &pen=pcl::Pen::Null())
void DrawChord(const pcl::Point &c, int r, double start, double span)
void DrawScaledBitmapRect(int dx0, int dy0, int dx1, int dy1, const Bitmap &, int sx0, int sy0, int sx1, int sy1)
void DrawPoint(const pcl::Point &p)
void FillEllipticChord(int x0, int y0, int x1, int y1, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void StrokeChord(const pcl::Point &c, int r, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void DrawRoundedRect(int x0, int y0, int x1, int y1, double rxy=25)
void FillRoundedRect(const pcl::Rect &r, double rx, double ry, const pcl::Brush &brush=pcl::Brush::Null())
void StrokePolygon(const C &c, const pcl::Pen &pen=pcl::Pen::Null(), fill_rule rule=FillRule::OddEven)
void EraseEllipticPie(int x0, int y0, int x1, int y1, double start, double span)
void EraseChord(int xc, int yc, int r, double start, double span)
void FillRect(int x0, int y0, int x1, int y1, const pcl::Brush &brush=pcl::Brush::Null())
void StrokeEllipticPie(const pcl::Rect &r, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void DrawPoint(int x, int y)
void DrawArc(int xc, int yc, int r, double start, double span)
void DrawRoundedRect(const pcl::Rect &r, double rx, double ry)
void ErasePie(const pcl::Point &c, int r, double start, double span)
void DrawPie(int xc, int yc, int r, double start, double span)
void DrawRect(const pcl::Rect &r)
void FillEllipticChord(const pcl::Rect &r, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void DrawPolyline(const C &c)
void StrokeCircle(const pcl::Point &c, int r, const pcl::Pen &pen=pcl::Pen::Null())
void EraseRect(const pcl::Rect &r)
void UniteClipRect(int x0, int y0, int x1, int y1)
void DrawText(int x, int y, const String &)
void StrokeEllipticChord(const pcl::Rect &r, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void DrawLine(const pcl::Point &p0, const pcl::Point &p1)
void SetBrushOrigin(const pcl::Point &p)
void EraseEllipticChord(int x0, int y0, int x1, int y1, double start, double span)
void DrawEllipticPie(const pcl::Rect &r, double start, double span)
void EraseEllipse(const pcl::Rect &r)
pcl::Rect TextRect(int x0, int y0, int x1, int y1, const String &, TextAlignmentFlags=TextAlign::Default) const
void FillCircle(const pcl::Point &c, int r, const pcl::Brush &brush=pcl::Brush::Null())
void UniteClipRect(const pcl::Rect &r)
void DrawPie(const pcl::Point &c, int r, double start, double span)
void DrawBitmapRect(int x, int y, const Bitmap &, int x0, int y0, int x1, int y1)
void ErasePolygon(const C &c, fill_rule rule=FillRule::OddEven)
void DrawEllipticChord(const pcl::Rect &r, double start, double span)
void DrawRect(int x0, int y0, int x1, int y1)
void DrawEllipse(int x0, int y0, int x1, int y1)
void FillPolygon(const C &c, const pcl::Brush &brush=pcl::Brush::Null(), fill_rule rule=FillRule::OddEven)
void StrokeEllipse(const pcl::Rect &r, const pcl::Pen &pen=pcl::Pen::Null())
void StrokePolygon(const pcl::Point *p, size_type n, const pcl::Pen &pen=pcl::Pen::Null(), fill_rule rule=FillRule::OddEven)
void StrokePie(const pcl::Point &c, int r, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void DrawLine(int x0, int y0, int x1, int y1)
void DrawBitmapRect(const pcl::Point &p, const Bitmap &bm, const pcl::Rect &r)
void EraseEllipticChord(const pcl::Rect &r, double start, double span)
void DrawCircle(const pcl::Point &c, int r)
void FillEllipse(const pcl::Rect &r, const pcl::Brush &brush=pcl::Brush::Null())
void DrawPolyline(const pcl::Point *, size_type n)
void FillRoundedRect(int x0, int y0, int x1, int y1, double rx, double ry, const pcl::Brush &brush=pcl::Brush::Null())
void FillCircle(int xc, int yc, int r, const pcl::Brush &brush=pcl::Brush::Null())
void EraseChord(const pcl::Point &c, int r, double start, double span)
void DrawRoundedRect(const pcl::Rect &r, double rxy=25)
void StrokeCircle(int xc, int yc, int r, const pcl::Pen &pen=pcl::Pen::Null())
void StrokeRoundedRect(int x0, int y0, int x1, int y1, double rxy=25, const pcl::Pen &pen=pcl::Pen::Null())
void DrawEllipticArc(int x0, int y0, int x1, int y1, double start, double span)
Client-side interface to a PixInsight Pen object.
Scalable Vector Graphics generation.
Root base class for all user interface objects.
Client-side interface to a PixInsight vector graphics context.
void DrawRoundedRect(const R &r, double rx, double ry)
void DrawRoundedRect(double x0, double y0, double x1, double y1, double rxy=25)
void EraseEllipticPie(const R &r, double start, double span)
void DrawEllipticPie(const R &r, double start, double span)
void StrokePolygon(const C &c, const pcl::Pen &pen=pcl::Pen::Null(), fill_rule rule=FillRule::OddEven)
void DrawText(const P &p, const String &s)
VectorGraphics(VectorGraphics &&x)
void FillCircle(double xc, double yc, double r, const pcl::Brush &brush=pcl::Brush::Null())
void EraseRect(const R &r)
void DrawText(double x, double y, const String &)
void StrokeCircle(const P &c, double r, const pcl::Pen &pen=pcl::Pen::Null())
void FillEllipticPie(double x0, double y0, double x1, double y1, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void EraseRoundedRect(const R &r, double rx, double ry)
void StrokeRect(const R &r, const pcl::Pen &pen=pcl::Pen::Null())
void DrawPolygon(const C &c, fill_rule rule=FillRule::OddEven)
void StrokePie(double xc, double yc, double r, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void StrokeEllipse(const R &r, const pcl::Pen &pen=pcl::Pen::Null())
void EraseEllipticChord(const R &r, double start, double span)
void StrokeEllipticPie(const R &r, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void FillPolygon(const pcl::DPoint *p, size_type n, const pcl::Brush &brush=pcl::Brush::Null(), fill_rule rule=FillRule::OddEven)
void DrawArc(double xc, double yc, double r, double start, double span)
void DrawBitmapRect(const P &p, const Bitmap &bm, const R &r)
pcl::DRect ClipRect() const
void EraseRoundedRect(const R &r, double rxy=25)
void DrawRect(const R &r)
void FillRoundedRect(const R &r, double rxy=25, const pcl::Brush &brush=pcl::Brush::Null())
void DrawRoundedRect(const R &r, double rxy=25)
void EraseChord(double xc, double yc, double r, double start, double span)
void DrawArc(const P &c, double r, double start, double span)
void DrawScaledBitmapRect(const R1 &dst, const Bitmap &bm, const R2 &src)
void DrawTiledBitmap(const R &r, const Bitmap &bm, const P &offset=P())
void SetClipRect(double x0, double y0, double x1, double y1)
void EraseRoundedRect(double x0, double y0, double x1, double y1, double rx, double ry)
void DrawPie(const P &c, double r, double start, double span)
void DrawLine(const P0 &p0, const P1 &p1)
void FillChord(const P &c, double r, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void StrokeRoundedRect(const R &r, double rxy=25, const pcl::Pen &pen=pcl::Pen::Null())
void IntersectClipRect(double x0, double y0, double x1, double y1)
void DrawTiledBitmap(double x0, double y0, double x1, double y1, const Bitmap &, double xOffset=0, double yOffset=0)
void FillEllipticPie(const R &r, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void DrawBitmap(double x, double y, const Bitmap &)
void ErasePie(const P &c, double r, double start, double span)
void DrawScaledBitmap(double x0, double y0, double x1, double y1, const Bitmap &)
void EraseCircle(double xc, double yc, double r)
void DrawLine(double x0, double y0, double x1, double y1)
void DrawPoint(double x, double y)
pcl::DPoint BrushOrigin() const
void EraseRect(double x0, double y0, double x1, double y1)
void EraseEllipticChord(double x0, double y0, double x1, double y1, double start, double span)
void DrawEllipse(double x0, double y0, double x1, double y1)
void SetClipRect(const R &r)
void FillChord(double xc, double yc, double r, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void DrawTextRect(const R &r, const String &s, TextAlignmentFlags a=TextAlign::Default)
void DrawPie(double xc, double yc, double r, double start, double span)
void StrokePie(const P &c, double r, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void DrawScaledBitmapRect(double dx0, double dy0, double dx1, double dy1, const Bitmap &, double sx0, double sy0, double sx1, double sy1)
void FillPie(const P &c, double r, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void FillPie(double xc, double yc, double r, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void StrokeRect(double x0, double y0, double x1, double y1, const pcl::Pen &pen=pcl::Pen::Null())
void DrawEllipticArc(double x0, double y0, double x1, double y1, double start, double span)
void DrawEllipticPie(double x0, double y0, double x1, double y1, double start, double span)
void StrokePolygon(const pcl::DPoint *p, size_type n, const pcl::Pen &pen=pcl::Pen::Null(), fill_rule rule=FillRule::OddEven)
void ErasePie(double xc, double yc, double r, double start, double span)
void StrokeCircle(double xc, double yc, double r, const pcl::Pen &pen=pcl::Pen::Null())
pcl::DRect TextRect(const R &r, const String &s, TextAlignmentFlags a=TextAlign::Default)
void SetBrushOrigin(double x, double y)
void SetBrushOrigin(const P &p)
void ErasePolygon(const pcl::DPoint *p, size_type n, fill_rule rule=FillRule::OddEven)
void FillCircle(const P &c, double r, const pcl::Brush &brush=pcl::Brush::Null())
void FillEllipse(double x0, double y0, double x1, double y1, const pcl::Brush &brush=pcl::Brush::Null())
void DrawCircle(double xc, double yc, double r)
void FillRect(const R &r, const pcl::Brush &brush=pcl::Brush::Null())
void FillEllipse(const R &r, const pcl::Brush &brush=pcl::Brush::Null())
void StrokeEllipticPie(double x0, double y0, double x1, double y1, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void FillEllipticChord(const R &r, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void DrawBitmap(const P &p, const Bitmap &bm)
~VectorGraphics() override
void DrawPolyline(const C &c)
VectorGraphics(Bitmap &bitmap)
void EraseRoundedRect(double x0, double y0, double x1, double y1, double rxy=25)
void StrokeChord(const P &c, double r, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void StrokeChord(double xc, double yc, double r, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void DrawScaledBitmap(const R &r, const Bitmap &bm)
void EraseEllipse(double x0, double y0, double x1, double y1)
void StrokeEllipse(double x0, double y0, double x1, double y1, const pcl::Pen &pen=pcl::Pen::Null())
void FillRect(double x0, double y0, double x1, double y1, const pcl::Brush &brush=pcl::Brush::Null())
static VectorGraphics & Null()
void DrawPoint(const P &p)
void DrawPolyline(const pcl::DPoint *, size_type n)
void ErasePolygon(const C &c, fill_rule rule=FillRule::OddEven)
void FillRoundedRect(double x0, double y0, double x1, double y1, double rx, double ry, const pcl::Brush &brush=pcl::Brush::Null())
void DrawChord(const P &c, double r, double start, double span)
void EraseEllipticPie(double x0, double y0, double x1, double y1, double start, double span)
void DrawRect(double x0, double y0, double x1, double y1)
void StrokeRoundedRect(const R &r, double rx, double ry, const pcl::Pen &pen=pcl::Pen::Null())
void UniteClipRect(double x0, double y0, double x1, double y1)
void StrokeEllipticChord(const R &r, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void DrawChord(double xc, double yc, double r, double start, double span)
void StrokeEllipticChord(double x0, double y0, double x1, double y1, double start, double span, const pcl::Pen &pen=pcl::Pen::Null())
void DrawPolygon(const pcl::DPoint *p, size_type n, fill_rule rule=FillRule::OddEven)
void DrawTextRect(double x0, double y0, double x1, double y1, const String &, TextAlignmentFlags=TextAlign::Default)
void StrokeRoundedRect(double x0, double y0, double x1, double y1, double rxy=25, const pcl::Pen &pen=pcl::Pen::Null())
void StrokeRoundedRect(double x0, double y0, double x1, double y1, double rx, double ry, const pcl::Pen &pen=pcl::Pen::Null())
VectorGraphics(Control &control)
void FillRoundedRect(double x0, double y0, double x1, double y1, double rxy=25, const pcl::Brush &brush=pcl::Brush::Null())
void UniteClipRect(const R &r)
void DrawEllipticChord(double x0, double y0, double x1, double y1, double start, double span)
pcl::DRect TextRect(double x0, double y0, double x1, double y1, const String &, TextAlignmentFlags=TextAlign::Default) const
void DrawEllipse(const R &r)
void DrawBitmapRect(double x, double y, const Bitmap &, double x0, double y0, double x1, double y1)
void FillRoundedRect(const R &r, double rx, double ry, const pcl::Brush &brush=pcl::Brush::Null())
void EraseEllipse(const R &r)
void IntersectClipRect(const R &r)
void DrawEllipticChord(const R &r, double start, double span)
void EraseChord(const P &c, double r, double start, double span)
void FillPolygon(const C &c, const pcl::Brush &brush=pcl::Brush::Null(), fill_rule rule=FillRule::OddEven)
void DrawEllipticArc(const R &r, double start, double span)
void DrawCircle(const P &c, double r)
void FillEllipticChord(double x0, double y0, double x1, double y1, double start, double span, const pcl::Brush &brush=pcl::Brush::Null())
void DrawRoundedRect(double x0, double y0, double x1, double y1, double rx, double ry)
void EraseCircle(const P &c, double r)