From 5642032303ada3bb3578c029cc6d602fe63733c3 Mon Sep 17 00:00:00 2001 From: Garrett Johnson Date: Thu, 2 Nov 2023 08:07:38 +0900 Subject: [PATCH] BatchedMesh: Fix getIndexCount, getVertexCount functions (#27099) * BatchedMesh: Fix getVertexCount and getIndexCount functions * BatchedMesh: Fix index offset --- examples/jsm/objects/BatchedMesh.js | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/examples/jsm/objects/BatchedMesh.js b/examples/jsm/objects/BatchedMesh.js index 360256a095bb09..332c649fe78089 100644 --- a/examples/jsm/objects/BatchedMesh.js +++ b/examples/jsm/objects/BatchedMesh.js @@ -114,8 +114,6 @@ class BatchedMesh extends Mesh { this._geometryInitialized = false; this._geometryCount = 0; - this._vertexCount = 0; - this._indexCount = 0; // Local matrix per geometry by using data texture // @TODO: Support uniform parameter per geometry @@ -300,13 +298,34 @@ class BatchedMesh extends Mesh { getVertexCount() { - return this._vertexCount; + const reservedRanges = this._reservedRanges; + if ( reservedRanges.length === 0 ) { + + return 0; + + } else { + + const finalRange = reservedRanges[ reservedRanges.length - 1 ]; + return finalRange.vertexStart + finalRange.vertexCount; + + } } getIndexCount() { - return this._indexCount; + const reservedRanges = this._reservedRanges; + const geometry = this.geometry; + if ( geometry.getIndex() === null || reservedRanges.length === 0 ) { + + return 0; + + } else { + + const finalRange = reservedRanges[ reservedRanges.length - 1 ]; + return finalRange.indexStart + finalRange.indexCount; + + } }