Mako 8.2.0 API
MakoCore SDK API Documentation
Loading...
Searching...
No Matches
idompathgeometry.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2007-2025 Global Graphics Software Ltd. All rights reserved.
3 */
4
5#ifndef EDLIDOMPATHGEOMETRY_H
6#define EDLIDOMPATHGEOMETRY_H
7
8#include <edl/edltypes.h>
9#include <edl/edlfwd.h>
10#include <edl/edlgeom.h>
11#include <edl/iedlobject.h>
12#include <edl/edlnamespaces.h>
13#include <edl/idomshape.h>
14#include <edl/idomhashable.h>
16
17class IDOMPathSegment;
19class IDOMArcSegment;
27class IDOMPathFigure;
29
46{
47 public:
61
66 virtual eSegmentType getSegmentType() const = 0;
67
74 virtual bool getIsStroked() const = 0;
82 virtual void setIsStroked(bool isStroked) = 0;
88 virtual FRect getBounds(FPoint &startPoint) const= 0;
93 virtual const FPoint &getEndPoint() const = 0;
98 virtual bool getIsImmutable() const = 0;
102 virtual void setImmutable() = 0;
103};
104#define edlobj2IDOMPathSegment(src) edl_cast((IDOMPathSegment *) nullptr, src)
105
128{
129 public:
130#define IDOMArcSegmentClassID 0xFC8F943E, 0x23E94b1a, 0x8A078F67, 0x63F188CA
135 static const CClassID &classID()
136 {
138 return id;
139 }
140
156
160 class Data : public CClassParams
161 {
162 public:
163 Data(): isStroked(true), immutable(false),
164 isLargeArc (false),
165 radiusX (0.0),
166 radiusY (0.0),
167 rotationAngle (0.0),
169 {}
170 bool immutable; // True if editing should not be allowed for this segment.
172 double radiusX;
173 double radiusY;
178 };
179
192 static EDL_API IDOMArcSegmentPtr create(IEDLClassFactory *factory,
193 bool isStroked = false,
194 const FPoint &point = FPoint(),
195 double radiusX = 0.0, double radiusY = 0.0, double rotationAngle = 0.0,
196 bool isLargeArc = false,
197 eSweepDirection sweepDirection = eSDClockwise);
198
207 virtual const FPoint &getPoint() const = 0;
208
214 virtual void setPoint(const FPoint &pt) = 0;
215
220 virtual double getRadiusX() const = 0;
221
227 virtual void setRadiusX(double radiusX) = 0;
228
233
234 virtual double getRadiusY() const = 0;
239
240 virtual void setRadiusY(double radiusY) = 0;
251
252 virtual double getRotationAngle() const = 0;
261 virtual void setRotationAngle(double rA) = 0;
262
273 virtual bool getIsLargeArc() const = 0;
274
281 virtual void setIsLargeArc(bool isLA) = 0;
282
296
302 virtual void setSweepDirection(eSweepDirection sd) = 0;
314 virtual IDOMPathSegmentPtr convertToSimpleSegment(IEDLClassFactory *factory, const FPoint &startPoint) const = 0;
315};
316#define edlobj2IDOMArcSegment(src) edl_cast((IDOMArcSegment *) nullptr, src)
317
326{
327#define IDOMPolyLineSegmentClassID 0x858ed3ce, 0xc14b4bdf, 0x8f1fb58b, 0xa046afd2
328 public:
333 static const CClassID &classID()
334 {
336 return id;
337 };
338
342 class Data : public CClassParams
343 {
344 public:
345 Data(): isStroked(true), immutable(false)
346 {}
347 bool immutable; // True if editing should not be allowed for this segment.
350 };
351
358 static EDL_API IDOMPolyLineSegmentPtr create(IEDLClassFactory *factory,
359 bool isStroked = true,
360 const CFPointVect &points = CFPointVect());
361
366 virtual const CFPointVect &getPoints() const = 0;
371 virtual uint32 getPointsCount() const = 0;
376 virtual void clearPoints() = 0;
382 virtual void addPoint(const FPoint &point) = 0;
383};
384#define edlobj2IDOMPolyLineSegment(src) edl_cast((IDOMPolyLineSegment *) nullptr, src)
385
398{
399#define IDOMPolyBezierSegmentClassID 0xb2c0876c, 0x5f1b4e0a, 0xb6f0babb, 0x23061b1e
400 public:
405 static const CClassID &classID()
406 {
408 return id;
409 };
410
414 class Data : public CClassParams
415 {
416 public:
417 Data(): isStroked(true), immutable(false)
418 {}
419 bool immutable; // True if editing should not be allowed for this segment.
422 };
423
431 static EDL_API IDOMPolyBezierSegmentPtr create(IEDLClassFactory *factory,
432 bool isStroked = true,
433 const CFPointVect &points = CFPointVect());
434
440 virtual const CFPointVect &getPoints() const = 0;
446 virtual uint32 getPointsCount() const = 0;
451 virtual void clearPoints() = 0;
457 virtual void addPoint(const FPoint &point) = 0;
458};
459#define edlobj2IDOMPolyBezierSegment(src) edl_cast((IDOMPolyBezierSegment *) nullptr, src)
460
472{
473#define IDOMPolyQuadraticBezierSegmentClassID 0x8c8ae8b7, 0x7ad64100, 0x8e55774e, 0x7e06ba34
474 public:
479 static const CClassID &classID()
480 {
482 return id;
483 };
484
488 class Data : public CClassParams
489 {
490 public:
491 Data(): isStroked(true), immutable(false)
492 {}
493 bool immutable; // True if editing should not be allowed for this segment.
496 };
497
505 static EDL_API IDOMPolyQuadraticBezierSegmentPtr create(IEDLClassFactory *factory,
506 bool isStroked = true,
507 const CFPointVect &points = CFPointVect());
513 virtual const CFPointVect &getPoints() const = 0;
519 virtual uint32 getPointsCount() const = 0;
524 virtual void clearPoints() = 0;
530 virtual void addPoint(const FPoint &point) = 0;
537 virtual IDOMPolyBezierSegmentPtr convertToCubicBezierSegment(IEDLClassFactory *factory, const FPoint &startPoint) const = 0;
538};
539#define edlobj2IDOMPolyQuadraticBezierSegment(src) edl_cast((IDOMPolyQuadraticBezierSegment *) nullptr, src)
540
542
556{
557 public:
558#define IDOMPathFigureClassID 0x69B82E30, 0xA5D24512, 0xB44599CE, 0x21AF0BFC
563 static const CClassID &classID()
564 {
566 return id;
567 }
568
572 class Data : public CClassParams
573 {
574 public:
575 Data(): isFilled(true), isClosed(false), immutable(false)
576 {}
577 bool immutable; // True if editing should not be allowed for this segment.
582 };
583
593 static EDL_API IDOMPathFigurePtr create(IEDLClassFactory *factory,
594 const FPoint &startPoint = FPoint(),
595 bool isClosed = false,
596 bool isFilled = true,
597 const CDOMPathSegmentVect &segments = CDOMPathSegmentVect());
598
610 virtual bool getIsClosed() const = 0;
620 virtual void setIsClosed(bool closed) = 0;
625 virtual const FPoint &getStartPoint() const = 0;
631 virtual void setStartPoint(const FPoint &sp) = 0;
638 virtual bool getIsFilled() const = 0;
646 virtual void setIsFilled(bool filled) = 0;
651 virtual const CDOMPathSegmentVect &getSegments() const = 0;
656 virtual uint32 getSegmentsCount() const = 0;
661 virtual void clearSegments() = 0;
667 virtual void addSegment(const IDOMPathSegmentPtr &pathSegment) = 0;
672 virtual FRect getBounds() const = 0;
677 virtual bool getIsImmutable() const = 0;
681 virtual void setImmutable() = 0;
682};
683#define edlobj2IDOMPathFigure(src) edl_cast((IDOMPathFigure *) nullptr, src)
684
686
687class IDOMPathGeometry;
689
709{
710 public:
711#define IDOMPathGeometryClassID 0xCC10E2AC, 0x4F8946d6, 0xA99ACB94, 0xC0379682
712
732 typedef enum
733 {
736 } eFillRule;
737
748 static EDL_API IDOMPathGeometryPtr create(IEDLClassFactory *factory, const FRect &rect, bool close = true,
749 const FMatrix &renderTransform = FMatrix());
750
758 static EDL_API IDOMPathGeometryPtr create(IEDLClassFactory *factory, const EDLSysString &abbreviatedGeometry,
759 const FMatrix &renderTransform = FMatrix());
760
769 static EDL_API IDOMPathGeometryPtr create(IEDLClassFactory *factory, const CDOMPathFigureVect &figures = CDOMPathFigureVect(),
770 const FMatrix &renderTransform = FMatrix(), eFillRule fillRule = eFREvenOdd);
771
781 static EDL_API IDOMPathGeometryPtr createEllipse(IEDLClassFactory *factory, const FRect &rect,
782 const FMatrix &renderTransform = FMatrix());
783
784
793 static EDL_API IDOMPathGeometryPtr createPolygon(IEDLClassFactory *factory, const FRect &rect, uint32 numSides, double rotationAngle = 0.0);
794
795
800 static const CClassID &classID()
801 {
803 return id;
804 }
805
820
830 virtual eFillRule getFillRule() const = 0;
840 virtual void setFillRule(eFillRule fr) = 0;
845 virtual const FMatrix &getRenderTransform() const = 0;
850 virtual void setRenderTransform(const FMatrix &matrix) = 0;
855 virtual CDOMPathFigureVect getFigures() const = 0;
860 virtual uint32 getFiguresCount() const = 0;
865 virtual void clearFigures() = 0;
871 virtual void addFigure(const IDOMPathFigurePtr &pathFigure) = 0;
876 virtual bool getFiguresImmutable() const = 0;
877
886 virtual IDOMPathGeometryPtr getMutableGeometry(IEDLClassFactory *factory) const = 0;
887
898 virtual FRect getBounds(bool applyTransform = true) const = 0;
899
909 virtual bool getIsRect(FRect &rect) = 0;
910
929 virtual bool getIsRect(FPoint &startPoint,
930 FPoint &oppositePoint,
931 bool &firstLineIsX,
932 bool &closed) = 0;
933
941 virtual IDOMShapePtr getShape(IEDLClassFactory *factory, const FMatrix &transform, float resolution) = 0;
942
954 virtual IDOMPathGeometryPtr getSimplifiedGeometry(IEDLClassFactory *pFactory, bool simplifyQuads, bool simplifyArcs) = 0;
955
970 virtual IDOMPathGeometryPtr getFlattenedGeometry(IEDLClassFactory *pFactory, const FMatrix &transform, float resolution) = 0;
971};
972#define edlobj2IDOMPathGeometry(src) edl_cast((IDOMPathGeometry *) nullptr, src)
973
976
988{
989 public:
990
991#define IDOMPathGeometryBuilderClassID 0x4E87AB69, 0x634E44A5, 0x93DB169C, 0xC7C2643B
992
997 static const CClassID &classID()
998 {
1000 return id;
1001 }
1002
1010 static EDL_API IDOMPathGeometryBuilderPtr create(IEDLClassFactory *factory);
1011
1020 virtual void moveTo(const FPoint &point, bool absolute = true) = 0;
1021
1032 virtual void lineTo(const FPoint &point, bool absolute = true, bool stroked = true) = 0;
1033
1046 virtual void curveTo(const FPoint &control0, const FPoint &control1, const FPoint &point,
1047 bool absolute = true, bool stroked = true) = 0;
1048
1060 virtual void quadCurveTo(const FPoint &control, const FPoint &point, bool absolute = true, bool stroked = true) = 0;
1061
1076 virtual void arcTo(const FPoint &radius, double rotation, bool isLargeArc, IDOMArcSegment::eSweepDirection sweepDirection,
1077 const FPoint &point, bool absolute = true, bool stroked = true) = 0;
1078
1086 virtual void close(bool stroked = true) = 0;
1087
1098 virtual IDOMPathGeometryPtr createGeometry(IEDLClassFactory *pFactory, IDOMPathGeometry::eFillRule fillRule, bool ignoreDegenerateSubpaths = false,
1099 const FMatrix &renderTransform = FMatrix()) const = 0;
1100};
1101#define edlobj2IDOMPathGeometryBuilder(obj) IDOMPathGeometryBuilderPtr(dynamic_cast<IDOMPathGeometryBuilder *>((IRCObject *) obj), true)
1102
1104
1105#endif /* EDLIDOMPATHGEOMETRY_H */
An object to represent a 128-bit globally unique ID.
Definition objclassid.h:29
EDL Object Interface.
Definition iedlobject.h:31
Definition edlvector.h:30
double rotationAngle
Definition idompathgeometry.h:174
bool isStroked
Definition idompathgeometry.h:176
FPoint point
Definition idompathgeometry.h:171
bool immutable
Definition idompathgeometry.h:170
double radiusY
Definition idompathgeometry.h:173
double radiusX
Definition idompathgeometry.h:172
Data()
Definition idompathgeometry.h:163
eSweepDirection sweepDirection
Definition idompathgeometry.h:177
bool isLargeArc
Definition idompathgeometry.h:175
Interface to Arc Segment element.
Definition idompathgeometry.h:128
virtual const FPoint & getPoint() const =0
Retrieves the end point of the arc.
virtual double getRadiusY() const =0
Retrieves the y-radius of the base ellipses.
virtual void setSweepDirection(eSweepDirection sd)=0
Sets sweep direction An exception is thrown if this segment is immutable.
virtual double getRadiusX() const =0
Retrieves the x-radius of the arc.
virtual void setRadiusY(double radiusY)=0
Sets the y-radius of the base ellipses.
static EDL_API IDOMArcSegmentPtr create(IEDLClassFactory *factory, bool isStroked=false, const FPoint &point=FPoint(), double radiusX=0.0, double radiusY=0.0, double rotationAngle=0.0, bool isLargeArc=false, eSweepDirection sweepDirection=eSDClockwise)
Simplified creator for an arc segment.
virtual void setRadiusX(double radiusX)=0
Sets the x-radius of the base ellipses. An exception is thrown if this segment is immutable.
static const CClassID & classID()
Retrieves the class id of IDOMArcSegment.
Definition idompathgeometry.h:135
virtual void setRotationAngle(double rA)=0
Sets rotation angle of the arc. An exception is thrown if this segment is immutable.
virtual void setIsLargeArc(bool isLA)=0
Sets isLargeArc. See getIsLargeArc() for a description of how isLargeArc determines the arc to be dra...
virtual bool getIsLargeArc() const =0
Retrieves isLargeArc.
virtual double getRotationAngle() const =0
Retrieves the rotation angle of the base ellipses.
virtual IDOMPathSegmentPtr convertToSimpleSegment(IEDLClassFactory *factory, const FPoint &startPoint) const =0
Create a segment that represents this arc using a simpler segment type.
virtual eSweepDirection getSweepDirection() const =0
Retrieves the sweep direction.
virtual void setPoint(const FPoint &pt)=0
Sets the end point of the arc. An exception is thrown if this segment is immutable.
@ eSDClockwise
Definition idompathgeometry.h:153
@ eSDCounterclockwise
Definition idompathgeometry.h:154
Abstract interface for objects that can be hashed.
Definition idomhashable.h:28
bool isFilled
Definition idompathgeometry.h:580
CDOMPathSegmentVect segments
Definition idompathgeometry.h:581
bool immutable
Definition idompathgeometry.h:577
FPoint startPoint
Definition idompathgeometry.h:578
bool isClosed
Definition idompathgeometry.h:579
Data()
Definition idompathgeometry.h:575
Interface to the path figure element. A path figure is a single shape comprised of continuous path se...
Definition idompathgeometry.h:556
virtual void clearSegments()=0
Removes all path segments from the figure. An exception is thrown if this segment is immutable.
virtual void setIsFilled(bool filled)=0
Sets IsFilled for the figure. IsFilled specifies whether the path figure is used in computing the are...
virtual bool getIsFilled() const =0
Retrieves IsFilled for the figure. IsFilled specifies whether the path figure is used in computing th...
virtual void addSegment(const IDOMPathSegmentPtr &pathSegment)=0
Append a path segment to the figure. An exception is thrown if this segment is immutable.
virtual FRect getBounds() const =0
Finds the conservative bounding box of the figure.
virtual bool getIsClosed() const =0
Retrieves IsClosed for the path figure. IsClosed specifies whether the path is closed,...
virtual void setStartPoint(const FPoint &sp)=0
Sets the start point for the first segment in the figure. An exception is thrown if this segment is i...
static EDL_API IDOMPathFigurePtr create(IEDLClassFactory *factory, const FPoint &startPoint=FPoint(), bool isClosed=false, bool isFilled=true, const CDOMPathSegmentVect &segments=CDOMPathSegmentVect())
Simplified creator for a path figure.
virtual void setImmutable()=0
Force the segment to be flagged immutable.
virtual void setIsClosed(bool closed)=0
Sets IsClosed for the path figure. IsClosed specifies whether the path is closed. When this is set to...
virtual uint32 getSegmentsCount() const =0
Retrieves the number of path segments in the figure.
static const CClassID & classID()
Retrieves the class id of IDOMPathFigure.
Definition idompathgeometry.h:563
virtual const FPoint & getStartPoint() const =0
Retrieves the start point for the first segment in the figure.
virtual bool getIsImmutable() const =0
Determine if the segment is immutable (non-editable).
virtual const CDOMPathSegmentVect & getSegments() const =0
Retrieves the collection of segments that comprise this path figure.
FMatrix renderTransform
Definition idompathgeometry.h:817
CDOMPathFigureVect figures
Definition idompathgeometry.h:818
Data()
Definition idompathgeometry.h:813
eFillRule fillRule
Definition idompathgeometry.h:816
Interface to a path geometry builder.
Definition idompathgeometry.h:988
virtual void arcTo(const FPoint &radius, double rotation, bool isLargeArc, IDOMArcSegment::eSweepDirection sweepDirection, const FPoint &point, bool absolute=true, bool stroked=true)=0
Append an elliptical arc segment to the current path. Throws an IEDLError exception on failure.
static EDL_API IDOMPathGeometryBuilderPtr create(IEDLClassFactory *factory)
Simplified creation function for IDOMPathGeometryBuilder. Throws an IEDLError exception on failure.
virtual void curveTo(const FPoint &control0, const FPoint &control1, const FPoint &point, bool absolute=true, bool stroked=true)=0
Append a section of a cubic Bézier curve to the current path. Throws an IEDLError exception on failur...
virtual void moveTo(const FPoint &point, bool absolute=true)=0
Move to the given user point. Throws an IEDLError exception on failure.
virtual void quadCurveTo(const FPoint &control, const FPoint &point, bool absolute=true, bool stroked=true)=0
Append a section of a quadratic Bézier curve to the current path. Throws an IEDLError exception on fa...
virtual IDOMPathGeometryPtr createGeometry(IEDLClassFactory *pFactory, IDOMPathGeometry::eFillRule fillRule, bool ignoreDegenerateSubpaths=false, const FMatrix &renderTransform=FMatrix()) const =0
Get the path as geometry, in user units according to the given CTM and fill rule. Throws an IEDLError...
virtual void lineTo(const FPoint &point, bool absolute=true, bool stroked=true)=0
Append a line segment to the current path. Throws an IEDLError exception on failure.
virtual void close(bool stroked=true)=0
Close the subpath, if it is not already. Throws an IEDLError exception on failure.
static const CClassID & classID()
Retrieves class id of IDOMPathGeometryBuilder.
Definition idompathgeometry.h:997
Interface to a path geometry node.
Definition idompathgeometry.h:709
virtual void clearFigures()=0
Removes all the figures from the geometry. An exception is thrown if the figures in this geometry are...
static const CClassID & classID()
Retrieves class id of IDOMPathGeometry.
Definition idompathgeometry.h:800
virtual const FMatrix & getRenderTransform() const =0
Retrieves the render transform matrix for the path.
virtual bool getIsRect(FPoint &startPoint, FPoint &oppositePoint, bool &firstLineIsX, bool &closed)=0
Determines if the geometry is a simple rectangle, and if so, determines the start point,...
virtual uint32 getFiguresCount() const =0
Retrieves the number of figures in the geometry.
virtual bool getIsRect(FRect &rect)=0
Determines if the geometry is a simple rectangle. NB: It does not check to see if the path is closed,...
virtual bool getFiguresImmutable() const =0
Determine if the figures immutable (non-editable).
virtual IDOMShapePtr getShape(IEDLClassFactory *factory, const FMatrix &transform, float resolution)=0
Get the scan-converted shape of this path geometry.
virtual eFillRule getFillRule() const =0
Retrieves the fill rule for the path. The valid values are specified by eFillRule.
virtual void addFigure(const IDOMPathFigurePtr &pathFigure)=0
Appends a figure to the path figure collection. An exception is thrown if the figures in this geometr...
static EDL_API IDOMPathGeometryPtr create(IEDLClassFactory *factory, const FRect &rect, bool close=true, const FMatrix &renderTransform=FMatrix())
Simplified creator for a rectangular path geometry. The geometry will consist of a path beginning at ...
virtual IDOMPathGeometryPtr getMutableGeometry(IEDLClassFactory *factory) const =0
Get a mutable version of the path geometry. Will return this object if the geometry is already mutabl...
static EDL_API IDOMPathGeometryPtr createEllipse(IEDLClassFactory *factory, const FRect &rect, const FMatrix &renderTransform=FMatrix())
Simplified creator for a path consisting of a circle/ellipse touching the given rectangle on all side...
virtual FRect getBounds(bool applyTransform=true) const =0
Finds the conservative bounding box of the geometry.
virtual IDOMPathGeometryPtr getFlattenedGeometry(IEDLClassFactory *pFactory, const FMatrix &transform, float resolution)=0
Get a flattened version of the path; that is, with any curves converted to straight line approximatio...
virtual void setFillRule(eFillRule fr)=0
Sets the fill rule for the path. The valid values are specified by eFillRule.
virtual void setRenderTransform(const FMatrix &matrix)=0
Sets the render transform matrix for the path.
virtual CDOMPathFigureVect getFigures() const =0
Retrieves the list of figures comprising the geometry.
static EDL_API IDOMPathGeometryPtr create(IEDLClassFactory *factory, const EDLSysString &abbreviatedGeometry, const FMatrix &renderTransform=FMatrix())
Simplified creator for a path using XPS abbreviated geometry format.
static EDL_API IDOMPathGeometryPtr createPolygon(IEDLClassFactory *factory, const FRect &rect, uint32 numSides, double rotationAngle=0.0)
Simplified creator for a regular convex polygon path.
static EDL_API IDOMPathGeometryPtr create(IEDLClassFactory *factory, const CDOMPathFigureVect &figures=CDOMPathFigureVect(), const FMatrix &renderTransform=FMatrix(), eFillRule fillRule=eFREvenOdd)
Simplified creator for a path consisting of a series of figures.
virtual IDOMPathGeometryPtr getSimplifiedGeometry(IEDLClassFactory *pFactory, bool simplifyQuads, bool simplifyArcs)=0
Get a simplified version of this path geometry, with certain segment types reduced to simpler (or mor...
@ eFREvenOdd
Use the even/odd fill algorithm.
Definition idompathgeometry.h:734
@ eFRNonZero
Use the non-zero fill algorithm.
Definition idompathgeometry.h:735
Interface to path segment element. The path segment is the smallest unit in a path geometry.
Definition idompathgeometry.h:46
virtual void setImmutable()=0
Force the segment to be flagged immutable.
virtual bool getIsImmutable() const =0
Determine if the segment is immutable (non-editable).
virtual eSegmentType getSegmentType() const =0
Retrieves the type of the path segment.
virtual void setIsStroked(bool isStroked)=0
Sets the value of IsStroked. IsStroked specifies whether the stroke for this segment of the path is d...
virtual FRect getBounds(FPoint &startPoint) const =0
Gets the conservative bounding box of the segment given the start point.
virtual bool getIsStroked() const =0
Retrieves the value for IsStroked. IsStroked specifies whether the stroke for this segment of the pat...
virtual const FPoint & getEndPoint() const =0
Gets the end point of the segment.
@ eArc
Arc segment.
Definition idompathgeometry.h:56
@ eUnknownSegment
Unknown segment.
Definition idompathgeometry.h:55
@ ePolyBezier
Poly Bézier segment.
Definition idompathgeometry.h:58
@ ePolyLine
Polyline segment.
Definition idompathgeometry.h:57
@ ePolyQuadraticBezier
Polyquadratic Bézier segment.
Definition idompathgeometry.h:59
bool immutable
Definition idompathgeometry.h:419
CFPointVect points
Definition idompathgeometry.h:421
bool isStroked
Definition idompathgeometry.h:420
Data()
Definition idompathgeometry.h:417
Interface to a path segment node describing a set of cubic Bézier curves.
Definition idompathgeometry.h:398
static EDL_API IDOMPolyBezierSegmentPtr create(IEDLClassFactory *factory, bool isStroked=true, const CFPointVect &points=CFPointVect())
Simplified creator for a bézier segment.
virtual uint32 getPointsCount() const =0
Retrieves the number of points in the points list. For béziers, the number of points will be a multip...
virtual const CFPointVect & getPoints() const =0
Retrieves the points that make up this segment. For béziers, the number of points will be a multiple ...
virtual void clearPoints()=0
Clears the points list. An exception is thrown if this segment is immutable.
virtual void addPoint(const FPoint &point)=0
Append a point to the list. An exception is thrown if this segment is immutable.
static const CClassID & classID()
Retrieves class id of IDOMPolyBezierSegment.
Definition idompathgeometry.h:405
bool isStroked
Definition idompathgeometry.h:348
Data()
Definition idompathgeometry.h:345
bool immutable
Definition idompathgeometry.h:347
CFPointVect points
Definition idompathgeometry.h:349
Interface to a polyline segment node. A polyline segment describes a polygonal drawing containing an ...
Definition idompathgeometry.h:326
virtual void clearPoints()=0
Clears the points list. An exception is thrown if this segment is immutable.
virtual uint32 getPointsCount() const =0
Retrieves the number of points in the segment.
static const CClassID & classID()
Retrieves class id of IDOMPolyLineSegment.
Definition idompathgeometry.h:333
static EDL_API IDOMPolyLineSegmentPtr create(IEDLClassFactory *factory, bool isStroked=true, const CFPointVect &points=CFPointVect())
Simplified creator for a line segment.
virtual const CFPointVect & getPoints() const =0
Retrieves the points that make up this segment.
virtual void addPoint(const FPoint &point)=0
Appends a point to the list. An exception is thrown if this segment is immutable.
Data()
Definition idompathgeometry.h:491
bool immutable
Definition idompathgeometry.h:493
bool isStroked
Definition idompathgeometry.h:494
CFPointVect points
Definition idompathgeometry.h:495
Interface to a polyquadratic Bézier segment. A polyqualdratic Bézier segment describes a set of quadr...
Definition idompathgeometry.h:472
virtual void clearPoints()=0
Clears the points list. An exception is thrown if this segment is immutable.
virtual uint32 getPointsCount() const =0
Retrieves the number of points in the points list. For quadratic béziers, the number of points will b...
virtual IDOMPolyBezierSegmentPtr convertToCubicBezierSegment(IEDLClassFactory *factory, const FPoint &startPoint) const =0
Create a segment that represents this curve using a cubic bézier.
virtual const CFPointVect & getPoints() const =0
Retrieves the points that make up this segment. For quadratic béziers, the number of points will be a...
static EDL_API IDOMPolyQuadraticBezierSegmentPtr create(IEDLClassFactory *factory, bool isStroked=true, const CFPointVect &points=CFPointVect())
Simplified creator for a quadratic bézier segment.
static const CClassID & classID()
Retrieves the class id of IDOMPolyQuadraticBezierSegment.
Definition idompathgeometry.h:479
virtual void addPoint(const FPoint &point)=0
Append a point to the list. An exception is thrown if this segment is immutable.
EDL Factory Interface allows one part of the EDL infrastructure to register class creation methods id...
Definition iedlfactory.h:31
IEDLObject is an abstract base class that is used by all classes that are intended to be created via ...
Definition iedlobject.h:53
PointTmpl< double > FPoint
Definition edlgeom.h:102
CTransformMatrix< double > FMatrix
Definition edlgeom.h:1208
RectTmpl< double > FRect
Definition edlgeom.h:338
CEDLVector< FPoint > CFPointVect
Definition edlgeom.h:106
EDL C++ namespace(s)
#define _END_EDL_DOM_NAMESPACE
Definition edlnamespaces.h:110
#define _BEGIN_EDL_DOM_NAMESPACE
Definition edlnamespaces.h:109
std::string EDLSysString
Definition edlstring.h:158
EDL "standard" types including known bit-length signed and unsigned integer type[def]s and definition...
unsigned int uint32
Definition edltypes.h:34
#define EDL_API
Definition edltypes.h:86
eSweepDirection
The direction of the sweep-clockwise or counter clockwise-between the start and end points.
Definition idompathgeometry.h:152
eFillRule
Specifies the algorithm to determine whether or not a point is inside a shape on the canvas.
Definition idompathgeometry.h:733
eSegmentType
Path segment type enumeration.
Definition idompathgeometry.h:54
#define IDOMPolyLineSegmentClassID
Definition idompathgeometry.h:327
#define IDOMPolyQuadraticBezierSegmentClassID
Definition idompathgeometry.h:473
#define IDOMPolyBezierSegmentClassID
Definition idompathgeometry.h:399
#define IDOMArcSegmentClassID
Definition idompathgeometry.h:130
#define IDOMPathGeometryClassID
Definition idompathgeometry.h:711
#define IDOMPathGeometryBuilderClassID
Definition idompathgeometry.h:991
CEDLVector< IDOMPathFigurePtr > CDOMPathFigureVect
Definition idompathgeometry.h:685
CEDLVector< IDOMPathSegmentPtr > CDOMPathSegmentVect
Definition idompathgeometry.h:541
#define IDOMPathFigureClassID
Definition idompathgeometry.h:558
#define DECL_SMART_PTR(cls)
Definition smartptr.h:211