You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
182 lines
6.5 KiB
182 lines
6.5 KiB
<!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">
|
|
A two dimensional surface that extends infinitely in 3d space, represented in [link:http://mathworld.wolfram.com/HessianNormalForm.html Hessian normal form]
|
|
by a unit length normal vector and a constant.
|
|
</p>
|
|
|
|
|
|
<h2>Constructor</h2>
|
|
|
|
|
|
<h3>[name]( [param:Vector3 normal], [param:Float constant] )</h3>
|
|
<p>
|
|
[page:Vector3 normal] - (optional) a unit length [page:Vector3] defining the normal of the plane. Default is *(1, 0, 0)*.<br />
|
|
[page:Float constant] - (optional) the signed distance from the origin to the plane. Default is `0`.
|
|
</p>
|
|
|
|
|
|
<h2>Properties</h2>
|
|
|
|
<h3>[property:Boolean isPlane]</h3>
|
|
<p>
|
|
Read-only flag to check if a given object is of type [name].
|
|
</p>
|
|
|
|
<h3>[property:Vector3 normal]</h3>
|
|
|
|
<h3>[property:Float constant]</h3>
|
|
|
|
<h2>Methods</h2>
|
|
|
|
<h3>[method:this applyMatrix4]( [param:Matrix4 matrix], [param:Matrix3 optionalNormalMatrix] )</h3>
|
|
<p>
|
|
[page:Matrix4 matrix] - the [Page:Matrix4] to apply.<br />
|
|
[page:Matrix3 optionalNormalMatrix] - (optional) pre-computed normal [Page:Matrix3] of the Matrix4 being applied.<br /><br />
|
|
|
|
Apply a Matrix4 to the plane. The matrix must be an affine, homogeneous transform.<br />
|
|
If supplying an [page:Matrix3 optionalNormalMatrix], it can be created like so:
|
|
<code>
|
|
const optionalNormalMatrix = new THREE.Matrix3().getNormalMatrix( matrix );
|
|
</code>
|
|
</p>
|
|
|
|
<h3>[method:Plane clone]()</h3>
|
|
<p>Returns a new plane with the same [page:.normal normal] and [page:.constant constant] as this one.</p>
|
|
|
|
<h3>[method:Vector3 coplanarPoint]( [param:Vector3 target] )</h3>
|
|
<p>
|
|
[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
|
|
|
|
Returns a [page:Vector3] coplanar to the plane, by calculating the projection of the
|
|
normal vector at the origin onto the plane.
|
|
</p>
|
|
|
|
<h3>[method:this copy]( [param:Plane plane] )</h3>
|
|
<p>
|
|
Copies the values of the passed plane's [page:.normal normal] and [page:.constant constant]
|
|
properties to this plane.
|
|
</p>
|
|
|
|
<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
|
|
<p>Returns the signed distance from the [page:Vector3 point] to the plane.</p>
|
|
|
|
<h3>[method:Float distanceToSphere]( [param:Sphere sphere] )</h3>
|
|
<p>Returns the signed distance from the [page:Sphere sphere] to the plane.</p>
|
|
|
|
<h3>[method:Boolean equals]( [param:Plane plane] )</h3>
|
|
<p>
|
|
Checks to see if two planes are equal (their [page:.normal normal] and
|
|
[page:.constant constant] properties match).
|
|
</p>
|
|
|
|
<h3>[method:Vector3 intersectLine]( [param:Line3 line], [param:Vector3 target] )</h3>
|
|
<p>
|
|
[page:Line3 line] - the [page:Line3] to check for intersection.<br />
|
|
[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
|
|
|
|
Returns the intersection point of the passed line and the plane. Returns null
|
|
if the line does not intersect. Returns the line's starting point if the line is
|
|
coplanar with the plane.
|
|
</p>
|
|
|
|
<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
|
|
<p>
|
|
[page:Box3 box] - the [page:Box3] to check for intersection.<br /><br />
|
|
|
|
Determines whether or not this plane intersects [page:Box3 box].
|
|
</p>
|
|
|
|
<h3>[method:Boolean intersectsLine]( [param:Line3 line] )</h3>
|
|
<p>
|
|
[page:Line3 line] - the [page:Line3] to check for intersection.<br /><br />
|
|
|
|
Tests whether a line segment intersects with (passes through) the plane.
|
|
</p>
|
|
|
|
<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
|
|
<p>
|
|
[page:Sphere sphere] - the [page:Sphere] to check for intersection.<br /><br />
|
|
|
|
Determines whether or not this plane intersects [page:Sphere sphere].
|
|
</p>
|
|
|
|
<h3>[method:this negate]()</h3>
|
|
<p>
|
|
Negates both the normal vector and the constant.
|
|
</p>
|
|
|
|
<h3>[method:this normalize]()</h3>
|
|
<p>
|
|
Normalizes the [page:.normal normal] vector, and adjusts the [page:.constant constant]
|
|
value accordingly.
|
|
</p>
|
|
|
|
<h3>[method:Vector3 projectPoint]( [param:Vector3 point], [param:Vector3 target] )</h3>
|
|
<p>
|
|
[page:Vector3 point] - the [page:Vector3] to project onto the plane.<br />
|
|
[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
|
|
|
|
Projects a [page:Vector3 point] onto the plane.
|
|
</p>
|
|
|
|
<h3>[method:this set]( [param:Vector3 normal], [param:Float constant] )</h3>
|
|
<p>
|
|
[page:Vector3 normal] - a unit length [page:Vector3] defining the normal of the plane.<br />
|
|
[page:Float constant] - the signed distance from the origin to the plane. Default is `0`.<br /><br />
|
|
|
|
Sets this plane's [page:.normal normal] and [page:.constant constant] properties by copying the values from the given normal.
|
|
</p>
|
|
|
|
<h3>[method:this setComponents]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )</h3>
|
|
<p>
|
|
[page:Float x] - x value of the unit length normal vector.<br />
|
|
[page:Float y] - y value of the unit length normal vector.<br />
|
|
[page:Float z] - z value of the unit length normal vector.<br />
|
|
[page:Float w] - the value of the plane's [page:.constant constant] property.<br /><br />
|
|
|
|
Set the individual components that define the plane.
|
|
</p>
|
|
|
|
<h3>[method:this setFromCoplanarPoints]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] )</h3>
|
|
<p>
|
|
[page:Vector3 a] - first point on the plane.<br />
|
|
[page:Vector3 b] - second point on the plane.<br />
|
|
[page:Vector3 c] - third point on the plane.<br /><br />
|
|
|
|
Defines the plane based on the 3 provided points. The winding order is assumed to be counter-clockwise,
|
|
and determines the direction of the [page:.normal normal].
|
|
</p>
|
|
|
|
<h3>[method:this setFromNormalAndCoplanarPoint]( [param:Vector3 normal], [param:Vector3 point] )</h3>
|
|
<p>
|
|
[page:Vector3 normal] - a unit length [page:Vector3] defining the normal of the plane.<br />
|
|
[page:Vector3 point] - [page:Vector3]<br /><br />
|
|
|
|
Sets the plane's properties as defined by a [page:Vector3 normal] and an arbitrary coplanar [page:Vector3 point].
|
|
</p>
|
|
|
|
<h3>[method:this translate]( [param:Vector3 offset] )</h3>
|
|
<p>
|
|
[page:Vector3 offset] - the amount to move the plane by.<br /><br />
|
|
|
|
Translates the plane by the distance defined by the [page:Vector3 offset] vector.
|
|
Note that this only affects the plane constant and will not affect the normal vector.
|
|
</p>
|
|
|
|
<h2>Source</h2>
|
|
|
|
<p>
|
|
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
|
|
</p>
|
|
</body>
|
|
</html>
|
|
|