API Reference > geometry-core > CartesianGeometry > UnionOfConvexClipPlaneSets UnionOfConvexClipPlaneSets Class A collection of ConvexClipPlaneSets. A point is "in" the clip plane set if it is "in" one or more of the ConvexClipPlaneSet Hence the boolean logic is that the ClipPlaneSet is a UNION of its constituents. Implements Clipper Methods Name Description addConvexSet(toAdd: ConvexClipPlaneSet): void Append toAdd to the array of ConvexClipPlaneSet addOutsideZClipSets(invisible: boolean, zLow?: number, zHigh?: number): void add convex sets that accept points below zLow and above zHigh announceClippedArcIntervals(arc: Arc3d, announce?: AnnounceNumberNumberCurvePrimitive): boolean Find parts of an arc that are inside any member clipper. announceClippedSegmentIntervals(f0: number, f1: number, pointA: Point3d, pointB: Point3d, announce?: (fraction0: number, fraction1: number) => void): boolean * announce clipSegment() for each convexSet in this ClipPlaneSet. appendIntervalsFromSegment(segment: LineSegment3d, intervals: Segment1d[]): void Returns the fractions of the segment that pass through the set region, as 1 dimensional pieces classifyPointContainment(points: Point3d[], onIsOutside: boolean): number Returns 1, 2, or 3 based on whether point is strongly inside, ambiguous, or strongly outside respectively clone(result?: UnionOfConvexClipPlaneSets): UnionOfConvexClipPlaneSets return a deep copy. computePlanePlanePlaneIntersectionsInAllConvexSets(points: Point3d[] | undefined, rangeToExtend: Range3d | undefined, transform?: Transform, testContainment: boolean = true): number Collect the output from computePlanePlanePlaneIntersections in all the contained convex sets. hasIntersectionWithRay(ray: Ray3d, maximalRange?: Range1d): boolean Test if there is any intersection with a ray defined by origin and direction. isAlmostEqual(other: UnionOfConvexClipPlaneSets): boolean Return true if all member convex sets are almostEqual to corresponding members of other. isAnyPointInOrOnFromSegment(segment: LineSegment3d): boolean test if any part of a line segment is within the volume isPointInside(point: Point3d): boolean Return true if true is returned for any contained convex set returns true for convexSet.isPointInside (point, tolerance) isPointOnOrInside(point: Point3d, tolerance: number = Geometry.smallMetricDistance): boolean Return true if true is returned for any contained convex set returns true for convexSet.isPointOnOrInside (point, tolerance) isSphereInside(point: Point3d, radius: number): boolean Return true if true is returned for any contained convex set returns true for convexSet.isSphereOnOrInside (point, tolerance) multiplyPlanesByMatrix4d(matrix: Matrix4d, invert: boolean = true, transpose: boolean = true): boolean Multiply all ClipPlanes DPoint4d by matrix. polygonClip(input: GrowableXYZArray | Point3d[], output: GrowableXYZArray[]): void Clip a polygon using this ClipPlaneSet, returning new polygon boundaries. setInvisible(invisible: boolean): void Recursively call setInvisible on all member convex sets. toJSON(): any Return an array with the toJSON form of each ConvexClipPlaneSet transformInPlace(transform: Transform): void apply transform to all the ConvexClipPlaneSet's createConvexSets(convexSets: ConvexClipPlaneSet[], result?: UnionOfConvexClipPlaneSets): UnionOfConvexClipPlaneSets Static Create a UnionOfConvexClipPlaneSets with given ConvexClipPlaneSet members createEmpty(result?: UnionOfConvexClipPlaneSets): UnionOfConvexClipPlaneSets Static Create a UnionOfConvexClipPlaneSets with no members. fromJSON(json: any, result?: UnionOfConvexClipPlaneSets): UnionOfConvexClipPlaneSets Static Convert json UnionOfConvexClipPlaneSets, using setFromJSON. Properties Name Type Description convexSets Accessor ReadOnly ConvexClipPlaneSet[] (property accessor) Return the (reference to the) array of ConvexClipPlaneSet Defined in core/geometry/src/clipping/UnionOfConvexClipPlaneSets.ts Line 30 Last Updated: 13 June, 2024