123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8" />
- <base href="../../../" />
- <script src="page.js"></script>
- <link type="text/css" rel="stylesheet" href="page.css" />
- </head>
- <body>
- <h1>[name]</h1>
- <p class="desc">
- Represents an axis-aligned bounding box (AABB) in 3D space.
- </p>
- <h2>Code Example</h2>
- <code>
- const box = new THREE.Box3();
- const mesh = new THREE.Mesh(
- new THREE.SphereGeometry(),
- new THREE.MeshBasicMaterial()
- );
- // ensure the bounding box is computed for its geometry
- // this should be done only once (assuming static geometries)
- mesh.geometry.computeBoundingBox();
- // ...
- // in the animation loop, compute the current bounding box with the world matrix
- box.copy( mesh.geometry.boundingBox ).applyMatrix4( mesh.matrixWorld );
- </code>
- <h2>Constructor</h2>
- <h3>[name]( [param:Vector3 min], [param:Vector3 max] )</h3>
- <p>
- [page:Vector3 min] - (optional) [page:Vector3] representing the lower (x,
- y, z) boundary of the box. Default is ( + Infinity, + Infinity, + Infinity
- ).<br />
- [page:Vector3 max] - (optional) [page:Vector3] representing the upper (x,
- y, z) boundary of the box. Default is ( - Infinity, - Infinity, - Infinity
- ).<br /><br />
- Creates a [name] bounded by min and max.
- </p>
- <h2>Properties</h2>
- <h3>[property:Boolean isBox3]</h3>
- <p>Read-only flag to check if a given object is of type [name].</p>
- <h3>[property:Vector3 min]</h3>
- <p>
- [page:Vector3] representing the lower (x, y, z) boundary of the box.<br />
- Default is ( + Infinity, + Infinity, + Infinity ).
- </p>
- <h3>[property:Vector3 max]</h3>
- <p>
- [page:Vector3] representing the upper (x, y, z) boundary of the box.<br />
- Default is ( - Infinity, - Infinity, - Infinity ).
- </p>
- <h2>Methods</h2>
- <h3>[method:this applyMatrix4]( [param:Matrix4 matrix] )</h3>
- <p>
- [page:Matrix4 matrix] - The [page:Matrix4] to apply<br /><br />
- Transforms this Box3 with the supplied matrix.
- </p>
- <h3>
- [method:Vector3 clampPoint]( [param:Vector3 point], [param:Vector3 target] )
- </h3>
- <p>
- [page:Vector3 point] - [page:Vector3] to clamp. <br />
- [page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
- [link:https://en.wikipedia.org/wiki/Clamping_(graphics) Clamps] the
- [page:Vector3 point] within the bounds of this box.<br />
- </p>
- <h3>[method:Box3 clone]()</h3>
- <p>
- Returns a new [page:Box3] with the same [page:.min min] and [page:.max max] as this one.
- </p>
- <h3>[method:Boolean containsBox]( [param:Box3 box] )</h3>
- <p>
- [page:Box3 box] - [page:Box3 Box3] to test for inclusion.<br /><br />
- Returns true if this box includes the entirety of [page:Box3 box]. If this
- and [page:Box3 box] are identical, <br />
- this function also returns true.
- </p>
- <h3>[method:Boolean containsPoint]( [param:Vector3 point] )</h3>
- <p>
- [page:Vector3 point] - [page:Vector3] to check for inclusion.<br /><br />
- Returns true if the specified [page:Vector3 point] lies within or on the
- boundaries of this box.
- </p>
- <h3>[method:this copy]( [param:Box3 box] )</h3>
- <p>
- [page:Box3 box] - [page:Box3] to copy.<br /><br />
- Copies the [page:.min min] and [page:.max max] from [page:Box3 box] to
- this box.
- </p>
- <h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
- <p>
- [page:Vector3 point] - [page:Vector3] to measure distance to.<br /><br />
- Returns the distance from any edge of this box to the specified point. If
- the [page:Vector3 point] lies inside of this box, the distance will be `0`.
- </p>
- <h3>[method:Boolean equals]( [param:Box3 box] )</h3>
- <p>
- [page:Box3 box] - Box to compare with this one.<br /><br />
- Returns true if this box and [page:Box3 box] share the same lower and
- upper bounds.
- </p>
- <h3>
- [method:this expandByObject]( [param:Object3D object], [param:Boolean precise] )
- </h3>
- <p>
- [page:Object3D object] - [page:Object3D] to expand the box by.<br />
- precise - (optional) expand the bounding box as little as necessary at the
- expense of more computation. Default is false.<br /><br />
- Expands the boundaries of this box to include [page:Object3D object] and
- its children, accounting for the object's, and children's, world
- transforms. The function may result in a larger box than strictly
- necessary (unless the precise parameter is set to true).
- </p>
- <h3>[method:this expandByPoint]( [param:Vector3 point] )</h3>
- <p>
- [page:Vector3 point] - [page:Vector3] that should be included in the
- box.<br /><br />
- Expands the boundaries of this box to include [page:Vector3 point].
- </p>
- <h3>[method:this expandByScalar]( [param:Float scalar] )</h3>
- <p>
- [page:Float scalar] - Distance to expand the box by.<br /><br />
- Expands each dimension of the box by [page:Float scalar]. If negative, the
- dimensions of the box will be contracted.
- </p>
- <h3>[method:this expandByVector]( [param:Vector3 vector] )</h3>
- <p>
- [page:Vector3 vector] - [page:Vector3] to expand the box by.<br /><br />
- Expands this box equilaterally by [page:Vector3 vector]. The width of this
- box will be expanded by the x component of [page:Vector3 vector] in both
- directions. The height of this box will be expanded by the y component of
- [page:Vector3 vector] in both directions. The depth of this box will be
- expanded by the z component of `vector` in both directions.
- </p>
- <h3>[method:Sphere getBoundingSphere]( [param:Sphere target] )</h3>
- <p>
- [page:Sphere target] — the result will be copied into this Sphere.<br /><br />
- Gets a [page:Sphere] that bounds the box.
- </p>
- <h3>[method:Vector3 getCenter]( [param:Vector3 target] )</h3>
- <p>
- [page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
- Returns the center point of the box as a [page:Vector3].
- </p>
- <h3>
- [method:Vector3 getParameter]( [param:Vector3 point], [param:Vector3 target] )
- </h3>
- <p>
- [page:Vector3 point] - [page:Vector3].<br />
- [page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
- Returns a point as a proportion of this box's width, height and depth.
- </p>
- <h3>[method:Vector3 getSize]( [param:Vector3 target] )</h3>
- <p>
- [page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
- Returns the width, height and depth of this box.
- </p>
- <h3>[method:this intersect]( [param:Box3 box] )</h3>
- <p>
- [page:Box3 box] - Box to intersect with.<br /><br />
- Computes the intersection of this and [page:Box3 box], setting the upper
- bound of this box to the lesser of the two boxes' upper bounds and the
- lower bound of this box to the greater of the two boxes' lower bounds. If
- there's no overlap, makes this box empty.
- </p>
- <h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
- <p>
- [page:Box3 box] - Box to check for intersection against.<br /><br />
- Determines whether or not this box intersects [page:Box3 box].
- </p>
- <h3>[method:Boolean intersectsPlane]( [param:Plane plane] )</h3>
- <p>
- [page:Plane plane] - [page:Plane] to check for intersection against.<br /><br />
- Determines whether or not this box intersects [page:Plane plane].
- </p>
- <h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
- <p>
- [page:Sphere sphere] - [page:Sphere] to check for intersection against.<br /><br />
- Determines whether or not this box intersects [page:Sphere sphere].
- </p>
- <h3>[method:Boolean intersectsTriangle]( [param:Triangle triangle] )</h3>
- <p>
- [page:Triangle triangle] - [page:Triangle] to check for intersection
- against.<br /><br />
- Determines whether or not this box intersects [page:Triangle triangle].
- </p>
- <h3>[method:Boolean isEmpty]()</h3>
- <p>
- Returns true if this box includes zero points within its bounds.<br />
- Note that a box with equal lower and upper bounds still includes one
- point, the one both bounds share.
- </p>
- <h3>[method:this makeEmpty]()</h3>
- <p>Makes this box empty.</p>
- <h3>[method:this set]( [param:Vector3 min], [param:Vector3 max] )</h3>
- <p>
- [page:Vector3 min] - [page:Vector3] representing the lower (x, y, z)
- boundary of the box.<br />
- [page:Vector3 max] - [page:Vector3] representing the upper (x, y, z)
- boundary of the box.<br /><br />
- Sets the lower and upper (x, y, z) boundaries of this box.<br />
- Please note that this method only copies the values from the given
- objects.
- </p>
- <h3>[method:this setFromArray]( [param:Array array] )</h3>
- <p>
- array -- An array of position data that the resulting box will envelop.<br /><br />
- Sets the upper and lower bounds of this box to include all of the data in
- `array`.
- </p>
- <h3>
- [method:this setFromBufferAttribute]( [param:BufferAttribute attribute] )
- </h3>
- <p>
- [page:BufferAttribute attribute] - A buffer attribute of position data
- that the resulting box will envelop.<br /><br />
- Sets the upper and lower bounds of this box to include all of the data in
- [page:BufferAttribute attribute].
- </p>
- <h3>
- [method:this setFromCenterAndSize]( [param:Vector3 center], [param:Vector3 size] )
- </h3>
- <p>
- [page:Vector3 center], - Desired center position of the box. <br />
- [page:Vector3 size] - Desired x, y and z dimensions of the box.<br /><br />
- Centers this box on [page:Vector3 center] and sets this box's width,
- height and depth to the values specified <br />
- in [page:Vector3 size]
- </p>
- <h3>
- [method:this setFromObject]( [param:Object3D object], [param:Boolean precise] )
- </h3>
- <p>
- [page:Object3D object] - [page:Object3D] to compute the bounding box
- of.<br />
- precise - (optional) compute the smallest world-axis-aligned bounding box
- at the expense of more computation. Default is false.<br /><br />
- Computes the world-axis-aligned bounding box of an [page:Object3D]
- (including its children), accounting for the object's, and children's,
- world transforms. The function may result in a larger box than strictly
- necessary.
- </p>
- <h3>[method:this setFromPoints]( [param:Array points] )</h3>
- <p>
- [page:Array points] - Array of [page:Vector3 Vector3s] that the resulting
- box will contain.<br /><br />
- Sets the upper and lower bounds of this box to include all of the points
- in [page:Array points].
- </p>
- <h3>[method:this translate]( [param:Vector3 offset] )</h3>
- <p>
- [page:Vector3 offset] - Direction and distance of offset.<br /><br />
- Adds [page:Vector3 offset] to both the upper and lower bounds of this box,
- effectively moving this box [page:Vector3 offset] units in 3D space.
- </p>
- <h3>[method:this union]( [param:Box3 box] )</h3>
- <p>
- [page:Box3 box] - Box that will be unioned with this box.<br /><br />
- Computes the union of this box and [page:Box3 box], setting the upper
- bound of this box to the greater of the two boxes' upper bounds and the
- lower bound of this box to the lesser of the two boxes' lower bounds.
- </p>
- <h2>Source</h2>
- <p>
- [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
- </p>
- </body>
- </html>
|