Frustum Class

The region of physical (3d) space that appears in a view. It forms the field-of-view of a camera. It is stored as 8 points, in Npc order, that must define a truncated pyramid.

Methods

Name Description
constructor(): Frustum Constructor for Frustum.  
clone(result?: Frustum): Frustum Make a copy of this Frustum.  
distance(corner1: number, corner2: number): number Get the distance between two corners of this Frustum.  
equals(rhs: Frustum): boolean Return true if this Frustum is equal to another Frustum  
fixPointOrder(): void Make sure the frustum point order does not include mirroring.  
getCenter(): Point3d Get the point at the center of this Frustum (halfway between RightTopFront and LeftBottomRear.  
getCorner(i: number): Point3d Get a corner Point from this Frustum.  
getEyePoint(result?: Point3d): undefined | Point3d Get the eye point - undefined if parallel projection  
getFraction(): number Get the ratio of the length of the diagonal of the front plane to the diagonal of the back plane.  
getIntersectionWithPlane(plane: Plane3dByOriginAndUnitNormal): undefined | Point3d[] Get a (convex) polygon that represents the intersection of this frustum with a plane, or undefined if no intersection exists  
getRangePlanes(clipFront: boolean, clipBack: boolean, expandPlaneDistance: number): ConvexClipPlaneSet Get a convex set of clipping planes bounding the region contained by this Frustum.  
getRotation(result?: Matrix3d): undefined | Matrix3d Get the rotation matrix to the frame of this frustum.  
initFromRange(range: Readonly<WritableLowAndHighXYZ> | Readonly<WritableLowAndHighXY>): void Initialize this Frustum from a Range  
initNpc(): Frustum Initialize this Frustum to the 8 corners of the NPC cube.  
invalidate(): void Invalidate this Frustum by setting all 8 points to zero.  
isSame(other: Frustum): boolean Return true if all of the points in this Frustum are almost the same as the points in another Frustum.  
multiply(trans: Transform): void Multiply all the points of this Frustum by a Transform, in place.  
scaleAboutCenter(scale: number): void Scale this Frustum, in place, about its center by a scale factor.  
scaleXYAboutCenter(scale: number): void Scale this frustum's XY (viewing) plane about its center  
setFrom(other: Frustum): void Set the points of this Frustum to be copies of the points in another Frustum.  
setFromCorners(corners: Point3d[]): void Set the points of this frustum from array of corner points in NPC order.  
toMap4d(): undefined | Map4d Create a Map4d that converts world coordinates to/from Npc coordinates of this Frustum.  
toRange(range?: Range3d): Range3d Calculate a bounding range from the 8 points in this Frustum.  
transformBy(trans: Transform, result?: Frustum): Frustum Transform all the points of this Frustum and return the result in another Frustum.  
translate(offset: Readonly<WritableXYAndZ>): void Offset all of the points of this Frustum by a vector.  
fromRange(range: Readonly<WritableLowAndHighXYZ> | Readonly<WritableLowAndHighXY>, out?: Frustum): Frustum Static Create a new Frustum from a Range3d  

Properties

Name Type Description
frontCenter Accessor ReadOnly Point3d The point at the center of the front face of this frustum  
hasMirror Accessor ReadOnly boolean Return true if this Frustum has a mirror (is not in the correct order.)  
points Readonly Point3d[] Array of the 8 points of this Frustum.  
rearCenter Accessor ReadOnly Point3d The point at the center of the rear face of this frustum  

Defined in

Last Updated: 30 November, 2023