# 视锥体（[name]）

[link:http://en.wikipedia.org/wiki/Frustum Frustums] 用于确定相机视野内的东西。 它有助于加速渲染过程——位于摄像机视锥体外的物体可以安全地排除在渲染之外。
该类主要用于渲染器内部计算 [page:Camera camera] 或 [page:LightShadow.camera shadowCamera]的视锥体。

## 构造器(Constructor)

### [name]([param:Plane p0], [param:Plane p1], [param:Plane p2], [param:Plane p3], [param:Plane p4], [param:Plane p5])

[page:Plane p0] - (可选参数) [page:Plane].
[page:Plane p1] - (可选参数) [page:Plane].
[page:Plane p2] - (可选参数) [page:Plane].
[page:Plane p3] - (可选参数) [page:Plane].
[page:Plane p4] - (可选参数) [page:Plane].
[page:Plane p5] - (可选参数) [page:Plane].
使用6个面来构建一个视锥体。

## 属性（Properties）

### [property:Array planes]

包含6个平面 [page:Plane planes] 的数组。

## 方法（Methods）

### [method:Frustum clone]()

返回一个与当前对象有相同参数的视锥体。

### [method:Boolean containsPoint]( [param:Vector3 point] )

[page:Vector3 point] - [page:Vector3] 被检测的点。
检测该点 [page:Vector3 point] 是否在视锥体内。

### [method:this copy]( [param:Frustum frustum] )

[page:Frustum frustum] - 用于拷贝的视锥体。
将传入 [page:Frustum frustum] 的属性拷贝到当前对象。

### [method:Boolean intersectsBox]( [param:Box3 box] )

[page:Box3 box] - [page:Box3] 用于检测是否要交的包围盒。
返回 true 如果该 [page:Box3 box] 与视锥体相交。

### [method:Boolean intersectsObject]( [param:Object3D object] )

检测 [page:Object3D object] 的包围球 [page:BufferGeometry.boundingSphere bounding sphere] 是否与视锥体相交。
注意：该对象必须有一个 [page:BufferGeometry] ，因为这样才能计算出包围球。

### [method:Boolean intersectsSphere]( [param:Sphere sphere] )

[page:Sphere sphere] - [page:Sphere] 用于检查是否相交。
返回true 如果球[page:Sphere sphere]与视锥体相交。

### [method:Boolean intersectsSprite]( [param:Sprite sprite] )

检查精灵[page:Sprite sprite]是否与截锥体相交。

### [method:this set]( [param:Plane p0], [param:Plane p1], [param:Plane p2], [param:Plane p3], [param:Plane p4], [param:Plane p5] )

从传入的平面设置当前视锥体。没有隐式的顺序。
请注意，此方法仅复制给定对象的值。

### [method:this setFromProjectionMatrix]( [param:Matrix4 matrix] )

[page:Matrix4 matrix] - 投影矩阵 [page:Matrix4] 会被用来设置该视椎体的 [page:.planes planes]
根据投影矩阵 matrix 来设置当前视椎体的六个面。

## Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]