Interface to Arc Segment element. More...
#include <idompathgeometry.h>
Classes | |
class | Data |
Initialization data. More... | |
Public Types | |
enum | eSweepDirection |
The direction of the sweep-clockwise or counter clockwise-between the start and end points. More... | |
Public Member Functions | |
virtual const FPoint & | getPoint () const =0 |
Retrieves the end point of the arc. | |
virtual void | setPoint (const FPoint &pt)=0 |
Sets the end point of the arc. An exception is thrown if this segment is immutable. | |
virtual double | getRadiusX () const =0 |
Retrieves the x-radius of the arc. | |
virtual void | setRadiusX (double radiusX)=0 |
Sets the x-radius of the base ellipses. An exception is thrown if this segment is immutable. | |
virtual double | getRadiusY () const =0 |
Retrieves the y-radius of the base ellipses. | |
virtual void | setRadiusY (double radiusY)=0 |
Sets the y-radius of the base ellipses. | |
virtual double | getRotationAngle () const =0 |
Retrieves the rotation angle of the base ellipses. | |
virtual void | setRotationAngle (double rA)=0 |
Sets rotation angle of the arc. An exception is thrown if this segment is immutable. | |
virtual bool | getIsLargeArc () const =0 |
Retrieves isLargeArc. | |
virtual void | setIsLargeArc (bool isLA)=0 |
Sets isLargeArc. See getIsLargeArc() for a description of how isLargeArc determines the arc to be drawn. An exception is thrown if this segment is immutable. | |
virtual eSweepDirection | getSweepDirection () const =0 |
Retrieves the sweep direction. | |
virtual void | setSweepDirection (eSweepDirection sd)=0 |
Sets sweep direction An exception is thrown if this segment is immutable. | |
virtual IDOMPathSegmentPtr | convertToSimpleSegment (IEDLClassFactory *factory, const FPoint &startPoint) const =0 |
Create a segment that represents this arc using a simpler segment type. | |
Public Member Functions inherited from IDOMPathSegment | |
virtual bool | getIsStroked () const =0 |
Retrieves the value for IsStroked. IsStroked specifies whether the stroke for this segment of the path is drawn. Can be true or false. | |
virtual void | setIsStroked (bool isStroked)=0 |
Sets the value of IsStroked. IsStroked specifies whether the stroke for this segment of the path is drawn. Can be true or false. An exception is thrown if this segment is immutable. | |
virtual FRect | getBounds (FPoint &startPoint) const =0 |
Gets the conservative bounding box of the segment given the start point. | |
virtual const FPoint & | getEndPoint () const =0 |
Gets the end point of the segment. | |
virtual bool | getIsImmutable () const =0 |
Determine if the segment is immutable (non-editable). | |
virtual void | setImmutable ()=0 |
Force the segment to be flagged immutable. | |
Public Member Functions inherited from IEDLObject | |
virtual const CClassID & | getClassID () const =0 |
Returns class ID of IEDLObject. | |
virtual bool | init (CClassParams *pData) |
The init() method is called to perform any post-construction initialization of an IEDLObject that has been created by the EDL class factory, before it is actually returned by the factory. | |
virtual bool | clone (IEDLObjectPtr &ptrObject, IEDLClassFactory *pFactory) |
Create a copy of EDLObject. | |
Public Member Functions inherited from IRCObject | |
virtual void | addRef () const =0 |
Increases the reference count of the actual object pointed to. This would take place during an assignment or copying. | |
virtual bool | decRef () const =0 |
Decreases the reference count of the actual object pointed to. When the reference count falls to Zero, it deletes the actual object pointed to. | |
virtual int32 | getRefCount () const =0 |
Retrieve the current reference count of the actual object pointed to. | |
Public Member Functions inherited from IDOMHashable | |
virtual | ~IDOMHashable () |
Virtual destructor. | |
virtual bool | hash (uint64 &hash)=0 |
Retrieve a hash for this object. | |
virtual uint64 | hashE () |
As hash(), but throws an exception if the operation fails. | |
Static Public Member Functions | |
static const CClassID & | classID () |
Retrieves the class id of IDOMArcSegment. | |
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. | |
Additional Inherited Members | |
Protected Member Functions inherited from IRCObject | |
virtual | ~IRCObject () |
Virtual destructor. | |
Interface to Arc Segment element.
An ArcSegment describes an elliptical arc. An arc segment is defined by the intersection of two identical ellipses. The ellipses are defined by their x-radius and y-radius, and their angle of rotation relative to the current coordinate system. The intersection between the ellipses is defined by the start and end points of the arc. The correct line segment of the four specified by the intersection of two ellipses is determined by a combination of sweepDirection and isLargeArc. Note: The starting point for the arc is defined by the end point of the previous path segment in the path figure (see IDOMPathFigure), or by the starting point defined in the path figure if this is the first path segment in the figure. Note: It is possible to specify an ellipse that is incapable of intersecting simultaneously with the start and end points of the desired arc. An example of this would be an ellipse with a total height that is less than the vertical distance between the two points. In this case, no intersection is possible and no arc will be generated.
|
inlinestatic |
Retrieves the class id of IDOMArcSegment.
|
pure virtual |
Create a segment that represents this arc using a simpler segment type.
This member will convert this arc path segment to a simpler segment type. If the arc segment is degenerate, the result will be a single IDOMPolyLineSegment representing this. Otherwise, the arc segment will be decomposed to cubic beziers in an IDOMPolyBezierSegment.
factory | Pointer to the class factory to be used. |
startPoint | The start point for the arc. |
|
static |
Simplified creator for an arc segment.
factory | The factory to use. |
point | The end point of the arc. |
radiusX | The desired x radius of the arc. |
radiusY | The desired y radius of the arc. |
rotationAngle | The rotation angle. |
isLargeArc | Whether or not the large arc should be used. |
isStroked | Should the segment be stroked, if used in a stroking path. |
sweepDirection | Which direction the arc should sweep. |
|
pure virtual |
Retrieves isLargeArc.
The member isLargeArc determines whether the specified arc is one of the large arcs (sweep 180 degrees or greater) or one of the small arcs (sweep less than 180 degrees) produced by the intersection of the two ellipses. In conjunction with the sweep direction, this determines which of the four arcs produced by intersecting ellipses is required. See also getSweepDirection().
|
pure virtual |
Retrieves the end point of the arc.
Note: the start point of the arc is specified by the end point of the previous path segment in the path figure or by the start point specified in the path figure if this is the first path segment in the figure (see IDOMPathFigure).
|
pure virtual |
Retrieves the x-radius of the arc.
|
pure virtual |
Retrieves the y-radius of the base ellipses.
|
pure virtual |
Retrieves the rotation angle of the base ellipses.
The rotation angle indicates how the ellipses are rotated relative to the current coordinate system. Positive values indicate clockwise rotation and negative values indicate counter clockwise rotation.
|
pure virtual |
Retrieves the sweep direction.
SweepDirection specifies the direction in which the arc is drawn from the start point. At the start point, all four line segments converge. Two of these will be short arcs and two will be long arcs. One long arc and one short arc will move away from the start point following a clockwise path; the other two arcs will follow a counter clockwise path. In conjunction with isLargeArc, the sweep direction determines which of the four line segments is the specified arc.
|
pure virtual |
Sets isLargeArc. See getIsLargeArc() for a description of how isLargeArc determines the arc to be drawn. An exception is thrown if this segment is immutable.
isLA | New value for isLargeArc. |
|
pure virtual |
Sets the end point of the arc. An exception is thrown if this segment is immutable.
pt | The new end point of the arc. |
|
pure virtual |
Sets the x-radius of the base ellipses. An exception is thrown if this segment is immutable.
radiusX | The new x-radius of the base ellipses. |
|
pure virtual |
Sets the y-radius of the base ellipses.
radiusY | The new y-radius of the base ellipses. |
|
pure virtual |
Sets rotation angle of the arc. An exception is thrown if this segment is immutable.
rA | New rotation angle. Positive values indicate clockwise rotation and negative values indicate counter clockwise rotation. The rotated ellipses must still be capable of intersecting with the specified start and end points, as before. |
|
pure virtual |
Sets sweep direction An exception is thrown if this segment is immutable.
sd | eSweepDirection The direction in which the arc is drawn from the start point. |