UNPKG

@animech-public/playcanvas

Version:
2 lines (1 loc) 715 B
import{Vec3 as t}from"../math/vec3.js";class i{constructor(i=t.UP,o=0){this.normal=new t,this.distance=void 0,this.normal.copy(i),this.distance=o}setFromPointNormal(t,i){return this.normal.copy(i),this.distance=-this.normal.dot(t),this}intersectsLine(t,i,o){const n=this.distance,r=this.normal.dot(t)+n,s=r/(r-(this.normal.dot(i)+n)),c=s>=0&&s<=1;return c&&o&&o.lerp(t,i,s),c}intersectsRay(t,i){const o=this.normal.dot(t.direction);if(0===o)return!1;const n=-(this.normal.dot(t.origin)+this.distance)/o;return n>=0&&i&&i.copy(t.direction).mulScalar(n).add(t.origin),n>=0}copy(t){return this.normal.copy(t.normal),this.distance=t.distance,this}clone(){return(new(0,this.constructor)).copy(this)}}export{i as Plane};