API Reference > geometry-core > Curve > ParityRegion ParityRegion Class A ParityRegion is a collection of Loop objects. The loops collectively define a planar region. A point is "in" the composite region if it is "in" an odd number of the loops. see Curve Collections learning article. Extends CurveCollection Methods Name Description constructor(): ParityRegion Construct parity region with empty loop array addLoops(data?: Loop | Loop[] | Loop[][]): void Add loops (recursively) to this region's children announceToCurveProcessor(processor: RecursiveCurveProcessor, indexInParent: number = -1): void invoke processor.announceParityRegion(this, indexInParent) clone(): ParityRegion Return a deep copy. cloneEmptyPeer(): ParityRegion Create a new empty parity region. cloneStroked(options?: StrokeOptions): ParityRegion Stroke these curves into a new ParityRegion. dgnBoundaryType(): number Return the boundary type (4) of a corresponding MicroStation CurveVector dispatchToGeometryHandler(handler: GeometryHandler): any Second step of double dispatch: call handler.handleRegion(this) getChild(i: number): undefined | Loop Get child i by index. isSameGeometryClass(other: GeometryQuery): boolean Test if other is an instance of ParityRegion tryAddChild(child: undefined | AnyCurve): boolean Add child to this parity region. create(...data: Loop[]): ParityRegion Static Create a parity region with given loops createLoops(data?: Loop | Loop[] | Loop[][]): Loop | ParityRegion Static Return a single loop or parity region with given loops. Inherited methods Name Inherited from Description checkForNonLinearPrimitives(): boolean CurveCollection return true if the curve collection has any primitives other than LineSegment3d and LineString3d cloneTransformed(transform: Transform): undefined | CurveCollection CurveCollection Create a deep copy of transformed curves. cloneWithExpandedLineStrings(): undefined | CurveCollection CurveCollection Create a deep copy with all linestrings expanded to multiple LineSegment3d. closestPoint(spacePoint: Point3d): undefined | CurveLocationDetail CurveCollection Return the closest point on the contained curves collectCurvePrimitives(collectorArray?: CurvePrimitive[], smallestPossiblePrimitives: boolean = false, explodeLineStrings: boolean = false): CurvePrimitive[] CurveCollection Return an array containing only the curve primitives. extendRange(rangeToExtend: Range3d, transform?: Transform): void CurveCollection Extend (increase) rangeToExtend as needed to include these curves (optionally transformed) isAlmostEqual(other: GeometryQuery): boolean CurveCollection test for exact structure and nearly identical geometry. maxGap(): number CurveCollection return the max gap between adjacent primitives in Path and Loop collections. range(transform?: Transform, result?: Range3d): Range3d CurveCollection return the range of the entire (tree) GeometryQuery sumLengths(): number CurveCollection Return the sum of the lengths of all contained curves. tryTransformInPlace(transform: Transform): boolean CurveCollection Apply transform recursively to children tryTranslateInPlace(dx: number, dy: number = 0.0, dz: number = 0.0): boolean CurveCollection try to move the geometry by dx,dy,dz areAlmostEqual(a: undefined | GeometryQuery, b: undefined | GeometryQuery): boolean Static CurveCollection apply instance method isAlmostEqual if both are defined. createCurveLocationDetailOnAnyCurvePrimitive(source: undefined | GeometryQuery, fraction: number = 0.5): undefined | CurveLocationDetail Static CurveCollection * Find any curve primitive in the source. Properties Name Type Description _children Protected Loop[] Array of loops in this parity region. children Accessor ReadOnly Loop[] Return the array of loops in this parity region. curveCollectionType Readonly "parityRegion" String name for schema properties Inherited properties Name Type Inherited from Description geometryCategory Readonly "curveCollection" CurveCollection String name for schema properties isAnyRegionType Accessor ReadOnly boolean CurveCollection Return true for planar region types:* Loop* ParityRegion* UnionRegion isClosedPath Accessor ReadOnly boolean CurveCollection Return true for a single-loop planar region type, i.e. Loop.* This is _not- a test for physical closure of a Path isInner boolean CurveCollection Flag for inner loop status. isOpenPath Accessor ReadOnly boolean CurveCollection Return true for a Path, i.e. a chain of curves joined head-to-tail Defined in curve/ParityRegion.ts Line 25 Last Updated: 12 June, 2024