UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

2 lines (1 loc) 1.9 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var a,t,r,e,n=require("./Vector3.js"),i=require("../glmatrix/mat4.js"),s=require("../glmatrix/vec3.js"),o=require("../glmatrix/vec4.js"),l=function(a,t){this.normal=a||new n.default(0,1,0),this.distance=t||0};l.prototype={constructor:l,distanceToPoint:function(a){return s.default.dot(a.array,this.normal.array)-this.distance},projectPoint:function(a,t){t||(t=new n.default);var r=this.distanceToPoint(a);return s.default.scaleAndAdd(t.array,a.array,this.normal.array,-r),t._dirty=!0,t},normalize:function(){var a=1/s.default.len(this.normal.array);s.default.scale(this.normal.array,a),this.distance*=a},intersectFrustum:function(a){for(var t=a.vertices,r=this.normal.array,e=s.default.dot(t[0].array,r)>this.distance,n=1;n<8;n++)if(s.default.dot(t[n].array,r)>this.distance!=e)return!0},intersectLine:(e=s.default.create(),function(a,t,r){var i=this.distanceToPoint(a),o=this.distanceToPoint(t);if(i>0&&o>0||i<0&&o<0)return null;var l=this.normal.array,d=this.distance,u=a.array;s.default.sub(e,t.array,a.array),s.default.normalize(e,e);var c=s.default.dot(l,e);if(0===c)return null;r||(r=new n.default);var f=(s.default.dot(l,u)-d)/c;return s.default.scaleAndAdd(r.array,u,e,-f),r._dirty=!0,r}),applyTransform:(a=i.default.create(),t=o.default.create(),r=o.default.create(),r[3]=1,function(e){e=e.array,s.default.scale(r,this.normal.array,this.distance),o.default.transformMat4(r,r,e),this.distance=s.default.dot(r,this.normal.array),i.default.invert(a,e),i.default.transpose(a,a),t[3]=0,s.default.copy(t,this.normal.array),o.default.transformMat4(t,t,a),s.default.copy(this.normal.array,t)}),copy:function(a){s.default.copy(this.normal.array,a.normal.array),this.normal._dirty=!0,this.distance=a.distance},clone:function(){var a=new l;return a.copy(this),a}};var d=l;exports.default=d;