@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
29 lines (25 loc) • 911 B
text/typescript
import {TypedArray, Vector3} from 'three';
import {PointIdPair} from './TriangleGraphCommon';
import {TriangleGraph} from './TriangleGraph';
const _p0 = new Vector3();
const _p1 = new Vector3();
export class TriangleEdge {
public triangleIds: number[] = [];
constructor(
public readonly graph: TriangleGraph,
public readonly id: string,
public readonly pointIdPair: PointIdPair
) {}
addTriangle(triangleId: number) {
this.triangleIds.push(triangleId);
}
}
export function triangleEdgeLength(edge: TriangleEdge, positions: TypedArray): number {
_p0.fromArray(positions, edge.pointIdPair.id0 * 3);
_p1.fromArray(positions, edge.pointIdPair.id1 * 3);
return _p0.distanceTo(_p1);
}
export function triangleEdgePositions(edge: TriangleEdge, position: number[], pt0: Vector3, pt1: Vector3) {
pt0.fromArray(position, edge.pointIdPair.id0 * 3);
pt1.fromArray(position, edge.pointIdPair.id1 * 3);
}