igeo

## Class IArcGeo

- java.lang.Object
- - igeo.IParameterObject
  - - igeo.INurbsGeo
    - - igeo.ICurveGeo
      - - igeo.IArcGeo

- All Implemented Interfaces:
    ICurveI, ICurveOp, IEntityParameter, IParameter, ISubobject, ITransformable, IVal

      public class IArcGeo
      extends ICurveGeo

  Geometry class of an arc. Implemented as a type of NURBS curve.
  Author:
    Satoru Sugihara

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `IDoubleI` | `angle`
    `IVecI` | `center`
    `static double` | `maxSegmentAngle`
    `IVecI` | `normal`
    `IVecI` | `startPt`

    - ### Fields inherited from class igeo.ICurveGeo

      `basisFunction, controlPoints, defaultWeights, degree, derivativeFunction, knots, uend, uSearchCache, ustart`

    - ### Fields inherited from class igeo.IParameterObject

      `parent`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IArcGeo()`
    `IArcGeo(IVecI arcStartPt, IVecI arcMidPt, IVecI arcEndPt)`
    `IArcGeo(IVecI center, IVecI startPt, IVecI endPt, boolean flipArcSide)`
    `IArcGeo(IVecI center, IVecI normal, IVecI startPt, double angle)`
    `IArcGeo(IVecI sharedLinePt, IVecI line1Pt, IVecI line2Pt, double radius, boolean flipArcSide)`
    `IArcGeo(IVecI center, IVecI startPt, IVecI endPt, IBoolI flipArcSide)`
    `IArcGeo(IVecI center, IVecI normal, IVecI startPt, IDoubleI angle)`
    `IArcGeo(IVecI sharedLinePt, IVecI line1Pt, IVecI line2Pt, IDoubleI radius, IBoolI flipArcSide)`
    `IArcGeo(IVecI line1Pt1, IVecI line1Pt2, IVecI line2Pt1, IVecI line2Pt2, double radius, boolean flipArcSide)`
    `IArcGeo(IVecI line1Pt1, IVecI line1Pt2, IVecI line2Pt1, IVecI line2Pt2, IDoubleI radius, IBoolI flipArcSide)`
    `IArcGeo(IVecI center, IVecI startPt, IVecI midPt, IVecI endPt, IVecI normal)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static IVec4[]` | `arcCP(IVec center, IVec startPt, IVec endPt, boolean flipArcSide)`
    `static IVec4[]` | `arcCP(IVec center, IVec normal, IVec startPt, double angle)`
    `static IVec4[]` | `arcCP(IVec center, IVec startPt, IVec midPt, IVec endPt, IVec normal)`
    `static int` | `arcDeg()`
    `static double[]` | `arcKnots(double angle)`
    `void` | `init(IVecI center, IVecI startPt, IVecI endPt, boolean flipArcSide)`
    `void` | `init(IVecI center, IVecI normal, IVecI startPt, double angle)`
    `void` | `init(IVecI sharedLinePt, IVecI line1Pt, IVecI line2Pt, double radius, boolean flipArcSide)`
    `void` | `init(IVecI center, IVecI startPt, IVecI endPt, IBoolI flipArcSide)`
    `void` | `init(IVecI center, IVecI normal, IVecI startPt, IDoubleI angle)`
    `void` | `init(IVecI sharedLinePt, IVecI line1Pt, IVecI line2Pt, IDoubleI radius, IBoolI flipArcSide)`
    `void` | `init(IVecI line1Pt1, IVecI line1Pt2, IVecI line2Pt1, IVecI line2Pt2, double radius, boolean flipArcSide)`
    `void` | `init(IVecI line1Pt1, IVecI line1Pt2, IVecI line2Pt1, IVecI line2Pt2, IDoubleI radius, IBoolI flipArcSide)`
    `void` | `init(IVecI center, IVecI startPt, IVecI midPt, IVecI endPt, IVecI normal)`

    - ### Methods inherited from class igeo.ICurveGeo

      `add, add, add, add, add, add, add, addCP, addCP, addCP, addCP, addCP, addCP, addCP, addCP, center, checkDuplicatedCP, checkDuplicatedCP, checkDuplicatedCP, checkDuplicatedCPOnEdge, closePt, closePt, cp, cp, cp, cp, cp, cp, cpNum, cpNum, cpNum, cps, deg, deg, deg, dist, dist, div, div, dup, end, endCP, ep, ep, epNum, epNum, epNum, flip, flipU, get, getPointsFromArray, init, init, init, init, init, insertCP, insertCP, intersectPlane, intersectPlane, isClosed, isClosed, isClosed, isInside2d, isInside2d, isRational, isRational, isRational, isValid, isValidCP, isValidCP, knot, knot, knotNum, knotNum, knotNum, knots, knots, knots, len, len, len, len, mid, mirror, mirror, mul, mul, mv, mv, mv, neg, num, num, num, overlapCPNum, pt, pt, pt, ref, ref, removeCP, removeCP, removeCP, rev, revU, rot, rot, rot, rot, rot, rot, rot, rot, rot2, rot2, rot2, rot2, rot2, rot2, scale, scale, scale, scale, scale1d, scale1d, scale1d, scale1d, shear, shear, shear, shear, shearXY, shearXY, shearXY, shearXY, shearYZ, shearYZ, shearYZ, shearYZ, shearZX, shearZX, shearZX, shearZX, start, startCP, sub, sub, sub, tan, tan, tan, transform, transform, transform, transform, translate, translate, translate, u, u, u, u, u, u, u, u, uend, uend, uend, updateCache, ustart, ustart, ustart`

    - ### Methods inherited from class igeo.INurbsGeo

      `createClosedCP, createClosedCPInU, createClosedCPInV, createClosedKnots, createKnots, createKnots, invertKnots, isValidKnots, normalizeKnots`

    - ### Methods inherited from class igeo.IParameterObject

      `createObject, parent, parent`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### maxSegmentAngle

          public static double maxSegmentAngle

    - #### center

          public IVecI center

    - #### normal

          public IVecI normal

    - #### startPt

          public IVecI startPt

    - #### angle

          public IDoubleI angle

  - ### Constructor Detail

    - #### IArcGeo

          public IArcGeo()

    - #### IArcGeo

          public IArcGeo(IVecI center,
                         IVecI normal,
                         IVecI startPt,
                         double angle)

    - #### IArcGeo

          public IArcGeo(IVecI center,
                         IVecI normal,
                         IVecI startPt,
                         IDoubleI angle)

    - #### IArcGeo

          public IArcGeo(IVecI center,
                         IVecI startPt,
                         IVecI endPt,
                         IBoolI flipArcSide)

    - #### IArcGeo

          public IArcGeo(IVecI center,
                         IVecI startPt,
                         IVecI endPt,
                         boolean flipArcSide)

    - #### IArcGeo

          public IArcGeo(IVecI center,
                         IVecI startPt,
                         IVecI midPt,
                         IVecI endPt,
                         IVecI normal)

    - #### IArcGeo

          public IArcGeo(IVecI line1Pt1,
                         IVecI line1Pt2,
                         IVecI line2Pt1,
                         IVecI line2Pt2,
                         IDoubleI radius,
                         IBoolI flipArcSide)

    - #### IArcGeo

          public IArcGeo(IVecI line1Pt1,
                         IVecI line1Pt2,
                         IVecI line2Pt1,
                         IVecI line2Pt2,
                         double radius,
                         boolean flipArcSide)

    - #### IArcGeo

          public IArcGeo(IVecI sharedLinePt,
                         IVecI line1Pt,
                         IVecI line2Pt,
                         IDoubleI radius,
                         IBoolI flipArcSide)

    - #### IArcGeo

          public IArcGeo(IVecI sharedLinePt,
                         IVecI line1Pt,
                         IVecI line2Pt,
                         double radius,
                         boolean flipArcSide)

    - #### IArcGeo

          public IArcGeo(IVecI arcStartPt,
                         IVecI arcMidPt,
                         IVecI arcEndPt)

  - ### Method Detail

    - #### arcDeg

          public static int arcDeg()

    - #### arcCP

          public static IVec4[] arcCP(IVec center,
                                      IVec normal,
                                      IVec startPt,
                                      double angle)

    - #### arcCP

          public static IVec4[] arcCP(IVec center,
                                      IVec startPt,
                                      IVec endPt,
                                      boolean flipArcSide)

    - #### arcCP

          public static IVec4[] arcCP(IVec center,
                                      IVec startPt,
                                      IVec midPt,
                                      IVec endPt,
                                      IVec normal)

    - #### arcKnots

          public static double[] arcKnots(double angle)

    - #### init

          public void init(IVecI center,
                           IVecI normal,
                           IVecI startPt,
                           IDoubleI angle)

    - #### init

          public void init(IVecI center,
                           IVecI normal,
                           IVecI startPt,
                           double angle)

    - #### init

          public void init(IVecI center,
                           IVecI startPt,
                           IVecI endPt,
                           IBoolI flipArcSide)

    - #### init

          public void init(IVecI center,
                           IVecI startPt,
                           IVecI endPt,
                           boolean flipArcSide)

    - #### init

          public void init(IVecI center,
                           IVecI startPt,
                           IVecI midPt,
                           IVecI endPt,
                           IVecI normal)

    - #### init

          public void init(IVecI line1Pt1,
                           IVecI line1Pt2,
                           IVecI line2Pt1,
                           IVecI line2Pt2,
                           IDoubleI radius,
                           IBoolI flipArcSide)

    - #### init

          public void init(IVecI line1Pt1,
                           IVecI line1Pt2,
                           IVecI line2Pt1,
                           IVecI line2Pt2,
                           double radius,
                           boolean flipArcSide)

    - #### init

          public void init(IVecI sharedLinePt,
                           IVecI line1Pt,
                           IVecI line2Pt,
                           IDoubleI radius,
                           IBoolI flipArcSide)

    - #### init

          public void init(IVecI sharedLinePt,
                           IVecI line1Pt,
                           IVecI line2Pt,
                           double radius,
                           boolean flipArcSide)