### IGPie2D

  IGPie2D represents a pie-shaped wedge. The wedge always has a counterclockwise arc, following the behavior of sin and cos. However, because the coordinate system in Graphics is by default opposite from the mathematical one, the arcs go clockwise.

### IGPie2D - Member Functions and Data by Group

### Constructors & Destructor

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

~IGPie2D

      public:
      virtual ~IGPie2D()

  Destroys the pie-shaped wedge.

Supported Platforms

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

IGPie2D
  Constructs a pie-shaped wedge object of class IGPie2D.

  Overload 1
  Constructs a pie-shaped wedge representation object using the given ellipse and two angles.

      public:
      IGPie2D( const IGEllipse2D& e,
               GDegrees angle1,
               GDegrees angle2,
               bool EOFill = true )

  Use this constructos to create a pie-shaped wedge representation object using the given ellipse and two angles. This constructor sets the curve to an elliptical arc from angle1 to angle2, and then connects the end points with c1 discontinuity through the center of the ellipse. This is always a counterclockwise arc.

  e
    The ellipse.
  angle1
    The first angle.
  angle2
    The second angle.

Supported Platforms

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

  Overload 2
  Copy constructor.

      public:
      IGPie2D(const IGPie2D&)

  Use the copy constructor to create a pie-shaped wedge object that is copied from the given one.

  IGPie2D
    A constant reference to the pie to be copied.

Supported Platforms

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

  Overload 3
  Default constructor that creates an empty pie-shaped wedge representation object.

      public:
      IGPie2D()

  Use the default constructor to create an empty pie-shaped wedge representation object, that has 0 points, order 0. The only operators allowed on empty pie are assignment and stream in.

Supported Platforms

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

### IGPie2D - Inherited Member Functions and Data

