Appearance
KBE3D / KBCore / Cesium / PerspectiveFrustum
类: PerspectiveFrustum
The viewing frustum is defined by 6 planes. Each plane is represented by a Cartesian4 object, where the x, y, and z components define the unit vector normal to the plane, and the w component is the distance of the plane from the origin/camera position.
示例
ts
const frustum = new Cesium.PerspectiveFrustum({
fov : Cesium.Math.PI_OVER_THREE,
aspectRatio : canvas.clientWidth / canvas.clientHeight
near : 1.0,
far : 1000.0
});参数
An object with the following properties:
参数
The angle of the field of view (FOV), in radians.
参数
The aspect ratio of the frustum's width to it's height.
参数
The distance of the near plane.
参数
The distance of the far plane.
参数
The offset in the x direction.
参数
The offset in the y direction.
属性
packedLength
staticpackedLength:number
The number of elements used to pack the object into an array.
fov
fov:
number|undefined
The angle of the field of view (FOV), in radians. This angle will be used as the horizontal FOV if the width is greater than the height, otherwise it will be the vertical FOV.
aspectRatio
aspectRatio:
number|undefined
The aspect ratio of the frustum's width to it's height.
near
near:
number
The distance of the near plane.
far
far:
number
The distance of the far plane.
xOffset
xOffset:
number
Offsets the frustum in the x direction.
yOffset
yOffset:
number
Offsets the frustum in the y direction.
projectionMatrix
readonlyprojectionMatrix:Matrix4
Gets the perspective projection matrix computed from the view frustum. If necessary, the projection matrix will be recomputed.
infiniteProjectionMatrix
readonlyinfiniteProjectionMatrix:Matrix4
The perspective projection matrix computed from the view frustum with an infinite far plane.
fovy
readonlyfovy:number|undefined
Gets the angle of the vertical field of view, in radians.
方法
pack()
staticpack(value:PerspectiveFrustum,array:number[],startingIndex?:number):number[]
Stores the provided instance into the provided array.
参数
value
PerspectiveFrustum
The value to pack.
array
number[]
The array to pack into.
startingIndex?
number
The index into the array at which to start packing the elements.
返回
number[]
The array that was packed into
unpack()
staticunpack(array:number[],startingIndex?:number,result?:PerspectiveFrustum):PerspectiveFrustum
Retrieves an instance from a packed array.
参数
array
number[]
The packed array.
startingIndex?
number
The starting index of the element to be unpacked.
result?
PerspectiveFrustum
The object into which to store the result.
返回
PerspectiveFrustum
The modified result parameter or a new PerspectiveFrustum instance if one was not provided.
computeCullingVolume()
computeCullingVolume(
position:Cartesian3,direction:Cartesian3,up:Cartesian3):CullingVolume
Creates a culling volume for this frustum.
参数
position
The eye position.
direction
The view direction.
up
The up direction.
返回
A culling volume at the given position and orientation.
示例
ts
// Check if a bounding volume intersects the frustum.
const cullingVolume = frustum.computeCullingVolume(cameraPosition, cameraDirection, cameraUp);
const intersect = cullingVolume.computeVisibility(boundingVolume);getPixelDimensions()
getPixelDimensions(
drawingBufferWidth:number,drawingBufferHeight:number,distance:number,pixelRatio:number,result:Cartesian2):Cartesian2
Returns the pixel's width and height in meters.
参数
drawingBufferWidth
number
The width of the drawing buffer.
drawingBufferHeight
number
The height of the drawing buffer.
distance
number
The distance to the near plane in meters.
pixelRatio
number
The scaling factor from pixel space to coordinate space.
result
The object onto which to store the result.
返回
The modified result parameter or a new instance of Cartesian2 with the pixel's width and height in the x and y properties, respectively.
Examples
ts
// Example 1
// Get the width and height of a pixel.
const pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, 1.0, scene.pixelRatio, new Cesium.Cartesian2());ts
// Example 2
// Get the width and height of a pixel if the near plane was set to 'distance'.
// For example, get the size of a pixel of an image on a billboard.
const position = camera.position;
const direction = camera.direction;
const toCenter = Cesium.Cartesian3.subtract(primitive.boundingVolume.center, position, new Cesium.Cartesian3()); // vector from camera to a primitive
const toCenterProj = Cesium.Cartesian3.multiplyByScalar(direction, Cesium.Cartesian3.dot(direction, toCenter), new Cesium.Cartesian3()); // project vector onto camera direction vector
const distance = Cesium.Cartesian3.magnitude(toCenterProj);
const pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, distance, scene.pixelRatio, new Cesium.Cartesian2());clone()
clone(
result?:PerspectiveFrustum):PerspectiveFrustum
Returns a duplicate of a PerspectiveFrustum instance.
参数
result?
PerspectiveFrustum
The object onto which to store the result.
返回
PerspectiveFrustum
The modified result parameter or a new PerspectiveFrustum instance if one was not provided.
equals()
equals(
other?:PerspectiveFrustum):boolean
Compares the provided PerspectiveFrustum componentwise and returns <code>true</code> if they are equal, <code>false</code> otherwise.
参数
other?
PerspectiveFrustum
The right hand side PerspectiveFrustum.
返回
boolean
true if they are equal, false otherwise.
equalsEpsilon()
equalsEpsilon(
other:PerspectiveFrustum,relativeEpsilon:number,absoluteEpsilon?:number):boolean
Compares the provided PerspectiveFrustum componentwise and returns <code>true</code> if they pass an absolute or relative tolerance test, <code>false</code> otherwise.
参数
other
PerspectiveFrustum
The right hand side PerspectiveFrustum.
relativeEpsilon
number
The relative epsilon tolerance to use for equality testing.
absoluteEpsilon?
number
The absolute epsilon tolerance to use for equality testing.
返回
boolean
true if this and other are within the provided epsilon, false otherwise.
构造函数
构造函数
new PerspectiveFrustum(
options?: {fov?:number;aspectRatio?:number;near?:number;far?:number;xOffset?:number;yOffset?:number; }):PerspectiveFrustum
参数
options?
fov?
number
aspectRatio?
number
near?
number
far?
number
xOffset?
number
yOffset?
number
返回
PerspectiveFrustum
