import { Vec2, Vec3 } from "cc";

export class Vec3Util {
    //获得两个三维向量的差
    static sub(pos1: Vec3, pos2: Vec3) {
        let out = new Vec3();
        Vec3.subtract(out, pos1, pos2);
        return out;
    }

    //三维向量乘以常量
    static mul(pos: Vec3, scalar: number) {
        let out = new Vec3();
        Vec3.multiplyScalar(out, pos, scalar);
        return out;
    }

    //三维向量除常量
    static div(pos: Vec3, scalar: number) {
        let out = new Vec3();
        out.x = pos.x / scalar;
        out.y = pos.y / scalar;
        out.z = pos.z / scalar;
        return out;
    }

    //两个三维向量是否相等
    static equals(pos1: Vec3, pos2: Vec3) {
        return (pos1.x == pos2.x && pos1.y == pos2.y && pos1.z == pos2.z) ? true : false;
    }

    //获得pos1到pos2的方向
    static direction(pos1: Vec3, pos2: Vec3) {
        let out = new Vec3();
        Vec3.subtract(out, pos2, pos1)
        return out.normalize();
    }

    //获得pos1到pos2的距离
    static distance(pos1: Vec3, pos2: Vec3) {
        let temp1 = pos1.clone(), temp2 = pos2.clone();
        temp1.z = temp2.z = 0;
        return Vec3.distance(temp1, temp2);
    }
}