UNPKG

@animech-public/playcanvas

Version:
2 lines (1 loc) 669 B
import{Vec3 as t}from"../math/vec3.js";const r=new t,s=new t;class i{constructor(r=new t,s=.5){this.center=void 0,this.radius=void 0,this.center=r,this.radius=s}containsPoint(t){const s=r.sub2(t,this.center).lengthSq(),i=this.radius;return s<i*i}intersectsRay(t,i){const n=r.copy(t.origin).sub(this.center),e=n.dot(s.copy(t.direction).normalize()),o=n.dot(n)-this.radius*this.radius;if(o>0&&e>0)return!1;const c=e*e-o;if(c<0)return!1;const a=Math.abs(-e-Math.sqrt(c));return i&&i.copy(t.direction).mulScalar(a).add(t.origin),!0}intersectsBoundingSphere(t){r.sub2(t.center,this.center);const s=t.radius+this.radius;return r.lengthSq()<=s*s}}export{i as BoundingSphere};