src/viewer/scene/model/dtx/lines/dataTextureRamStats.js
export const dataTextureRamStats = {
sizeDataColorsAndFlags: 0,
sizeDataPositionDecodeMatrices: 0,
sizeDataTextureOffsets: 0,
sizeDataTexturePositions: 0,
sizeDataTextureIndices: 0,
sizeDataTexturePortionIds: 0,
numberOfGeometries: 0,
numberOfPortions: 0,
numberOfLayers: 0,
numberOfTextures: 0,
totalLines: 0,
totalLines8Bits: 0,
totalLines16Bits: 0,
totalLines32Bits: 0,
cannotCreatePortion: {
because10BitsObjectId: 0,
becauseTextureSize: 0,
},
overheadSizeAlignementIndices: 0,
overheadSizeAlignementEdgeIndices: 0,
};
window.printDataTextureRamStats = function () {
console.log(JSON.stringify(dataTextureRamStats, null, 4));
let totalRamSize = 0;
Object.keys(dataTextureRamStats).forEach(key => {
if (key.startsWith("size")) {
totalRamSize += dataTextureRamStats[key];
}
});
console.log(`Total size ${totalRamSize} bytes (${(totalRamSize / 1000 / 1000).toFixed(2)} MB)`);
console.log(`Avg bytes / triangle: ${(totalRamSize / dataTextureRamStats.totalLines).toFixed(2)}`);
let percentualRamStats = {};
Object.keys(dataTextureRamStats).forEach(key => {
if (key.startsWith("size")) {
percentualRamStats[key] =
`${(dataTextureRamStats[key] / totalRamSize * 100).toFixed(2)} % of total`;
}
});
console.log(JSON.stringify({percentualRamUsage: percentualRamStats}, null, 4));
};