#### Inherited Public Functions

  IBaseCurve

  -     virtual ~IBaseCurve()

  -     void
          approximateArcLengthReparameterizationCurve( IGCurve2D& reparamCurve,
                                                       unsigned long maxPts = 0,
                                                       GCoordinate tolerance = 0.01 )

  -     GParametric
          approximateParameterFromArcLength( GCoordinate length,
                                             GCoordinate tolerance = 1.0e - 5 ) const

  -     void
          concatenate( const IBaseCurve < RPointType,
                       PointType >& p,
                       bool glue = true )

  -     void
          dragPosition( GParametric u,
                        const PointType& toPoint,
                        GParametric segmentMinimum = 0.2,
                        GParametric segmentMaximum = 0.8 )

  -     void
          dragTangent( GParametric u,
                       const PointType& toTangent,
                       GParametric segmentMinimum = 0.2,
                       GParametric segmentMaximum = 0.8 )

  -     PointType evaluate(GParametric u, PointType& tangent) const

  -     PointType evaluate(GParametric u) const

  -     PointType
          evaluate( GParametric u,
                    PointType& tangent,
                    PointType& deriv2 ) const

  -     RPointType evaluateW(GParametric u) const

  -     IBaseCurve( const PointType& p0,
                    const PointType& p1,
                    const PointType& p2 )

  -     IBaseCurve( const IBaseCurve < RPointType,
                    PointType >& curve )

  -     IBaseCurve( const PointType& p0,
                    const PointType& p1,
                    const PointType& p2,
                    const PointType& p3 )

  -     IBaseCurve( unsigned long order,
                    const IRawArray < RPointType >& points )

  -     IBaseCurve( unsigned long order,
                    unsigned long numberPoints,
                    const IRawArray < GParametric >& knots )

  -     IBaseCurve(unsigned long order, unsigned long numberPoints)

  -     IBaseCurve( unsigned long order,
                    const IRawArray < RPointType >& points,
                    const IRawArray < GParametric >& knots )

  -     IBaseCurve()

  -     bool isBezier() const

  -     bool isConsistent()

  -     bool isEmpty() const

  -     bool isPinned() const

  -     GParametric knot(unsigned long i) const

  -     void knots(IRawArray < GParametric >& knots) const

  -     static void
          makeCompatible( IBaseCurve < RPointType,
                          PointType >& curve1,
                          IBaseCurve < RPointType,
                          PointType >& curve2 )

  -     GParametric minParameter() const

  -     GParametric nearestParametric(const PointType& test) const

  -     unsigned long
          nextDiscontinuity( unsigned long startIndex,
                             unsigned long discontinuity = 0 ) const

  -     unsigned long numberOfKnots() const

  -     unsigned long numberOfPoints() const

  -     bool
          operator !=( const IBaseCurve < RPointType,
                       PointType >& ) const

  -     IBaseCurve < RPointType , PointType >&
          operator =( const IBaseCurve < RPointType,
                      PointType >& Crv )

  -     bool
          operator ==( const IBaseCurve < RPointType,
                       PointType >& ) const

  -     unsigned long order() const

  -     RPointType point(unsigned long i) const

  -     void points(IRawArray < RPointType >& pts) const

  -     void refine(const IRawArray < GParametric >& newKnots)

  -     void refineUniform()

  -     void
          sectionOfCurve( GParametric from,
                          GParametric to,
                          IBaseCurve < RPointType,
                          PointType >& section ) const

  -     void setPoint(unsigned long i, const RPointType& p)

  -     void
          setPoints( const IRawArray < RPointType >& controlPoints )

  IGCurve2D

  -     virtual ~IGCurve2D()

  -     void controlPolyline(IGPolyline2D& polyline) const

  -     IGCurve2D(unsigned long order, unsigned long numberPoints)

  -     IGCurve2D( const IGPoint2D& p0,
                   const IGPoint2D& p1,
                   const IGPoint2D& p2,
                   const IGPoint2D& p3 )

  -     IGCurve2D( unsigned long order,
                   const IGRPoint2DArray& points )

  -     IGCurve2D()

  -     IGCurve2D( unsigned long order,
                   const IGRPoint2DArray& points,
                   const IRawArray < GParametric >& knots )

  -     IGCurve2D( const IGEllipse2D& e,
                   GDegrees angle1,
                   GDegrees angle2 )

  -     IGCurve2D( const IGPoint2D& p0,
                   const IGPoint2D& p1,
                   const IGPoint2D& p2 )

  -     IGCurve2D( unsigned long order,
                   unsigned long numberPoints,
                   const IRawArray < GParametric >& knots )

  -     IGCurve2D(const IGCurve2D& curve)

  -     IGCurve2D(const IGPolyline2D& polyline)

  -     IGCurve2D(const IGLine2D& line)

  -     static void
          makeCompatible( IGCurve2D& curve1,
                          IGCurve2D& curve2 )

  -     void moveKnot(unsigned long index, GParametric u)

  -     IGCurve2D& operator =(const IGCurve2D& Src)

  -     void setKnots(const IRawArray < GParametric >& knots)

  -     void setKnotScheme(EndConditions theType = kPinned)

  -     void setOrder(unsigned long order)

  -     void setPoint(unsigned long i, const IGRPoint2D& p)

  -     void
          setPoints( const IRawArray < IGRPoint2D >& controlPoints )

  -     void transformBy(const IGrafMatrix& mat)

  IGLoop2D

  -     virtual ~IGLoop2D()

  -     void
          approximateLowerOrder( unsigned long newOrder,
                                 GCoordinate tolerance = 0.2 )

  -     GParametric
          approximateParameterFromArcLength( GCoordinate length,
                                             GCoordinate tolerance = 0.02 ) const

  -     GCoordinate arcLength() const

  -     GCoordinate
          arcLength( GParametric uFrom,
                     GParametric uTo ) const

  -     virtual IGRect2D bounds() const

  -     void closeLoop()

  -     bool contains(const IGPoint2D& p) const

  -     void
          dragPosition( GParametric u,
                        const IGPoint2D& toPoint,
                        GParametric segmentMinimum = 0.2,
                        GParametric segmentMaximum = 0.8 )

  -     void
          dragTangent( GParametric u,
                       const IGPoint2D& toTangent,
                       GParametric segmentMinimum = 0.2,
                       GParametric segmentMaximum = 0.8 )

  -     bool eOFill() const

  -     IGPoint2D
          evaluate( GParametric u,
                    IGPoint2D& tangent,
                    IGPoint2D& deriv2,
                    GCoordinate& curvature ) const

  -     IGPoint2D evaluate(GParametric u) const

  -     IGPoint2D
          evaluate( GParametric u,
                    IGPoint2D& tangent,
                    IGPoint2D& deriv2 ) const

  -     IGPoint2D evaluate(GParametric u, IGPoint2D& tangent) const

  -     IGRPoint2D evaluateW(GParametric u) const

  -     IGLoop2D( unsigned long order,
                  unsigned long numberPoints,
                  bool EOFill = true )

  -     IGLoop2D( unsigned long order,
                  unsigned long numberPoints,
                  const IRawArray < GParametric >& knots,
                  bool EOFill = true )

  -     IGLoop2D( const IGRect2D& roundRect,
                  const IGPoint2D& aspect )

  -     IGLoop2D()

  -     IGLoop2D(const IGPolygon2D& polygon)

  -     IGLoop2D(const IGLoop2D&)

  -     IGLoop2D( unsigned long order,
                  const IGRPoint2DArray& points,
                  bool EOFill = true )

  -     IGLoop2D(const IGRect2D& rect)

  -     IGLoop2D(const IGEllipse2D& ellipse)

  -     IGLoop2D( unsigned long order,
                  const IGRPoint2DArray& points,
                  const IRawArray < GParametric >& knots,
                  bool EOFill = true )

  -     IGLoop2D(const IGCurve2D&, bool EOFill = true)

  -     void insertKnot(GParametric u)

  -     bool intersects(const IGRect2D& g) const

  -     static void
          makeCompatible( IGLoop2D& curve1,
                          IGLoop2D& curve2 )

  -     void makeDiscontinuity(GParametric u, EDiscontinuity cont)

  -     GParametric maxParameter() const

  -     GParametric nearestParametric(const IGPoint2D& test) const

  -     bool operator !=(const IGLoop2D& Src) const

  -     IDataStream& operator <<=(IDataStream&)

  -     IGLoop2D& operator =(const IGLoop2D& Src)

  -     bool operator ==(const IGLoop2D& Src) const

  -     IDataStream& operator >>=(IDataStream&) const

  -     void raiseOrder(unsigned long newOrder)

  -     void readFromStream(IDataStream& toWhere)

  -     void refineToBeziers()

  -     void refineToPinned()

  -     void reverseDirection()

  -     void
          sectionOfCurve( GParametric from,
                          GParametric to,
                          IGCurve2D& section ) const

  -     void setEOFill(bool EOFill)

  -     void writeToStream(IDataStream& toWhere) const

#### Inherited Public Data

  - None

#### Inherited Protected Functions

  IBaseCurve

  -     PointType
          evaluate( GParametric u,
                    unsigned long delta ) const

  -     void incrementOrder()

  -     void
          prAppendCurve( IBaseCurve < RPointType,
                         PointType >& crv,
                         bool glue )

  -     static void
          reduceOneDegree( IRawArray < RPointType >& pts,
                           unsigned long order,
                           unsigned long numPts,
                           GCoordinate tolerance,
                           long* discons,
                           unsigned long numDiscons,
                           unsigned long* newPts )

  IGCurve2D

  -     void
          prAppendCurve( IBaseCurve < IGRPoint2D,
                         IGPoint2D >& crv,
                         bool glue )

#### Inherited Protected Data

  - None