### IEllipse

  IEllipse provides a wrapper for the IGEllipse geometry class. IGEllipse is a vertically or horizontally oriented ellipse. IEllipse has a IGrafMatrix that is used to concatenate all transformations.

### IEllipse - Member Functions and Data by Group

### Constructors & Destructor

Use the functions in this group to construct and destroy objects of class IEllipse

~IEllipse

      public:
      virtual ~IEllipse()

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

IEllipse

  Overload 1

      public:
      IEllipse( IGEllipse2D* adoptEllipse,
                IGrafBundle* adoptBundle = 0 )

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2
  Default constructor. Constructs an IEllipse which has an empty geometry and empty bounds.

      public:
      IEllipse()

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 3
  Copy constructor. Copies the IGEllipse2D and the matrix. Sets the bounds to empty.

      public:
      IEllipse(const IEllipse&)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Adopting and Releasing the Geometry

Use the functions in this group to take ownership of the polygon geometry or to return it to the caller.

adoptGeometry

      public:
      virtual void adoptGeometry(IGEllipse2D*)

  Takes over the ownership of a geometry after deleting any existing geometries.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

orphanGeometry

      public:
      virtual IGEllipse2D* orphanGeometry()

  Returns the ownership of a geometry to the caller.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Assignment Operator

Use the function in this group to assign the given IEllipse object to the target one.

operator =

      public:
      IEllipse& operator =(const IEllipse& source)

  Assignment operator.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Drawing the Ellipse

Use the function in this group to draw the ellipse to the given graphics port.

draw

      public:
      virtual void draw(IGrafPort&) const

  Draws the IEllipse to the specific IGrafPort.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Obtaining an Alias to Counterpart Geometry

Use the function in this group to obtain an alias for accessing the counterpart geometry.

geometry

      public:
      virtual const IGEllipse2D* geometry()

  Returns an alias for accessing counterpart geometry.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Obtaining Bounding Information

Use the functions in this group to obtain the bounding rectangle of the geometry or to obtain its the device-dependent bounds.

geometricBounds

      public:
      virtual IGRect2D geometricBounds() const

  Gets the bounding rectangle of the geometry, without considering any area added by the bundle.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

intersects

      public:
      virtual bool intersects(const IGRect2D& rect) const

  Tests if this ellipse intersects with the specified rectangle. It also handles any de-generated rectangle which encloses zero area. If this ellipse is not "hitEnabled", the function returns false.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

looseFitBounds

      public:
      virtual IGRect2D looseFitBounds(const IGrafPort* = 0) const

  Returns the device dependent bounds of the graphic. Includes the cap, joints, pen width. This function is dependent on the port in which the graphic is rendered. If the port is not defined, then returns geometric bounds.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Streaming an Object In and Out

Use the functions in this group to read the IPolygon object in from the specified stream or write it out to it.

readFromStream

      protected:
      virtual void readFromStream(IDataStream& toWhere)

  Reads the IEllipse object in from the specified stream.

  toWhere
    The stream to be used to stream in the object.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

writeToStream

      protected:
      virtual void writeToStream(IDataStream& toWhere) const

  Writes the IEllipse object out to the specified stream.

  toWhere
    The stream to which the object is written out.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Testing the IEllipse and IMDrawable Objects for Equality

Use the function in this group to compare the IEllipse object with the IMDrawable one for equality.

operator ==

      public:
      virtual bool operator ==(const IMDrawable&) const

  Tests this IEllipse and IMDrawable for equality, by determining whether the geometries are equal and the bundles are equal.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Transforming the Ellipse

Use the function in this group to change the graphic's shape and position using the transformation matrix.

transformBy

      public:
      virtual void transformBy(const IGrafMatrix&)

  Transforms the graphic's shape and position by applying the specified transformation matrix.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### IEllipse - Inherited Member Functions and Data

#### Inherited Public Functions

  IMDrawable

  -     virtual ~IMDrawable()

  -     bool operator !=(const IMDrawable&) const

  IMGraphic

  -     virtual ~IMGraphic()

  -     virtual void
          adoptAttributeState( IAttributeState* adoptedAttributeState )

  -     virtual void adoptBundle(IGrafBundle* adoptedBundle)

  -     virtual const IAttributeState* attributeState() const

  -     virtual const IGrafBundle* bundle() const

  -     virtual void draw(IGrafPort& port) const = 0

  -     virtual IGRect2D geometricBounds() const = 0

  -     IMGraphic()

  -     virtual IAttributeState* orphanAttributeState()

  -     virtual IGrafBundle* orphanBundle()

  -     virtual void
          rotateBy( GDegrees,
                    const IGPoint2D& centerOfRotation = IGPoint2D::origin ( ) )

  -     virtual void
          scaleBy( const IGPoint2D&,
                   const IGPoint2D& centerOfScale = IGPoint2D::origin ( ) )

  -     virtual void transformBy(const IGrafMatrix&) = 0

  -     virtual void translateBy(const IGPoint2D&)

  IMStreamable

  -     virtual ~IMStreamable()

  -     void externalizeToStream(IDataStream& towhere) const

  -     void internalizeFromStream(IDataStream& fromwhere)

  -     virtual const ITypeRepresentation&
          typeRepresentation() const = 0

#### Inherited Public Data

  - None

#### Inherited Protected Functions

  IMDrawable

  -     IMDrawable()

  -     IMDrawable(const IMDrawable&)

  -     IMDrawable& operator =(const IMDrawable& source)

  IMGraphic

  -     IMGraphic(IGrafBundle* adoptedBundle)

  -     IMGraphic(const IMGraphic&)

  -     IMGraphic& operator =(const IMGraphic& source)

  -     virtual void resetTimeStamp()

  -     void setHit(bool flag)

  -     virtual void setTimeStamp(const unsigned long&)

  -     virtual unsigned long timeStamp() const

  -     virtual void updateTimeStamp()

  IMStreamable

  -     IMStreamable(const IMStreamable& other)

  -     IMStreamable()

  -     virtual void readFromStream(IDataStream& fromwhere) = 0

  -     virtual void writeToStream(IDataStream& towhere) const = 0

#### Inherited Protected Data

  - None