diff --git a/src/encoders/data/data-tracker-accel-chunk.ts b/src/encoders/data/data-tracker-accel-chunk.ts index b2a2451..b9799d8 100644 --- a/src/encoders/data/data-tracker-accel-chunk.ts +++ b/src/encoders/data/data-tracker-accel-chunk.ts @@ -1,9 +1,9 @@ import chunk from '../chunk'; +const floatArray = new Float32Array(3); export default (x: number, y: number, z: number): Uint8Array => { - const buf = new DataView(new ArrayBuffer(12)); - buf.setFloat32(0, x, true); - buf.setFloat32(4, y, true); - buf.setFloat32(8, z, true); - return chunk(0x0004, new Uint8Array(buf.buffer), false); + floatArray[0] = x; + floatArray[1] = y; + floatArray[2] = z; + return chunk(0x0004, new Uint8Array(floatArray.buffer), false); }; diff --git a/src/encoders/data/data-tracker-ori-chunk.ts b/src/encoders/data/data-tracker-ori-chunk.ts index 56aa3ba..25a9883 100644 --- a/src/encoders/data/data-tracker-ori-chunk.ts +++ b/src/encoders/data/data-tracker-ori-chunk.ts @@ -1,10 +1,9 @@ import chunk from '../chunk'; +const floatArray = new Float32Array(3); export default (x: number, y: number, z: number): Uint8Array => { - const buf = new DataView(new ArrayBuffer(12)); - - buf.setFloat32(0, x, true); - buf.setFloat32(4, y, true); - buf.setFloat32(8, z, true); - return chunk(0x0002, new Uint8Array(buf.buffer), false); + floatArray[0] = x; + floatArray[1] = y; + floatArray[2] = z; + return chunk(0x0002, new Uint8Array(floatArray.buffer), false); }; diff --git a/src/encoders/data/data-tracker-pos-chunk.ts b/src/encoders/data/data-tracker-pos-chunk.ts index 4813982..10858ee 100644 --- a/src/encoders/data/data-tracker-pos-chunk.ts +++ b/src/encoders/data/data-tracker-pos-chunk.ts @@ -1,11 +1,10 @@ import chunk from '../chunk'; +const floatArray = new Float32Array(3); export default (x: number, y: number, z: number): Uint8Array => { - const buf = new DataView(new ArrayBuffer(12)); + floatArray[0] = x; + floatArray[1] = y; + floatArray[2] = z; - buf.setFloat32(0, x, true); - buf.setFloat32(4, y, true); - buf.setFloat32(8, z, true); - - return chunk(0x0000, new Uint8Array(buf.buffer), false); + return chunk(0x0000, new Uint8Array(floatArray.buffer), false); }; diff --git a/src/encoders/data/data-tracker-speed-chunk.ts b/src/encoders/data/data-tracker-speed-chunk.ts index 7cd226d..f8e5ac9 100644 --- a/src/encoders/data/data-tracker-speed-chunk.ts +++ b/src/encoders/data/data-tracker-speed-chunk.ts @@ -1,11 +1,10 @@ import chunk from '../chunk'; +const floatArray = new Float32Array(3); export default (x: number, y: number, z: number): Uint8Array => { - const buf = new DataView(new ArrayBuffer(12)); + floatArray[0] = x; + floatArray[1] = y; + floatArray[2] = z; - buf.setFloat32(0, x, true); - buf.setFloat32(4, y, true); - buf.setFloat32(8, z, true); - - return chunk(0x0001, new Uint8Array(buf.buffer), false); + return chunk(0x0001, new Uint8Array(floatArray.buffer), false); }; diff --git a/src/encoders/data/data-tracker-status-chunk.ts b/src/encoders/data/data-tracker-status-chunk.ts index 7c62862..d1ebf98 100644 --- a/src/encoders/data/data-tracker-status-chunk.ts +++ b/src/encoders/data/data-tracker-status-chunk.ts @@ -1,7 +1,7 @@ import chunk from '../chunk'; +const floatArray = new Float32Array(1); export default (validity: number): Uint8Array => { - const buf = new DataView(new ArrayBuffer(4)); - buf.setFloat32(0, validity, true); - return chunk(0x0003, new Uint8Array(buf.buffer), false); + floatArray[0] = validity; + return chunk(0x0003, new Uint8Array(floatArray.buffer), false); }; diff --git a/src/encoders/data/data-tracker-trgtpos-chunk.ts b/src/encoders/data/data-tracker-trgtpos-chunk.ts index 5d67d87..8df7b5f 100644 --- a/src/encoders/data/data-tracker-trgtpos-chunk.ts +++ b/src/encoders/data/data-tracker-trgtpos-chunk.ts @@ -1,11 +1,10 @@ import chunk from '../chunk'; +const floatArray = new Float32Array(3); export default (x: number, y: number, z: number): Uint8Array => { - const buf = new DataView(new ArrayBuffer(12)); + floatArray[0] = x; + floatArray[1] = y; + floatArray[2] = z; - buf.setFloat32(0, x, true); - buf.setFloat32(4, y, true); - buf.setFloat32(8, z, true); - - return chunk(0x0005, new Uint8Array(buf.buffer), false); + return chunk(0x0005, new Uint8Array(floatArray.buffer), false); };