123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- import defined from "../Core/defined.js";
- /**
- * @private
- */
- function Cesium3DTilesetStatistics() {
- // Rendering statistics
- this.selected = 0;
- this.visited = 0;
- // Loading statistics
- this.numberOfCommands = 0;
- this.numberOfAttemptedRequests = 0;
- this.numberOfPendingRequests = 0;
- this.numberOfTilesProcessing = 0;
- this.numberOfTilesWithContentReady = 0; // Number of tiles with content loaded, does not include empty tiles
- this.numberOfTilesTotal = 0; // Number of tiles in tileset JSON (and other tileset JSON files as they are loaded)
- this.numberOfLoadedTilesTotal = 0; // Running total of loaded tiles for the lifetime of the session
- // Features statistics
- this.numberOfFeaturesSelected = 0; // Number of features rendered
- this.numberOfFeaturesLoaded = 0; // Number of features in memory
- this.numberOfPointsSelected = 0;
- this.numberOfPointsLoaded = 0;
- this.numberOfTrianglesSelected = 0;
- // Styling statistics
- this.numberOfTilesStyled = 0;
- this.numberOfFeaturesStyled = 0;
- // Optimization statistics
- this.numberOfTilesCulledWithChildrenUnion = 0;
- // Memory statistics
- this.geometryByteLength = 0;
- this.texturesByteLength = 0;
- this.batchTableByteLength = 0;
- }
- Cesium3DTilesetStatistics.prototype.clear = function () {
- this.selected = 0;
- this.visited = 0;
- this.numberOfCommands = 0;
- this.numberOfAttemptedRequests = 0;
- this.numberOfFeaturesSelected = 0;
- this.numberOfPointsSelected = 0;
- this.numberOfTrianglesSelected = 0;
- this.numberOfTilesStyled = 0;
- this.numberOfFeaturesStyled = 0;
- this.numberOfTilesCulledWithChildrenUnion = 0;
- };
- function updatePointAndFeatureCounts(statistics, content, decrement, load) {
- const contents = content.innerContents;
- const pointsLength = content.pointsLength;
- const trianglesLength = content.trianglesLength;
- const featuresLength = content.featuresLength;
- const geometryByteLength = content.geometryByteLength;
- const texturesByteLength = content.texturesByteLength;
- const batchTableByteLength = content.batchTableByteLength;
- if (load) {
- statistics.numberOfFeaturesLoaded += decrement
- ? -featuresLength
- : featuresLength;
- statistics.numberOfPointsLoaded += decrement ? -pointsLength : pointsLength;
- statistics.geometryByteLength += decrement
- ? -geometryByteLength
- : geometryByteLength;
- statistics.texturesByteLength += decrement
- ? -texturesByteLength
- : texturesByteLength;
- statistics.batchTableByteLength += decrement
- ? -batchTableByteLength
- : batchTableByteLength;
- } else {
- statistics.numberOfFeaturesSelected += decrement
- ? -featuresLength
- : featuresLength;
- statistics.numberOfPointsSelected += decrement
- ? -pointsLength
- : pointsLength;
- statistics.numberOfTrianglesSelected += decrement
- ? -trianglesLength
- : trianglesLength;
- }
- if (defined(contents)) {
- const length = contents.length;
- for (let i = 0; i < length; ++i) {
- updatePointAndFeatureCounts(statistics, contents[i], decrement, load);
- }
- }
- }
- Cesium3DTilesetStatistics.prototype.incrementSelectionCounts = function (
- content
- ) {
- updatePointAndFeatureCounts(this, content, false, false);
- };
- Cesium3DTilesetStatistics.prototype.incrementLoadCounts = function (content) {
- updatePointAndFeatureCounts(this, content, false, true);
- };
- Cesium3DTilesetStatistics.prototype.decrementLoadCounts = function (content) {
- updatePointAndFeatureCounts(this, content, true, true);
- };
- Cesium3DTilesetStatistics.clone = function (statistics, result) {
- result.selected = statistics.selected;
- result.visited = statistics.visited;
- result.numberOfCommands = statistics.numberOfCommands;
- result.selected = statistics.selected;
- result.numberOfAttemptedRequests = statistics.numberOfAttemptedRequests;
- result.numberOfPendingRequests = statistics.numberOfPendingRequests;
- result.numberOfTilesProcessing = statistics.numberOfTilesProcessing;
- result.numberOfTilesWithContentReady =
- statistics.numberOfTilesWithContentReady;
- result.numberOfTilesTotal = statistics.numberOfTilesTotal;
- result.numberOfFeaturesSelected = statistics.numberOfFeaturesSelected;
- result.numberOfFeaturesLoaded = statistics.numberOfFeaturesLoaded;
- result.numberOfPointsSelected = statistics.numberOfPointsSelected;
- result.numberOfPointsLoaded = statistics.numberOfPointsLoaded;
- result.numberOfTrianglesSelected = statistics.numberOfTrianglesSelected;
- result.numberOfTilesStyled = statistics.numberOfTilesStyled;
- result.numberOfFeaturesStyled = statistics.numberOfFeaturesStyled;
- result.numberOfTilesCulledWithChildrenUnion =
- statistics.numberOfTilesCulledWithChildrenUnion;
- result.geometryByteLength = statistics.geometryByteLength;
- result.texturesByteLength = statistics.texturesByteLength;
- result.batchTableByteLength = statistics.batchTableByteLength;
- };
- export default Cesium3DTilesetStatistics;
|