mesh-simplifier
Version:
Collection of mesh simplification methods written in Typescript
43 lines (34 loc) • 1.05 kB
text/typescript
/*
* Copyright (c) 2020 NAVER Corp.
* egjs projects are licensed under the MIT license
*/
class Timer {
private _diff: number = 0;
private _startTime: number | [number, number] | null = null;
/**
* Time diff in miliseconds
*/
public get diff() { return this._diff; }
public start(): void {
if (typeof process !== "undefined" && process.hrtime) {
// Use high resolution timer in Node
this._startTime = process.hrtime();
} else {
this._startTime = Date.now();
}
}
public end(): void {
// Not started
if (this._startTime == null) return;
if (typeof process !== "undefined" && process.hrtime) {
// Use high resolution timer in Node
const diff = process.hrtime(this._startTime as [number, number]);
const diffInMiliSeconds = 1000 * (diff[0] + diff[1] * 1e-9); // diff[1] is in nanoseconds
this._diff = diffInMiliSeconds;
} else {
this._diff = Date.now() - (this._startTime as number);
}
this._startTime = null;
}
}
export default Timer;