Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import {state, BaseComponent} from './BaseComponent';
- export class Vec2 extends BaseComponent {
- get x() {
- return this[state][0];
- }
- get y() {
- return this[state][1];
- }
- get length() {
- const {x, y} = this;
- return Math.sqrt(x * x + y * y);
- }
- normalize() {
- const {x, y, length} = this;
- return length > 0 ? vec2({x: x / length, y: y / length}) : vec2();
- }
- }
- const vec2 = (() => {
- "use strict";
- return Object.assign((x = 0, y = 0) => {
- return Object.freeze(new Vec2([x, y]));
- }, {
- direction(angle) {
- const x = Math.cos(angle);
- const y = Math.sin(angle);
- return vec2({x, y});
- },
- dot(vecA, vecB) {
- return vecA.x * vecB.x + vecA.y * vecB.y;
- }
- });
- })();
- export default vec2;
Advertisement
Add Comment
Please, Sign In to add comment