pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
1 lines • 6.73 kB
Source Map (JSON)
{"version":3,"file":"pointExtras.mjs","sources":["../../src/math-extras/pointExtras.ts"],"sourcesContent":["import { Point } from '../maths/point/Point';\n\nimport type { PointData } from '../maths/point/PointData';\n\n/** @internal */\nexport const pointExtraMixins: any = {\n add<T extends PointData>(other: PointData, outPoint?: T): T\n {\n if (!outPoint)\n {\n outPoint = new Point() as PointData as T;\n }\n outPoint.x = this.x + other.x;\n outPoint.y = this.y + other.y;\n\n return outPoint;\n },\n subtract<T extends PointData>(other: PointData, outPoint?: T): T\n {\n if (!outPoint)\n {\n outPoint = new Point() as PointData as T;\n }\n outPoint.x = this.x - other.x;\n outPoint.y = this.y - other.y;\n\n return outPoint;\n },\n multiply<T extends PointData>(other: PointData, outPoint?: T): T\n {\n if (!outPoint)\n {\n outPoint = new Point() as PointData as T;\n }\n outPoint.x = this.x * other.x;\n outPoint.y = this.y * other.y;\n\n return outPoint;\n },\n multiplyScalar<T extends PointData>(scalar: number, outPoint?: T): T\n {\n if (!outPoint)\n {\n outPoint = new Point() as PointData as T;\n }\n outPoint.x = this.x * scalar;\n outPoint.y = this.y * scalar;\n\n return outPoint;\n },\n dot(other: PointData): number\n {\n return (this.x * other.x) + (this.y * other.y);\n },\n cross(other: PointData): number\n {\n /*\n * Returns the magnitude of the vector that would result\n * from a regular 3D cross product of the input vectors,\n * taking their Z values implicitly as 0\n * (i.e. treating the 2D space as a plane in the 3D space).\n * The 3D cross product will be perpendicular to that plane,\n * and thus have 0 X & Y components\n * (thus the scalar returned is the Z value of the 3D cross product vector).\n */\n return (this.x * other.y) - (this.y * other.x);\n },\n normalize<T extends PointData>(outPoint?: T): T\n {\n if (!outPoint)\n {\n outPoint = new Point() as PointData as T;\n }\n const magnitude = Math.sqrt((this.x * this.x) + (this.y * this.y));\n\n outPoint.x = this.x / magnitude;\n outPoint.y = this.y / magnitude;\n\n return outPoint;\n },\n magnitude(): number\n {\n return Math.sqrt((this.x * this.x) + (this.y * this.y));\n },\n magnitudeSquared(): number\n {\n return (this.x * this.x) + (this.y * this.y);\n },\n project<T extends PointData>(onto: PointData, outPoint?: T): T\n {\n if (!outPoint)\n {\n outPoint = new Point() as PointData as T;\n }\n // Math says: a Projected over b = [(a·b) / (b·b)] * b;\n const normalizedScalarProjection = ((this.x * onto.x) + (this.y * onto.y)) / ((onto.x * onto.x) + (onto.y * onto.y));\n\n outPoint.x = onto.x * normalizedScalarProjection;\n outPoint.y = onto.y * normalizedScalarProjection;\n\n return outPoint;\n },\n reflect<T extends PointData>(normal: PointData, outPoint?: T): T\n {\n if (!outPoint)\n {\n outPoint = new Point() as PointData as T;\n }\n\n // Given an incident vector i and a normal vector n, returns the reflection vector r = i - 2 * dot(i, n) * n\n\n const dotProduct = (this.x * normal.x) + (this.y * normal.y);\n\n outPoint.x = this.x - (2 * dotProduct * normal.x);\n outPoint.y = this.y - (2 * dotProduct * normal.y);\n\n return outPoint;\n }\n};\n"],"names":[],"mappings":"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"}