Mako 7.5.0 API
Loading...
Searching...
No Matches
IDOMArcSegment Class Referenceabstract

Interface to Arc Segment element. More...

#include <idompathgeometry.h>

Inheritance diagram for IDOMArcSegment:

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 FPointgetPoint () 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 FPointgetEndPoint () 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 CClassIDgetClassID () 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 CClassIDclassID ()
 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.
 

Detailed Description

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.

Member Function Documentation

◆ classID()

static const CClassID & IDOMArcSegment::classID ( )
inlinestatic

Retrieves the class id of IDOMArcSegment.

Returns
CClassID. The function returns the class id of the element.

◆ convertToSimpleSegment()

virtual IDOMPathSegmentPtr IDOMArcSegment::convertToSimpleSegment ( IEDLClassFactory * factory,
const FPoint & startPoint ) const
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.
Parameters
factoryPointer to the class factory to be used.
startPointThe start point for the arc.
Returns
IDOMPathSegmentPtr The resulting simple segment.

◆ create()

static EDL_API IDOMArcSegmentPtr IDOMArcSegment::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 )
static

Simplified creator for an arc segment.

Parameters
factoryThe factory to use.
pointThe end point of the arc.
radiusXThe desired x radius of the arc.
radiusYThe desired y radius of the arc.
rotationAngleThe rotation angle.
isLargeArcWhether or not the large arc should be used.
isStrokedShould the segment be stroked, if used in a stroking path.
sweepDirectionWhich direction the arc should sweep.
Returns
IDOMArcSegmentPtr The new segment.

◆ getIsLargeArc()

virtual bool IDOMArcSegment::getIsLargeArc ( ) const
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().
Returns
bool The function returns true if the arc is large.

◆ getPoint()

virtual const FPoint & IDOMArcSegment::getPoint ( ) const
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).
Returns
FPoint The function returns the end point of the arc.

◆ getRadiusX()

virtual double IDOMArcSegment::getRadiusX ( ) const
pure virtual

Retrieves the x-radius of the arc.

Returns
double The function returns the x-radius of the arc.

◆ getRadiusY()

virtual double IDOMArcSegment::getRadiusY ( ) const
pure virtual

Retrieves the y-radius of the base ellipses.

Returns
double The function returns the y-radius of the base ellipses.

◆ getRotationAngle()

virtual double IDOMArcSegment::getRotationAngle ( ) const
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.
Returns
double The function returns the angle of rotation in degrees, where positive values indicate clockwise rotation and negative values indicate counter clockwise rotation.

◆ getSweepDirection()

virtual eSweepDirection IDOMArcSegment::getSweepDirection ( ) const
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.
Returns
eSweepDirection The return value specifies whether the stroke direction is clockwise or counter clockwise from the start point.

◆ setIsLargeArc()

virtual void IDOMArcSegment::setIsLargeArc ( bool isLA)
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.

Parameters
isLANew value for isLargeArc.

◆ setPoint()

virtual void IDOMArcSegment::setPoint ( const FPoint & pt)
pure virtual

Sets the end point of the arc. An exception is thrown if this segment is immutable.

Parameters
ptThe new end point of the arc.

◆ setRadiusX()

virtual void IDOMArcSegment::setRadiusX ( double radiusX)
pure virtual

Sets the x-radius of the base ellipses. An exception is thrown if this segment is immutable.

Parameters
radiusXThe new x-radius of the base ellipses.

◆ setRadiusY()

virtual void IDOMArcSegment::setRadiusY ( double radiusY)
pure virtual

Sets the y-radius of the base ellipses.

Parameters
radiusYThe new y-radius of the base ellipses.

◆ setRotationAngle()

virtual void IDOMArcSegment::setRotationAngle ( double rA)
pure virtual

Sets rotation angle of the arc. An exception is thrown if this segment is immutable.

Parameters
rANew 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.

◆ setSweepDirection()

virtual void IDOMArcSegment::setSweepDirection ( eSweepDirection sd)
pure virtual

Sets sweep direction An exception is thrown if this segment is immutable.

Parameters
sdeSweepDirection The direction in which the arc is drawn from the start point.

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