ClipPlane Class
A ClipPlane is a single plane represented as
- An inward unit normal (u,v,w)
- A signedDistance
Hence
- The halfspace function evaluation for "point" [x,y,z,] is: ([x,y,z] DOT (u,v,w)l - signedDistance)
- POSITIVE values of the halfspace function are "inside"
- ZERO value of the halfspace function is "on"
- NEGATIVE value of the halfspace function is "outside"
- A representative point on the plane is (signedDistance*u, signedDistance * v, signedDistance *w)
- Given a point and inward normal, the signedDistance is (point DOT normal)
Implements
Methods
Name | Description | |
---|---|---|
altitude(point: Point3d): number | Evaluate the distance from the plane to a point in space, i.e. | |
altitudeXYZ(x: number, y: number, z: number): number | Evaluate the distance from the plane to a point in space with point given as x,y,z, i.e. | |
announceClippedArcIntervals(arc: Arc3d, announce?: AnnounceNumberNumberCurvePrimitive): boolean | Announce fractional intervals of arc clip. | |
announceClippedSegmentIntervals(f0: number, f1: number, pointA: Point3d, pointB: Point3d, announce?: (fraction0: number, fraction1: number) => void): boolean | announce the interval (if any) where a line is within the clip plane half space. | |
appendIntersectionRadians(arc: Arc3d, intersectionRadians: GrowableFloat64Array): void | Compute intersections of an (UNBOUNDED) arc with the plane. | |
appendPolygonClip(xyz: GrowableXYZArray, insideFragments: GrowableXYZArray[], outsideFragments: GrowableXYZArray[], arrayCache: ): void | Implement appendPolygonClip, as defined in interface PolygonClipper. | |
clipConvexPolygonInPlace(xyz: GrowableXYZArray, work: GrowableXYZArray, inside: boolean = true, tolerance: number = Geometry.smallMetricDistance): number | Clip a polygon to the inside or outside of the plane. | |
clone(): ClipPlane | return a cloned plane | |
cloneNegated(): ClipPlane | return Return a cloned plane with coordinate data negated. | |
dotProductPlaneNormalPoint(point: Point3d): number | Return the dot product of the plane normal with the point (treating the point xyz as a vector, and NOT using the plane's distanceFromOrigin). | |
getBoundedSegmentSimpleIntersection(pointA: Point3d, pointB: Point3d): undefined | number | * Compute intersection of (unbounded) segment with the plane. | |
getFrame(): Transform | Return a coordinate frame with | |
getPlane3d(): Plane3dByOriginAndUnitNormal | Return the Plane3d form of the plane. | |
getPlane4d(): Point4d | Return the Point4d d form of the plane. | |
intersectRange(range: Range3d, addClosurePoint: boolean = false): undefined | GrowableXYZArray | Return the intersection of the plane with a range cube. | |
isAlmostEqual(other: ClipPlane): boolean | Return true if all members are almostEqual to corresponding members of other. | |
isPointInside(point: Point3d, tolerance: number = Geometry.smallMetricDistance): boolean | Return true if spacePoint is strictly inside the halfspace, with tolerance applied to "on". | |
isPointOn(point: Point3d, tolerance: number = Geometry.smallMetricDistance): boolean | Return true if spacePoint is strictly on the plane, within tolerance | |
isPointOnOrInside(spacePoint: Point3d, tolerance: number = Geometry.smallMetricDistance): boolean | Return true if spacePoint is inside or on the plane, with tolerance applied to "on". | |
multiplyPlaneByMatrix4d(matrix: Matrix4d, invert: boolean = true, transpose: boolean = true): boolean | Multiply the ClipPlane's DPoint4d by matrix. | |
negateInPlace(): void | reverse the sign of all coefficients, so outside and inside reverse | |
normalX(): number | Return the x component of the normal used to evaluate altitude. | |
normalY(): number | Return the x component of the normal used to evaluate altitude. | |
normalZ(): number | Return the z component of the normal used to evaluate altitude. | |
offsetDistance(offset: number): void | Move the plane INWARD by given distance | |
setFlags(invisible: boolean, interior: boolean): void | Set both the invisible and interior flags. | |
setInvisible(invisible: boolean): void | Set the invisible flag. | |
setPlane4d(plane: Point4d): void | Set the plane from DPoint4d style plane. | |
toJSON(): ClipPlaneProps | return a json object of the form | |
transformInPlace(transform: Transform): boolean | Apply transform to the origin. | |
velocity(vector: Vector3d): number | Return the dot product of the plane normal with the vector (NOT using the plane's distanceFromOrigin). | |
velocityXYZ(x: number, y: number, z: number): number | Return the dot product of the plane normal with the x,yz, vector components (NOT using the plane's distanceFromOrigin). | |
weightedAltitude(point: Point4d): number | Evaluate the altitude in weighted space, i.e. | |
createEdgeAndUpVector(point0: Point3d, point1: Point3d, upVector: Vector3d, tiltAngle?: Angle, result?: ClipPlane): undefined | ClipPlane Static | Create a plane defined by two points, an up vector, and a tilt angle relative to the up vector. | |
createEdgeXY(point0: Point3d, point1: Point3d, result?: ClipPlane): undefined | ClipPlane Static | Create a plane perpendicular to the edge between the xy parts of point0 and point1 | |
createNormalAndDistance(normal: Vector3d, distance: number, invisible: boolean = false, interior: boolean = false, result?: ClipPlane): undefined | ClipPlane Static | * Create a ClipPlane with direct normal and signedDistance. | |
createNormalAndPoint(normal: Vector3d, point: Point3d, invisible: boolean = false, interior: boolean = false, result?: ClipPlane): undefined | ClipPlane Static | Create a ClipPlane | |
createNormalAndPointXYZXYZ(normalX: number, normalY: number, normalZ: number, originX: number, originY: number, originZ: number, invisible: boolean = false, interior: boolean = false, result?: ClipPlane): undefined | ClipPlane Static | Create a ClipPlane | |
createPlane(plane: Plane3dByOriginAndUnitNormal, invisible: boolean = false, interior: boolean = false, result?: ClipPlane): ClipPlane Static | Create a ClipPlane from Plane3dByOriginAndUnitNormal. | |
fromJSON(json: ClipPlaneProps, result?: ClipPlane): undefined | ClipPlane Static | parse json object to ClipPlane instance |
Properties
Name | Type | Description | |
---|---|---|---|
distance Accessor ReadOnly | number | Return the stored distanceFromOrigin property. | |
interior Accessor ReadOnly | boolean | Return the "interior" property bit | |
invisible Accessor ReadOnly | boolean | Return the "invisible" property bit. | |
inwardNormalRef Accessor ReadOnly | Vector3d | Return the stored inward normal property. |
Defined in
- clipping/ClipPlane.ts Line 57
Last Updated: 30 November, 2023