Mako 9.0.0 API
MakoCore SDK API Documentation
Loading...
Searching...
No Matches
idompathgeometry.h
Go to the documentation of this file.
1/*
2 * idompathgeometry.h
3 *
4 * Copyright (C) 2007-2026 Hybrid Software Helix Ltd. All rights reserved.
5 */
6
7#ifndef EDLIDOMPATHGEOMETRY_H
8#define EDLIDOMPATHGEOMETRY_H
9
10#include <edl/edltypes.h>
11#include <edl/edlfwd.h>
12#include <edl/edlgeom.h>
13#include <edl/iedlobject.h>
14#include <edl/edlnamespaces.h>
15#include <edl/idomshape.h>
16#include <edl/idomhashable.h>
18
19class IDOMPathSegment;
21class IDOMArcSegment;
29class IDOMPathFigure;
31
48{
49 public:
63
68 virtual eSegmentType getSegmentType() const = 0;
69
76 virtual bool getIsStroked() const = 0;
84 virtual void setIsStroked(bool isStroked) = 0;
90 virtual FRect getBounds(FPoint &startPoint) const= 0;
95 virtual const FPoint &getEndPoint() const = 0;
100 virtual bool getIsImmutable() const = 0;
104 virtual void setImmutable() = 0;
105};
106#define edlobj2IDOMPathSegment(src) edl_cast((IDOMPathSegment *) nullptr, src)
107
130{
131 public:
132#define IDOMArcSegmentClassID 0xFC8F943E, 0x23E94b1a, 0x8A078F67, 0x63F188CA
137 static const CClassID &classID()
138 {
140 return id;
141 }
142
158
162 class Data : public CClassParams
163 {
164 public:
165 Data(): isStroked(true), immutable(false),
166 isLargeArc (false),
167 radiusX (0.0),
168 radiusY (0.0),
169 rotationAngle (0.0),
171 {}
172 bool immutable; // True if editing should not be allowed for this segment.
174 double radiusX;
175 double radiusY;
180 };
181
194 static EDL_API IDOMArcSegmentPtr create(IEDLClassFactory *factory,
195 bool isStroked = false,
196 const FPoint &point = FPoint(),
197 double radiusX = 0.0, double radiusY = 0.0, double rotationAngle = 0.0,
198 bool isLargeArc = false,
199 eSweepDirection sweepDirection = eSDClockwise);
200
209 virtual const FPoint &getPoint() const = 0;
210
216 virtual void setPoint(const FPoint &pt) = 0;
217
222 virtual double getRadiusX() const = 0;
223
229 virtual void setRadiusX(double radiusX) = 0;
230
235
236 virtual double getRadiusY() const = 0;
241
242 virtual void setRadiusY(double radiusY) = 0;
253
254 virtual double getRotationAngle() const = 0;
263 virtual void setRotationAngle(double rA) = 0;
264
275 virtual bool getIsLargeArc() const = 0;
276
283 virtual void setIsLargeArc(bool isLA) = 0;
284
298
304 virtual void setSweepDirection(eSweepDirection sd) = 0;
316 virtual IDOMPathSegmentPtr convertToSimpleSegment(IEDLClassFactory *factory, const FPoint &startPoint) const = 0;
317};
318#define edlobj2IDOMArcSegment(src) edl_cast((IDOMArcSegment *) nullptr, src)
319
328{
329#define IDOMPolyLineSegmentClassID 0x858ed3ce, 0xc14b4bdf, 0x8f1fb58b, 0xa046afd2
330 public:
335 static const CClassID &classID()
336 {
338 return id;
339 };
340
344 class Data : public CClassParams
345 {
346 public:
347 Data(): isStroked(true), immutable(false)
348 {}
349 bool immutable; // True if editing should not be allowed for this segment.
352 };
353
360 static EDL_API IDOMPolyLineSegmentPtr create(IEDLClassFactory *factory,
361 bool isStroked = true,
362 const CFPointVect &points = CFPointVect());
363
368 virtual const CFPointVect &getPoints() const = 0;
373 virtual uint32 getPointsCount() const = 0;
378 virtual void clearPoints() = 0;
384 virtual void addPoint(const FPoint &point) = 0;
385};
386#define edlobj2IDOMPolyLineSegment(src) edl_cast((IDOMPolyLineSegment *) nullptr, src)
387
400{
401#define IDOMPolyBezierSegmentClassID 0xb2c0876c, 0x5f1b4e0a, 0xb6f0babb, 0x23061b1e
402 public:
407 static const CClassID &classID()
408 {
410 return id;
411 };
412
416 class Data : public CClassParams
417 {
418 public:
419 Data(): isStroked(true), immutable(false)
420 {}
421 bool immutable; // True if editing should not be allowed for this segment.
424 };
425
433 static EDL_API IDOMPolyBezierSegmentPtr create(IEDLClassFactory *factory,
434 bool isStroked = true,
435 const CFPointVect &points = CFPointVect());
436
442 virtual const CFPointVect &getPoints() const = 0;
448 virtual uint32 getPointsCount() const = 0;
453 virtual void clearPoints() = 0;
459 virtual void addPoint(const FPoint &point) = 0;
460};
461#define edlobj2IDOMPolyBezierSegment(src) edl_cast((IDOMPolyBezierSegment *) nullptr, src)
462
474{
475#define IDOMPolyQuadraticBezierSegmentClassID 0x8c8ae8b7, 0x7ad64100, 0x8e55774e, 0x7e06ba34
476 public:
481 static const CClassID &classID()
482 {
484 return id;
485 };
486
490 class Data : public CClassParams
491 {
492 public:
493 Data(): isStroked(true), immutable(false)
494 {}
495 bool immutable; // True if editing should not be allowed for this segment.
498 };
499
507 static EDL_API IDOMPolyQuadraticBezierSegmentPtr create(IEDLClassFactory *factory,
508 bool isStroked = true,
509 const CFPointVect &points = CFPointVect());
515 virtual const CFPointVect &getPoints() const = 0;
521 virtual uint32 getPointsCount() const = 0;
526 virtual void clearPoints() = 0;
532 virtual void addPoint(const FPoint &point) = 0;
539 virtual IDOMPolyBezierSegmentPtr convertToCubicBezierSegment(IEDLClassFactory *factory, const FPoint &startPoint) const = 0;
540};
541#define edlobj2IDOMPolyQuadraticBezierSegment(src) edl_cast((IDOMPolyQuadraticBezierSegment *) nullptr, src)
542
544
558{
559 public:
560#define IDOMPathFigureClassID 0x69B82E30, 0xA5D24512, 0xB44599CE, 0x21AF0BFC
565 static const CClassID &classID()
566 {
568 return id;
569 }
570
574 class Data : public CClassParams
575 {
576 public:
577 Data(): isFilled(true), isClosed(false), immutable(false)
578 {}
579 bool immutable; // True if editing should not be allowed for this segment.
584 };
585
595 static EDL_API IDOMPathFigurePtr create(IEDLClassFactory *factory,
596 const FPoint &startPoint = FPoint(),
597 bool isClosed = false,
598 bool isFilled = true,
599 const CDOMPathSegmentVect &segments = CDOMPathSegmentVect());
600
612 virtual bool getIsClosed() const = 0;
622 virtual void setIsClosed(bool closed) = 0;
627 virtual const FPoint &getStartPoint() const = 0;
633 virtual void setStartPoint(const FPoint &sp) = 0;
640 virtual bool getIsFilled() const = 0;
648 virtual void setIsFilled(bool filled) = 0;
653 virtual const CDOMPathSegmentVect &getSegments() const = 0;
658 virtual uint32 getSegmentsCount() const = 0;
663 virtual void clearSegments() = 0;
669 virtual void addSegment(const IDOMPathSegmentPtr &pathSegment) = 0;
674 virtual FRect getBounds() const = 0;
675
676#ifdef SWIG
677 %apply bool &OUTPUT { bool &firstLineIsX };
678 %apply bool &OUTPUT { bool &closed };
679#endif
692 virtual bool getIsRect(FPoint &startPoint, FPoint &oppositePoint, bool &firstLineIsX, bool &closed) = 0;
693#ifdef SWIG
694 %clear bool &firstLineIsX;
695 %clear bool &closed;
696#endif
697
702 virtual bool getIsImmutable() const = 0;
706 virtual void setImmutable() = 0;
707};
708#define edlobj2IDOMPathFigure(src) edl_cast((IDOMPathFigure *) nullptr, src)
709
711
712class IDOMPathGeometry;
714
734{
735 public:
736#define IDOMPathGeometryClassID 0xCC10E2AC, 0x4F8946d6, 0xA99ACB94, 0xC0379682
737
757 typedef enum
758 {
761 } eFillRule;
762
773 static EDL_API IDOMPathGeometryPtr create(IEDLClassFactory *factory, const FRect &rect, bool close = true,
774 const FMatrix &renderTransform = FMatrix());
775
783 static EDL_API IDOMPathGeometryPtr create(IEDLClassFactory *factory, const EDLSysString &abbreviatedGeometry,
784 const FMatrix &renderTransform = FMatrix());
785
794 static EDL_API IDOMPathGeometryPtr create(IEDLClassFactory *factory, const CDOMPathFigureVect &figures = CDOMPathFigureVect(),
795 const FMatrix &renderTransform = FMatrix(), eFillRule fillRule = eFREvenOdd);
796
806 static EDL_API IDOMPathGeometryPtr createEllipse(IEDLClassFactory *factory, const FRect &rect,
807 const FMatrix &renderTransform = FMatrix());
808
809
818 static EDL_API IDOMPathGeometryPtr createPolygon(IEDLClassFactory *factory, const FRect &rect, uint32 numSides, double rotationAngle = 0.0);
819
820
825 static const CClassID &classID()
826 {
828 return id;
829 }
830
845
855 virtual eFillRule getFillRule() const = 0;
865 virtual void setFillRule(eFillRule fr) = 0;
870 virtual const FMatrix &getRenderTransform() const = 0;
875 virtual void setRenderTransform(const FMatrix &matrix) = 0;
880 virtual CDOMPathFigureVect getFigures() const = 0;
885 virtual uint32 getFiguresCount() const = 0;
890 virtual void clearFigures() = 0;
896 virtual void addFigure(const IDOMPathFigurePtr &pathFigure) = 0;
901 virtual bool getFiguresImmutable() const = 0;
902
911 virtual IDOMPathGeometryPtr getMutableGeometry(IEDLClassFactory *factory) const = 0;
912
923 virtual FRect getBounds(bool applyTransform = true) const = 0;
924
934 virtual bool getIsRect(FRect &rect) = 0;
935
936#ifdef SWIG
937 %apply bool &OUTPUT { bool &firstLineIsX };
938 %apply bool &OUTPUT { bool &closed };
939#endif
958 virtual bool getIsRect(FPoint &startPoint,
959 FPoint &oppositePoint,
960 bool &firstLineIsX,
961 bool &closed) = 0;
962#ifdef SWIG
963 %clear bool &firstLineIsX;
964 %clear bool &closed;
965#endif
966
974 virtual IDOMShapePtr getShape(IEDLClassFactory *factory, const FMatrix &transform, float resolution) = 0;
975
987 virtual IDOMPathGeometryPtr getSimplifiedGeometry(IEDLClassFactory *pFactory, bool simplifyQuads, bool simplifyArcs) = 0;
988
1003 virtual IDOMPathGeometryPtr getFlattenedGeometry(IEDLClassFactory *pFactory, const FMatrix &transform, float resolution) = 0;
1004};
1005#define edlobj2IDOMPathGeometry(src) edl_cast((IDOMPathGeometry *) nullptr, src)
1006
1009
1021{
1022 public:
1023
1024#define IDOMPathGeometryBuilderClassID 0x4E87AB69, 0x634E44A5, 0x93DB169C, 0xC7C2643B
1025
1030 static const CClassID &classID()
1031 {
1033 return id;
1034 }
1035
1043 static EDL_API IDOMPathGeometryBuilderPtr create(IEDLClassFactory *factory);
1044
1053 virtual void moveTo(const FPoint &point, bool absolute = true) = 0;
1054
1065 virtual void lineTo(const FPoint &point, bool absolute = true, bool stroked = true) = 0;
1066
1079 virtual void curveTo(const FPoint &control0, const FPoint &control1, const FPoint &point,
1080 bool absolute = true, bool stroked = true) = 0;
1081
1093 virtual void quadCurveTo(const FPoint &control, const FPoint &point, bool absolute = true, bool stroked = true) = 0;
1094
1109 virtual void arcTo(const FPoint &radius, double rotation, bool isLargeArc, IDOMArcSegment::eSweepDirection sweepDirection,
1110 const FPoint &point, bool absolute = true, bool stroked = true) = 0;
1111
1119 virtual void close(bool stroked = true) = 0;
1120
1131 virtual IDOMPathGeometryPtr createGeometry(IEDLClassFactory *pFactory, IDOMPathGeometry::eFillRule fillRule, bool ignoreDegenerateSubpaths = false,
1132 const FMatrix &renderTransform = FMatrix()) const = 0;
1133};
1134#define edlobj2IDOMPathGeometryBuilder(obj) IDOMPathGeometryBuilderPtr(dynamic_cast<IDOMPathGeometryBuilder *>((IRCObject *) obj), true)
1135
1137
1138#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:176
bool isStroked
Definition idompathgeometry.h:178
FPoint point
Definition idompathgeometry.h:173
bool immutable
Definition idompathgeometry.h:172
double radiusY
Definition idompathgeometry.h:175
double radiusX
Definition idompathgeometry.h:174
Data()
Definition idompathgeometry.h:165
eSweepDirection sweepDirection
Definition idompathgeometry.h:179
bool isLargeArc
Definition idompathgeometry.h:177
Interface to Arc Segment element.
Definition idompathgeometry.h:130
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:137
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:155
@ eSDCounterclockwise
Definition idompathgeometry.h:156
Abstract interface for objects that can be hashed.
Definition idomhashable.h:28
bool isFilled
Definition idompathgeometry.h:582
CDOMPathSegmentVect segments
Definition idompathgeometry.h:583
bool immutable
Definition idompathgeometry.h:579
FPoint startPoint
Definition idompathgeometry.h:580
bool isClosed
Definition idompathgeometry.h:581
Data()
Definition idompathgeometry.h:577
Interface to the path figure element. A path figure is a single shape comprised of continuous path se...
Definition idompathgeometry.h:558
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 getIsRect(FPoint &startPoint, FPoint &oppositePoint, bool &firstLineIsX, bool &closed)=0
Determines if the figure is a simple rectangle.
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:565
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:842
CDOMPathFigureVect figures
Definition idompathgeometry.h:843
Data()
Definition idompathgeometry.h:838
eFillRule fillRule
Definition idompathgeometry.h:841
Interface to a path geometry builder.
Definition idompathgeometry.h:1021
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:1030
Interface to a path geometry node.
Definition idompathgeometry.h:734
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:825
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:759
@ eFRNonZero
Use the non-zero fill algorithm.
Definition idompathgeometry.h:760
Interface to path segment element. The path segment is the smallest unit in a path geometry.
Definition idompathgeometry.h:48
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:58
@ eUnknownSegment
Unknown segment.
Definition idompathgeometry.h:57
@ ePolyBezier
Poly Bézier segment.
Definition idompathgeometry.h:60
@ ePolyLine
Polyline segment.
Definition idompathgeometry.h:59
@ ePolyQuadraticBezier
Polyquadratic Bézier segment.
Definition idompathgeometry.h:61
bool immutable
Definition idompathgeometry.h:421
CFPointVect points
Definition idompathgeometry.h:423
bool isStroked
Definition idompathgeometry.h:422
Data()
Definition idompathgeometry.h:419
Interface to a path segment node describing a set of cubic Bézier curves.
Definition idompathgeometry.h:400
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:407
bool isStroked
Definition idompathgeometry.h:350
Data()
Definition idompathgeometry.h:347
bool immutable
Definition idompathgeometry.h:349
CFPointVect points
Definition idompathgeometry.h:351
Interface to a polyline segment node. A polyline segment describes a polygonal drawing containing an ...
Definition idompathgeometry.h:328
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:335
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:493
bool immutable
Definition idompathgeometry.h:495
bool isStroked
Definition idompathgeometry.h:496
CFPointVect points
Definition idompathgeometry.h:497
Interface to a polyquadratic Bézier segment. A polyqualdratic Bézier segment describes a set of quadr...
Definition idompathgeometry.h:474
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:481
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:111
CTransformMatrix< double > FMatrix
Definition edlgeom.h:1294
RectTmpl< double > FRect
Definition edlgeom.h:347
CEDLVector< FPoint > CFPointVect
Definition edlgeom.h:115
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:154
eFillRule
Specifies the algorithm to determine whether or not a point is inside a shape on the canvas.
Definition idompathgeometry.h:758
eSegmentType
Path segment type enumeration.
Definition idompathgeometry.h:56
#define IDOMPolyLineSegmentClassID
Definition idompathgeometry.h:329
#define IDOMPolyQuadraticBezierSegmentClassID
Definition idompathgeometry.h:475
#define IDOMPolyBezierSegmentClassID
Definition idompathgeometry.h:401
#define IDOMArcSegmentClassID
Definition idompathgeometry.h:132
#define IDOMPathGeometryClassID
Definition idompathgeometry.h:736
#define IDOMPathGeometryBuilderClassID
Definition idompathgeometry.h:1024
CEDLVector< IDOMPathFigurePtr > CDOMPathFigureVect
Definition idompathgeometry.h:710
CEDLVector< IDOMPathSegmentPtr > CDOMPathSegmentVect
Definition idompathgeometry.h:543
#define IDOMPathFigureClassID
Definition idompathgeometry.h:560
#define DECL_SMART_PTR(cls)
Definition smartptr.h:211