
Security News
Feross on TBPN: How North Korea Hijacked Axios
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.
@mathools/geometry
Advanced tools
@mathools geometry module for vector calcs
For install library is easy to install by cloning the repo. You can install trhought npm too: Local installation
npm install @mathools/geometry
Global installation
npm install -g @mathools/geometry
Magnitude mag([Vector|arguments]) =>
Decibels mag2decibel(magnitude) =>
Vector Vector([arguments]) extends Array
Vector class extends Array with some utils function for Vectors calcs. Function that are allowed only with Vectors takes Vector|arguments as parameter, and automatically convert Array, Vector or arguments Array to a usable Vector. Every function that doesnt return a value, return the Vector object. Every function has both static and instance scope, and can be called in two way: Vector.function( myVector, arguments ) or myVector.function( arguments ).
NB: [arguments] isn't an Array of numbers but the Array argument of the function, so it is possible to call a function in three way: function(0,1,2,3) or function([0,1,2,3]) or function(new Vector(0,1,2,3)) and the result are the same
has(index,fallback) => return the index-th-component of the vector if present, fallback otherwise [scalar]mag(magnitude) => if no magnitude return the Vector's magnitude [scalar], else set it and return the Vectordecibel() => convert the Vector's magnitude to decibels [scalar]addMag(value) => add the value to the magnitudesubMag(value) => subtract the value from the magnitudelimit(limit) => constrain the magnitude to be less than limitset([arguments]) => set the components of the VecotrselfMap(callback(currValue,index,array)) => set the Vector's components with the results of calling callback function on every component (Array.map + Vector.set)add([Vector|arguments]) => add the arguments to the Vector's componentssub([Vector|arguments]) => subtract the arguments to the Vector's componentsmul([arguments]) => multilpy each component with the argumentsdiv([arguments]) => divide each component with the argumentsinvert() => set -component of each componentinverse() => set 1/component of each componentnormalize() => set the magnitude to 1 (Normalized Vector)dot(Vector|arguments) => return the dot product between two Vectors ()lerp(value, [Vector|arguments]) => subract the arguments and multiply it by valuecopy() => return a copy of the Vectorabs() => set each component to his absolute valuesign() => set each component to his sign valuecut(i) => set to 0 the ith-component of the vectorlead(i) => set to component/magnitude the ith-component of the vectorproject(i) => set 0 all components except the ith-component that is setted as magnituderound(decimals) => round all components with decimals approximationfloor(decimals) => floor all components with decimals approximationceil(decimals) => ceil all components with decimals approximationrandom(decimals) => set every component to random value with decimals approximationsetAngle(angleXY, angleXZ) => set angle of the Vectorrotate(angleXY, angleXZ) => rotate of an angle the Vectorangle(i) => return a the angle of the ith-component with the 0th-component axis (X-Axis) [scalar]angle2(i,j) => return the angle of the ith-component with the j-th component axis [scalar]angleBetween(Vector|arguments) => return the angle between two Vector [scalar]solidAngle() => return an Array of angles [ angleXY, angleXZ, angleYZ ] [scalar[]]spaceAngle() => return an Array of angles [ angleX, angleY, angleZ ] [scalar[]]distance(Vector|arguments) => return the distance between two Vectors [scalar]orthographic(scaleX,scaleZ) => orthographic projection - set the Vector's 3D components to [ x*scaleX, y*scaleZ, 0 ]perspective() => perspective - set the Vector's 3D components to [ x/z, y/z, 0 ]If you like the project feel free to contact me on my .
Something gone wrong? Feel free to rise an issue!
Did you like this project and it was usefull? Help me improve my work:
FAQs
some very usefull math tools
The npm package @mathools/geometry receives a total of 2 weekly downloads. As such, @mathools/geometry popularity was classified as not popular.
We found that @mathools/geometry demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.

Security News
OpenSSF has issued a high-severity advisory warning open source developers of an active Slack-based campaign using impersonation to deliver malware.

Research
/Security News
Malicious packages published to npm, PyPI, Go Modules, crates.io, and Packagist impersonate developer tooling to fetch staged malware, steal credentials and wallets, and enable remote access.