nitro/libs/renderer/src/nitro/avatar/geometry/GeometryItem.ts

48 lines
1.2 KiB
TypeScript

import {Node3D} from "./Node3D";
import {Vector3D} from "./Vector3D";
export class GeometryItem extends Node3D {
private _id: string;
private _radius: number;
private _normal: Vector3D;
private _isDoubleSided: boolean;
private _isDynamic: boolean;
constructor(k: any, _arg_2: boolean = false) {
super(parseFloat(k.x), parseFloat(k.y), parseFloat(k.z));
this._id = k.id;
this._radius = parseFloat(k.radius);
this._normal = new Vector3D(parseFloat(k.nx), parseFloat(k.ny), parseFloat(k.nz));
this._isDoubleSided = k.double || false;
this._isDynamic = _arg_2;
}
public getDistance(k: Vector3D): number {
const _local_2 = Math.abs(k.z - this.transformedLocation.z - this._radius);
const _local_3 = Math.abs(k.z - this.transformedLocation.z + this._radius);
return Math.min(_local_2, _local_3);
}
public get id(): string {
return this._id;
}
public get normal(): Vector3D {
return this._normal;
}
public get isDoubleSided(): boolean {
return this._isDoubleSided;
}
public override toString(): string {
return this._id + ": " + this.location + " - " + this.transformedLocation;
}
public get isDynamic(): boolean {
return this._isDynamic;
}
}