@equinor/videx-linear-algebra 1.0.9 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -227,7 +227,7 @@ export declare function mix<T extends VectorLike>(a: T, b: VectorLike, t: number
227
227
  * @example
228
228
  * modify([1.12, 1.55], Math.round, new Array(2)); // Returns: [1, 2]
229
229
  */
230
- export declare function modify<T extends VectorLike>(a: T, modifier: ((val: number, index: number) => number), target?: T): T;
230
+ export declare function modify<T extends VectorLike>(a: T, modifier: (_arg0: number, _arg1: number) => number, target?: T): T;
231
231
  /**
232
232
  * Returns true if all elements of a vector is zero, otherwise returns false.
233
233
  * @param a Target vector
@@ -273,10 +273,13 @@ export declare function reshape(array: number[], dimensions: number): number[][]
273
273
  * @param {VectorLike} a - Vertex A of the triangle [x, y].
274
274
  * @param {VectorLike} b - Vertex B of the triangle [x, y].
275
275
  * @param {VectorLike} c - Vertex C of the triangle [x, y].
276
- * @param {number} tolerance - Precision tolerance for handling points near edges (default: 0.0001).
276
+ * @param {number} inwardAdjustment - Scales inward adjustment relative to distance for edge handling (default: 1e-6).
277
277
  * @returns {boolean} True if the point is strictly inside the triangle; otherwise, false.
278
+ *
279
+ * @example
280
+ * isPointInTriangle([0.25, 0.25], [0, 0], [1, 0], [0, 1]); // Returns true
278
281
  */
279
- export declare function isPointInTriangle(p: VectorLike, a: VectorLike, b: VectorLike, c: VectorLike, tolerance?: number): boolean;
282
+ export declare function isPointInTriangle(p: VectorLike, a: VectorLike, b: VectorLike, c: VectorLike, inwardAdjustment?: number): boolean;
280
283
  /**
281
284
  * Wrapper function for isPointInTriangle which allows an array of vectors.
282
285
  * @returns {boolean} True if the point is strictly inside the triangle; otherwise, false.
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- import{clamp as clamp$1,step as step$1}from"@equinor/videx-math";function copy(source,target){for(var i=0;i<source.length;i++)target[i]=source[i];return target}function add(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]+b[i];return target}function addAll(vectors,target){void 0===target&&(target=vectors[0]),copy(vectors[0],target);for(var m=1;m<vectors.length;m++)for(var n=0;n<target.length;n++)target[n]+=vectors[m][n];return target}function sub(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]-b[i];return target}function subAll(a,vectors,target){void 0===target&&(target=a),copy(a,target);for(var m=0;m<vectors.length;m++)for(var n=0;n<target.length;n++)target[n]-=vectors[m][n];return target}function scale(a,factor,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]*factor;return target}function sumsqr(a){for(var sum=0,i=0;i<a.length;i++)sum+=Math.pow(a[i],2);return sum}function magnitude(a){var sq=sumsqr(a);return 0===sq?sq:Math.sqrt(sq)}function normalize(a,target){void 0===target&&(target=a);var len=magnitude(a);return 0===len?fill(0,target):scale(a,1/len,target)}function fill(value,target){for(var i=0;i<target.length;i++)target[i]=value;return target}function dir(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=b[i]-a[i];return target}function dist(a,b){for(var sq=0,i=0;i<a.length;i++)sq+=Math.pow(b[i]-a[i],2);return 0===sq?sq:Math.sqrt(sq)}function dot(a,b){for(var sum=0,i=0;i<a.length;i++)sum+=a[i]*b[i];return sum}function cross(a,b,target){void 0===target&&(target=a);var y=a[2]*b[0]-a[0]*b[2],z=a[0]*b[1]-a[1]*b[0];return target[0]=a[1]*b[2]-a[2]*b[1],target[1]=y,target[2]=z,target}function triple(a,b,c){return dot(a,cross(b,c))}function clamp(a,min,max,target){void 0===min&&(min=0),void 0===max&&(max=1),void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=clamp$1(a[i],min,max);return target}function step(edges,x,target){void 0===target&&(target=edges);for(var i=0;i<edges.length;i++)target[i]=step$1(edges[i],x);return target}function mix(a,b,t,target){void 0===target&&(target=a);for(var n=clamp$1(t,0,1),m=1-n,i=0;i<a.length;i++)target[i]=a[i]*m+b[i]*n;return target}function modify(a,modifier,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=modifier(a[i],i);return target}function isZeroVector(a,epsilon){void 0===epsilon&&(epsilon=0),void 0===epsilon&&(epsilon=0);for(var i=0;i<a.length;i++)if(Math.abs(a[i])>epsilon)return!1;return!0}function reverse(vector){for(var temp,tempIdx,end=vector.length-1,i=0;i<Math.ceil(end/2);i++)temp=vector[tempIdx=end-i],vector[tempIdx]=vector[i],vector[i]=temp;return vector}function flatten(vectors){for(var output=[],m=0;m<vectors.length;m++)for(var n=0;n<vectors[m].length;n++)output.push(vectors[m][n]);return output}function reshape(array,dimensions){for(var output=[],i=0;i<array.length;i+=dimensions){for(var vector=new Array(dimensions),n=0;n<dimensions;n++)vector[n]=array[i+n];output.push(vector)}return output}function isPointInTriangle(p,a,b,c,tolerance){void 0===tolerance&&(tolerance=1e-4);var APx=p[0]-a[0],APy=p[1]-a[1],crossAB=(b[0]-a[0])*APy-(b[1]-a[1])*APx,signAB_AC=crossAB*((c[0]-a[0])*APy-(c[1]-a[1])*APx);if(Math.abs(signAB_AC)<tolerance||signAB_AC>0)return!1;var signAB_BC=crossAB*((c[0]-b[0])*(p[1]-b[1])-(c[1]-b[1])*(p[0]-b[0]));return!(Math.abs(signAB_BC)<tolerance||signAB_BC<0)}function isPointInTriangleArray(p,triangle,tolerance){return void 0===tolerance&&(tolerance=1e-4),isPointInTriangle(p,triangle[0],triangle[1],triangle[2],tolerance)}export{add,addAll,clamp,copy,cross,dir,dist,dot,fill,flatten,isPointInTriangle,isPointInTriangleArray,isZeroVector,magnitude,mix,modify,normalize,reshape,reverse,scale,step,sub,subAll,sumsqr,triple};
1
+ import{clamp as clamp$1,step as step$1}from"@equinor/videx-math";function copy(source,target){for(var i=0;i<source.length;i++)target[i]=source[i];return target}function add(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]+b[i];return target}function addAll(vectors,target){void 0===target&&(target=vectors[0]),copy(vectors[0],target);for(var m=1;m<vectors.length;m++)for(var n=0;n<target.length;n++)target[n]+=vectors[m][n];return target}function sub(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]-b[i];return target}function subAll(a,vectors,target){void 0===target&&(target=a),copy(a,target);for(var m=0;m<vectors.length;m++)for(var n=0;n<target.length;n++)target[n]-=vectors[m][n];return target}function scale(a,factor,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]*factor;return target}function sumsqr(a){for(var sum=0,i=0;i<a.length;i++)sum+=Math.pow(a[i],2);return sum}function magnitude(a){var sq=sumsqr(a);return 0===sq?sq:Math.sqrt(sq)}function normalize(a,target){void 0===target&&(target=a);var len=magnitude(a);return 0===len?fill(0,target):scale(a,1/len,target)}function fill(value,target){for(var i=0;i<target.length;i++)target[i]=value;return target}function dir(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=b[i]-a[i];return target}function dist(a,b){for(var sq=0,i=0;i<a.length;i++)sq+=Math.pow(b[i]-a[i],2);return 0===sq?sq:Math.sqrt(sq)}function dot(a,b){for(var sum=0,i=0;i<a.length;i++)sum+=a[i]*b[i];return sum}function cross(a,b,target){void 0===target&&(target=a);var y=a[2]*b[0]-a[0]*b[2],z=a[0]*b[1]-a[1]*b[0];return target[0]=a[1]*b[2]-a[2]*b[1],target[1]=y,target[2]=z,target}function triple(a,b,c){return dot(a,cross(b,c))}function clamp(a,min,max,target){void 0===min&&(min=0),void 0===max&&(max=1),void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=clamp$1(a[i],min,max);return target}function step(edges,x,target){void 0===target&&(target=edges);for(var i=0;i<edges.length;i++)target[i]=step$1(edges[i],x);return target}function mix(a,b,t,target){void 0===target&&(target=a);for(var n=clamp$1(t,0,1),m=1-n,i=0;i<a.length;i++)target[i]=a[i]*m+b[i]*n;return target}function modify(a,modifier,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=modifier(a[i],i);return target}function isZeroVector(a,epsilon){void 0===epsilon&&(epsilon=0),void 0===epsilon&&(epsilon=0);for(var i=0;i<a.length;i++)if(Math.abs(a[i])>epsilon)return!1;return!0}function reverse(vector){for(var temp,tempIdx,end=vector.length-1,i=0;i<Math.ceil(end/2);i++)temp=vector[tempIdx=end-i],vector[tempIdx]=vector[i],vector[i]=temp;return vector}function flatten(vectors){for(var output=[],m=0;m<vectors.length;m++)for(var n=0;n<vectors[m].length;n++)output.push(vectors[m][n]);return output}function reshape(array,dimensions){for(var output=[],i=0;i<array.length;i+=dimensions){for(var vector=new Array(dimensions),n=0;n<dimensions;n++)vector[n]=array[i+n];output.push(vector)}return output}function isPointInTriangle(p,a,b,c,inwardAdjustment){void 0===inwardAdjustment&&(inwardAdjustment=1e-6);var centerX=.33333*(a[0]+b[0]+c[0]),centerY=.33333*(a[1]+b[1]+c[1]),adjPx=p[0]+(centerX-p[0])*inwardAdjustment,adjPy=p[1]+(centerY-p[1])*inwardAdjustment,APx=adjPx-a[0],APy=adjPy-a[1],leftOfAB=(b[0]-a[0])*APy-(b[1]-a[1])*APx>0;return leftOfAB!==(c[0]-a[0])*APy-(c[1]-a[1])*APx>0&&leftOfAB===(c[0]-b[0])*(adjPy-b[1])-(c[1]-b[1])*(adjPx-b[0])>0}function isPointInTriangleArray(p,triangle,tolerance){return void 0===tolerance&&(tolerance=1e-4),isPointInTriangle(p,triangle[0],triangle[1],triangle[2],tolerance)}export{add,addAll,clamp,copy,cross,dir,dist,dot,fill,flatten,isPointInTriangle,isPointInTriangleArray,isZeroVector,magnitude,mix,modify,normalize,reshape,reverse,scale,step,sub,subAll,sumsqr,triple};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var videxMath=require("@equinor/videx-math");function copy(source,target){for(var i=0;i<source.length;i++)target[i]=source[i];return target}function scale(a,factor,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]*factor;return target}function sumsqr(a){for(var sum=0,i=0;i<a.length;i++)sum+=Math.pow(a[i],2);return sum}function magnitude(a){var sq=sumsqr(a);return 0===sq?sq:Math.sqrt(sq)}function fill(value,target){for(var i=0;i<target.length;i++)target[i]=value;return target}function dot(a,b){for(var sum=0,i=0;i<a.length;i++)sum+=a[i]*b[i];return sum}function cross(a,b,target){void 0===target&&(target=a);var y=a[2]*b[0]-a[0]*b[2],z=a[0]*b[1]-a[1]*b[0];return target[0]=a[1]*b[2]-a[2]*b[1],target[1]=y,target[2]=z,target}function isPointInTriangle(p,a,b,c,tolerance){void 0===tolerance&&(tolerance=1e-4);var APx=p[0]-a[0],APy=p[1]-a[1],crossAB=(b[0]-a[0])*APy-(b[1]-a[1])*APx,signAB_AC=crossAB*((c[0]-a[0])*APy-(c[1]-a[1])*APx);if(Math.abs(signAB_AC)<tolerance||signAB_AC>0)return!1;var signAB_BC=crossAB*((c[0]-b[0])*(p[1]-b[1])-(c[1]-b[1])*(p[0]-b[0]));return!(Math.abs(signAB_BC)<tolerance||signAB_BC<0)}exports.add=function(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]+b[i];return target},exports.addAll=function(vectors,target){void 0===target&&(target=vectors[0]),copy(vectors[0],target);for(var m=1;m<vectors.length;m++)for(var n=0;n<target.length;n++)target[n]+=vectors[m][n];return target},exports.clamp=function(a,min,max,target){void 0===min&&(min=0),void 0===max&&(max=1),void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=videxMath.clamp(a[i],min,max);return target},exports.copy=copy,exports.cross=cross,exports.dir=function(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=b[i]-a[i];return target},exports.dist=function(a,b){for(var sq=0,i=0;i<a.length;i++)sq+=Math.pow(b[i]-a[i],2);return 0===sq?sq:Math.sqrt(sq)},exports.dot=dot,exports.fill=fill,exports.flatten=function(vectors){for(var output=[],m=0;m<vectors.length;m++)for(var n=0;n<vectors[m].length;n++)output.push(vectors[m][n]);return output},exports.isPointInTriangle=isPointInTriangle,exports.isPointInTriangleArray=function(p,triangle,tolerance){return void 0===tolerance&&(tolerance=1e-4),isPointInTriangle(p,triangle[0],triangle[1],triangle[2],tolerance)},exports.isZeroVector=function(a,epsilon){void 0===epsilon&&(epsilon=0),void 0===epsilon&&(epsilon=0);for(var i=0;i<a.length;i++)if(Math.abs(a[i])>epsilon)return!1;return!0},exports.magnitude=magnitude,exports.mix=function(a,b,t,target){void 0===target&&(target=a);for(var n=videxMath.clamp(t,0,1),m=1-n,i=0;i<a.length;i++)target[i]=a[i]*m+b[i]*n;return target},exports.modify=function(a,modifier,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=modifier(a[i],i);return target},exports.normalize=function(a,target){void 0===target&&(target=a);var len=magnitude(a);return 0===len?fill(0,target):scale(a,1/len,target)},exports.reshape=function(array,dimensions){for(var output=[],i=0;i<array.length;i+=dimensions){for(var vector=new Array(dimensions),n=0;n<dimensions;n++)vector[n]=array[i+n];output.push(vector)}return output},exports.reverse=function(vector){for(var temp,tempIdx,end=vector.length-1,i=0;i<Math.ceil(end/2);i++)temp=vector[tempIdx=end-i],vector[tempIdx]=vector[i],vector[i]=temp;return vector},exports.scale=scale,exports.step=function(edges,x,target){void 0===target&&(target=edges);for(var i=0;i<edges.length;i++)target[i]=videxMath.step(edges[i],x);return target},exports.sub=function(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]-b[i];return target},exports.subAll=function(a,vectors,target){void 0===target&&(target=a),copy(a,target);for(var m=0;m<vectors.length;m++)for(var n=0;n<target.length;n++)target[n]-=vectors[m][n];return target},exports.sumsqr=sumsqr,exports.triple=function(a,b,c){return dot(a,cross(b,c))};
1
+ "use strict";var videxMath=require("@equinor/videx-math");function copy(source,target){for(var i=0;i<source.length;i++)target[i]=source[i];return target}function scale(a,factor,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]*factor;return target}function sumsqr(a){for(var sum=0,i=0;i<a.length;i++)sum+=Math.pow(a[i],2);return sum}function magnitude(a){var sq=sumsqr(a);return 0===sq?sq:Math.sqrt(sq)}function fill(value,target){for(var i=0;i<target.length;i++)target[i]=value;return target}function dot(a,b){for(var sum=0,i=0;i<a.length;i++)sum+=a[i]*b[i];return sum}function cross(a,b,target){void 0===target&&(target=a);var y=a[2]*b[0]-a[0]*b[2],z=a[0]*b[1]-a[1]*b[0];return target[0]=a[1]*b[2]-a[2]*b[1],target[1]=y,target[2]=z,target}function isPointInTriangle(p,a,b,c,inwardAdjustment){void 0===inwardAdjustment&&(inwardAdjustment=1e-6);var centerX=.33333*(a[0]+b[0]+c[0]),centerY=.33333*(a[1]+b[1]+c[1]),adjPx=p[0]+(centerX-p[0])*inwardAdjustment,adjPy=p[1]+(centerY-p[1])*inwardAdjustment,APx=adjPx-a[0],APy=adjPy-a[1],leftOfAB=(b[0]-a[0])*APy-(b[1]-a[1])*APx>0;return leftOfAB!==(c[0]-a[0])*APy-(c[1]-a[1])*APx>0&&leftOfAB===(c[0]-b[0])*(adjPy-b[1])-(c[1]-b[1])*(adjPx-b[0])>0}exports.add=function(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]+b[i];return target},exports.addAll=function(vectors,target){void 0===target&&(target=vectors[0]),copy(vectors[0],target);for(var m=1;m<vectors.length;m++)for(var n=0;n<target.length;n++)target[n]+=vectors[m][n];return target},exports.clamp=function(a,min,max,target){void 0===min&&(min=0),void 0===max&&(max=1),void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=videxMath.clamp(a[i],min,max);return target},exports.copy=copy,exports.cross=cross,exports.dir=function(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=b[i]-a[i];return target},exports.dist=function(a,b){for(var sq=0,i=0;i<a.length;i++)sq+=Math.pow(b[i]-a[i],2);return 0===sq?sq:Math.sqrt(sq)},exports.dot=dot,exports.fill=fill,exports.flatten=function(vectors){for(var output=[],m=0;m<vectors.length;m++)for(var n=0;n<vectors[m].length;n++)output.push(vectors[m][n]);return output},exports.isPointInTriangle=isPointInTriangle,exports.isPointInTriangleArray=function(p,triangle,tolerance){return void 0===tolerance&&(tolerance=1e-4),isPointInTriangle(p,triangle[0],triangle[1],triangle[2],tolerance)},exports.isZeroVector=function(a,epsilon){void 0===epsilon&&(epsilon=0),void 0===epsilon&&(epsilon=0);for(var i=0;i<a.length;i++)if(Math.abs(a[i])>epsilon)return!1;return!0},exports.magnitude=magnitude,exports.mix=function(a,b,t,target){void 0===target&&(target=a);for(var n=videxMath.clamp(t,0,1),m=1-n,i=0;i<a.length;i++)target[i]=a[i]*m+b[i]*n;return target},exports.modify=function(a,modifier,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=modifier(a[i],i);return target},exports.normalize=function(a,target){void 0===target&&(target=a);var len=magnitude(a);return 0===len?fill(0,target):scale(a,1/len,target)},exports.reshape=function(array,dimensions){for(var output=[],i=0;i<array.length;i+=dimensions){for(var vector=new Array(dimensions),n=0;n<dimensions;n++)vector[n]=array[i+n];output.push(vector)}return output},exports.reverse=function(vector){for(var temp,tempIdx,end=vector.length-1,i=0;i<Math.ceil(end/2);i++)temp=vector[tempIdx=end-i],vector[tempIdx]=vector[i],vector[i]=temp;return vector},exports.scale=scale,exports.step=function(edges,x,target){void 0===target&&(target=edges);for(var i=0;i<edges.length;i++)target[i]=videxMath.step(edges[i],x);return target},exports.sub=function(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]-b[i];return target},exports.subAll=function(a,vectors,target){void 0===target&&(target=a),copy(a,target);for(var m=0;m<vectors.length;m++)for(var n=0;n<target.length;n++)target[n]-=vectors[m][n];return target},exports.sumsqr=sumsqr,exports.triple=function(a,b,c){return dot(a,cross(b,c))};
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- !function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports):"function"==typeof define&&define.amd?define(["exports"],factory):factory((global=global||self).Vector2={})}(this,(function(exports){"use strict";function clamp(value,min=0,max=1){return value<min?min:value>max?max:value}function step(edge,x){return x>=edge?1:0}function copy(source,target){for(var i=0;i<source.length;i++)target[i]=source[i];return target}function scale(a,factor,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]*factor;return target}function sumsqr(a){for(var sum=0,i=0;i<a.length;i++)sum+=Math.pow(a[i],2);return sum}function magnitude(a){var sq=sumsqr(a);return 0===sq?sq:Math.sqrt(sq)}function fill(value,target){for(var i=0;i<target.length;i++)target[i]=value;return target}function dot(a,b){for(var sum=0,i=0;i<a.length;i++)sum+=a[i]*b[i];return sum}function cross(a,b,target){void 0===target&&(target=a);var y=a[2]*b[0]-a[0]*b[2],z=a[0]*b[1]-a[1]*b[0];return target[0]=a[1]*b[2]-a[2]*b[1],target[1]=y,target[2]=z,target}function isPointInTriangle(p,a,b,c,tolerance){void 0===tolerance&&(tolerance=1e-4);var APx=p[0]-a[0],APy=p[1]-a[1],crossAB=(b[0]-a[0])*APy-(b[1]-a[1])*APx,signAB_AC=crossAB*((c[0]-a[0])*APy-(c[1]-a[1])*APx);if(Math.abs(signAB_AC)<tolerance||signAB_AC>0)return!1;var signAB_BC=crossAB*((c[0]-b[0])*(p[1]-b[1])-(c[1]-b[1])*(p[0]-b[0]));return!(Math.abs(signAB_BC)<tolerance||signAB_BC<0)}exports.add=function(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]+b[i];return target},exports.addAll=function(vectors,target){void 0===target&&(target=vectors[0]),copy(vectors[0],target);for(var m=1;m<vectors.length;m++)for(var n=0;n<target.length;n++)target[n]+=vectors[m][n];return target},exports.clamp=function(a,min,max,target){void 0===min&&(min=0),void 0===max&&(max=1),void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=clamp(a[i],min,max);return target},exports.copy=copy,exports.cross=cross,exports.dir=function(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=b[i]-a[i];return target},exports.dist=function(a,b){for(var sq=0,i=0;i<a.length;i++)sq+=Math.pow(b[i]-a[i],2);return 0===sq?sq:Math.sqrt(sq)},exports.dot=dot,exports.fill=fill,exports.flatten=function(vectors){for(var output=[],m=0;m<vectors.length;m++)for(var n=0;n<vectors[m].length;n++)output.push(vectors[m][n]);return output},exports.isPointInTriangle=isPointInTriangle,exports.isPointInTriangleArray=function(p,triangle,tolerance){return void 0===tolerance&&(tolerance=1e-4),isPointInTriangle(p,triangle[0],triangle[1],triangle[2],tolerance)},exports.isZeroVector=function(a,epsilon){void 0===epsilon&&(epsilon=0),void 0===epsilon&&(epsilon=0);for(var i=0;i<a.length;i++)if(Math.abs(a[i])>epsilon)return!1;return!0},exports.magnitude=magnitude,exports.mix=function(a,b,t,target){void 0===target&&(target=a);for(var n=clamp(t,0,1),m=1-n,i=0;i<a.length;i++)target[i]=a[i]*m+b[i]*n;return target},exports.modify=function(a,modifier,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=modifier(a[i],i);return target},exports.normalize=function(a,target){void 0===target&&(target=a);var len=magnitude(a);return 0===len?fill(0,target):scale(a,1/len,target)},exports.reshape=function(array,dimensions){for(var output=[],i=0;i<array.length;i+=dimensions){for(var vector=new Array(dimensions),n=0;n<dimensions;n++)vector[n]=array[i+n];output.push(vector)}return output},exports.reverse=function(vector){for(var temp,tempIdx,end=vector.length-1,i=0;i<Math.ceil(end/2);i++)temp=vector[tempIdx=end-i],vector[tempIdx]=vector[i],vector[i]=temp;return vector},exports.scale=scale,exports.step=function(edges,x,target){void 0===target&&(target=edges);for(var i=0;i<edges.length;i++)target[i]=step(edges[i],x);return target},exports.sub=function(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]-b[i];return target},exports.subAll=function(a,vectors,target){void 0===target&&(target=a),copy(a,target);for(var m=0;m<vectors.length;m++)for(var n=0;n<target.length;n++)target[n]-=vectors[m][n];return target},exports.sumsqr=sumsqr,exports.triple=function(a,b,c){return dot(a,cross(b,c))},Object.defineProperty(exports,"__esModule",{value:!0})}));
1
+ !function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports):"function"==typeof define&&define.amd?define(["exports"],factory):factory((global="undefined"!=typeof globalThis?globalThis:global||self)["videx-linear-algebra"]={})}(this,(function(exports){"use strict";function clamp$1(value,min=0,max=1){return value<min?min:value>max?max:value}function step$1(edge,x){return x>=edge?1:0}function copy(source,target){for(var i=0;i<source.length;i++)target[i]=source[i];return target}function scale(a,factor,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]*factor;return target}function sumsqr(a){for(var sum=0,i=0;i<a.length;i++)sum+=Math.pow(a[i],2);return sum}function magnitude(a){var sq=sumsqr(a);return 0===sq?sq:Math.sqrt(sq)}function fill(value,target){for(var i=0;i<target.length;i++)target[i]=value;return target}function dot(a,b){for(var sum=0,i=0;i<a.length;i++)sum+=a[i]*b[i];return sum}function cross(a,b,target){void 0===target&&(target=a);var y=a[2]*b[0]-a[0]*b[2],z=a[0]*b[1]-a[1]*b[0];return target[0]=a[1]*b[2]-a[2]*b[1],target[1]=y,target[2]=z,target}function isPointInTriangle(p,a,b,c,inwardAdjustment){void 0===inwardAdjustment&&(inwardAdjustment=1e-6);var centerX=.33333*(a[0]+b[0]+c[0]),centerY=.33333*(a[1]+b[1]+c[1]),adjPx=p[0]+(centerX-p[0])*inwardAdjustment,adjPy=p[1]+(centerY-p[1])*inwardAdjustment,APx=adjPx-a[0],APy=adjPy-a[1],leftOfAB=(b[0]-a[0])*APy-(b[1]-a[1])*APx>0;return leftOfAB!==(c[0]-a[0])*APy-(c[1]-a[1])*APx>0&&leftOfAB===(c[0]-b[0])*(adjPy-b[1])-(c[1]-b[1])*(adjPx-b[0])>0}exports.add=function(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]+b[i];return target},exports.addAll=function(vectors,target){void 0===target&&(target=vectors[0]),copy(vectors[0],target);for(var m=1;m<vectors.length;m++)for(var n=0;n<target.length;n++)target[n]+=vectors[m][n];return target},exports.clamp=function(a,min,max,target){void 0===min&&(min=0),void 0===max&&(max=1),void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=clamp$1(a[i],min,max);return target},exports.copy=copy,exports.cross=cross,exports.dir=function(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=b[i]-a[i];return target},exports.dist=function(a,b){for(var sq=0,i=0;i<a.length;i++)sq+=Math.pow(b[i]-a[i],2);return 0===sq?sq:Math.sqrt(sq)},exports.dot=dot,exports.fill=fill,exports.flatten=function(vectors){for(var output=[],m=0;m<vectors.length;m++)for(var n=0;n<vectors[m].length;n++)output.push(vectors[m][n]);return output},exports.isPointInTriangle=isPointInTriangle,exports.isPointInTriangleArray=function(p,triangle,tolerance){return void 0===tolerance&&(tolerance=1e-4),isPointInTriangle(p,triangle[0],triangle[1],triangle[2],tolerance)},exports.isZeroVector=function(a,epsilon){void 0===epsilon&&(epsilon=0),void 0===epsilon&&(epsilon=0);for(var i=0;i<a.length;i++)if(Math.abs(a[i])>epsilon)return!1;return!0},exports.magnitude=magnitude,exports.mix=function(a,b,t,target){void 0===target&&(target=a);for(var n=clamp$1(t,0,1),m=1-n,i=0;i<a.length;i++)target[i]=a[i]*m+b[i]*n;return target},exports.modify=function(a,modifier,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=modifier(a[i],i);return target},exports.normalize=function(a,target){void 0===target&&(target=a);var len=magnitude(a);return 0===len?fill(0,target):scale(a,1/len,target)},exports.reshape=function(array,dimensions){for(var output=[],i=0;i<array.length;i+=dimensions){for(var vector=new Array(dimensions),n=0;n<dimensions;n++)vector[n]=array[i+n];output.push(vector)}return output},exports.reverse=function(vector){for(var temp,tempIdx,end=vector.length-1,i=0;i<Math.ceil(end/2);i++)temp=vector[tempIdx=end-i],vector[tempIdx]=vector[i],vector[i]=temp;return vector},exports.scale=scale,exports.step=function(edges,x,target){void 0===target&&(target=edges);for(var i=0;i<edges.length;i++)target[i]=step$1(edges[i],x);return target},exports.sub=function(a,b,target){void 0===target&&(target=a);for(var i=0;i<a.length;i++)target[i]=a[i]-b[i];return target},exports.subAll=function(a,vectors,target){void 0===target&&(target=a),copy(a,target);for(var m=0;m<vectors.length;m++)for(var n=0;n<target.length;n++)target[n]-=vectors[m][n];return target},exports.sumsqr=sumsqr,exports.triple=function(a,b,c){return dot(a,cross(b,c))}}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equinor/videx-linear-algebra",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "A library with linear algebra used by Videx.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -18,7 +18,8 @@
18
18
  "test:watch": "jest --watchAll",
19
19
  "predocs": "rimraf docs",
20
20
  "docs": "typedoc --out docs src",
21
- "postdocs": "copyfiles images/* docs && copyfiles .nojekyll docs"
21
+ "postdocs": "copyfiles images/* docs && copyfiles .nojekyll docs",
22
+ "lint": "eslint --color"
22
23
  },
23
24
  "repository": {
24
25
  "type": "git",
@@ -40,17 +41,18 @@
40
41
  "homepage": "https://github.com/equinor/videx-linear-algebra#readme",
41
42
  "devDependencies": {
42
43
  "@equinor/videx-vector2": "^1.0.40",
43
- "@types/jest": "^25.1.1",
44
+ "@types/jest": "^29.5.14",
44
45
  "copyfiles": "^2.2.0",
45
- "eslint": "^6.8.0",
46
- "eslint-config-airbnb-base": "^14.0.0",
47
- "eslint-plugin-import": "^2.20.1",
48
- "jest": "^29.5.0",
46
+ "@rollup/plugin-node-resolve": "^15.2.3",
47
+ "@rollup/plugin-terser": "^0.4.4",
48
+ "@rollup/plugin-typescript": "^11.1.6",
49
+ "rollup": "^3.29.4",
50
+ "eslint": "^9.14.0",
51
+ "eslint-plugin-import": "^2.31.0",
52
+ "@typescript-eslint/eslint-plugin": "^8.13.0",
53
+ "@typescript-eslint/parser": "^8.13.0",
54
+ "jest": "^29.7.0",
49
55
  "rimraf": "^3.0.1",
50
- "rollup": "^1.31.0",
51
- "rollup-plugin-node-resolve": "^5.2.0",
52
- "rollup-plugin-terser": "^5.2.0",
53
- "rollup-plugin-typescript2": "^0.34.1",
54
56
  "ts-jest": "^29.1.0",
55
57
  "typedoc": "^0.24.8",
56
58
  "typescript": "^4.7.4"