### ICap

  The ICap class encapsulates common functionality for frame Caps. Caps will only be created by the pen at points of Co (C - zero discontinuity). Typically these include a Polyline, Polygon etc. A special pen can, however, change this default behavior. The start and end points have caps attached.

### ICap - Member Functions and Data by Group

### Constructors & Destructor

Use the constructors and destructor in this group to create and destroy objects of class ICap.

~ICap

      public:
      ~ICap()

  Destructs an object of class ICap.

Supported Platforms

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

ICap
  Constructs an object of class ICap.

  Overload 1
  Constructs an ICap of the specified type.

      public:
      ICap(ECapType = kFlush)

  ECapType
    The type of the cap. Default is kFlush.

Supported Platforms

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

  Overload 2
  Copy constructor

      public:
      ICap(const ICap&)

  const ICap&
    The cap to be copied.

Supported Platforms

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

### Assignment Operator

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

operator =

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

  Assignment operator.

  source
    The cap to copy from.

Return
  A non-const reference to the left-hand side object.

Supported Platforms

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

### Comparing Two ICap Objects for Equality or Inequality

Use the operators in this group to test two ICap objects for equality or inequality.

operator !=

      public:
      virtual bool operator !=(const ICap&) const

  Tests two ICap for inequality.

  ICap
    A constant reference to the ICap object to be compared with.

Return
  True if the two ICap are different.

Supported Platforms

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

operator ==

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

  Tests two ICap objects for equality.

  ICap
    A constant reference to the ICap to be compared with.

Return
  True if the two ICap objects are the same type.

Supported Platforms

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

### Getting and Setting the Cap Type

Use the functions in this group to identify the cap type or set it.

capType

      public:
      ECapType capType() const

  Returns the type of this cap.

Return
  The type of the cap described in ECapType.

Supported Platforms

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

setCapType

      public:
      void setCapType(ECapType capType)

  Sets the type of this cap.

  capType
    The type of the cap.

Supported Platforms

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

### Streaming the Object In and Out

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

readFromStream

      protected:
      virtual void readFromStream(IDataStream& toWhere)

  Reads the ICap object in from the specified streamt.

  fromWhere
    The stream used to read in the object.

Supported Platforms

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

writeToStream

      protected:
      virtual void writeToStream(IDataStream& toWhere) const

  Writes the 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

### ICap - Enumerations

ECapType

      enum ECapType { kFlush,
                      kRound,
                      kSquare,
                      kUnknownCap }

  The cap type -- an RTTI acceleration for known cap types.

Supported Platforms

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

### ICap - Inherited Member Functions and Data

#### Inherited Public Functions

  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

  IMStreamable

  -     IMStreamable(const IMStreamable& other)

  -     IMStreamable()

  -     virtual void readFromStream(IDataStream& fromwhere) = 0

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

#### Inherited Protected Data

  - None