From 47aafa533b439a78b53cd2854c177db61be7e666 Mon Sep 17 00:00:00 2001 From: Arseny Kapoulkine Date: Tue, 25 Jun 2024 10:16:03 -0700 Subject: [PATCH] js: Adjust simplify/simplifyWithAttributes assertions To make ErrorAbsolute mode useful in JS, it needs to allow values outside of 0..1 range; for simplicity we just remove the upper bound for now. Also, previously flags could contain values that are not recognized as valid options and this would silently work; these are now checked with assertions to prevent mistakes. --- js/meshopt_simplifier.js | 6 ++++-- js/meshopt_simplifier.module.js | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/js/meshopt_simplifier.js b/js/meshopt_simplifier.js index 97f17e55d..77e09e566 100644 --- a/js/meshopt_simplifier.js +++ b/js/meshopt_simplifier.js @@ -183,10 +183,11 @@ var MeshoptSimplifier = (function() { assert(vertex_positions_stride >= 3); assert(target_index_count >= 0 && target_index_count <= indices.length); assert(target_index_count % 3 == 0); - assert(target_error >= 0 && target_error <= 1); + assert(target_error >= 0); var options = 0; for (var i = 0; i < (flags ? flags.length : 0); ++i) { + assert(flags[i] in simplifyOptions); options |= simplifyOptions[flags[i]]; } @@ -210,13 +211,14 @@ var MeshoptSimplifier = (function() { assert(vertex_lock == null || vertex_lock.length == vertex_positions.length); assert(target_index_count >= 0 && target_index_count <= indices.length); assert(target_index_count % 3 == 0); - assert(target_error >= 0 && target_error <= 1); + assert(target_error >= 0); assert(Array.isArray(attribute_weights)); assert(vertex_attributes_stride >= attribute_weights.length); assert(attribute_weights.length <= 16); var options = 0; for (var i = 0; i < (flags ? flags.length : 0); ++i) { + assert(flags[i] in simplifyOptions); options |= simplifyOptions[flags[i]]; } diff --git a/js/meshopt_simplifier.module.js b/js/meshopt_simplifier.module.js index 54785ca84..5d4cd6652 100644 --- a/js/meshopt_simplifier.module.js +++ b/js/meshopt_simplifier.module.js @@ -182,10 +182,11 @@ var MeshoptSimplifier = (function() { assert(vertex_positions_stride >= 3); assert(target_index_count >= 0 && target_index_count <= indices.length); assert(target_index_count % 3 == 0); - assert(target_error >= 0 && target_error <= 1); + assert(target_error >= 0); var options = 0; for (var i = 0; i < (flags ? flags.length : 0); ++i) { + assert(flags[i] in simplifyOptions); options |= simplifyOptions[flags[i]]; } @@ -209,13 +210,14 @@ var MeshoptSimplifier = (function() { assert(vertex_lock == null || vertex_lock.length == vertex_positions.length); assert(target_index_count >= 0 && target_index_count <= indices.length); assert(target_index_count % 3 == 0); - assert(target_error >= 0 && target_error <= 1); + assert(target_error >= 0); assert(Array.isArray(attribute_weights)); assert(vertex_attributes_stride >= attribute_weights.length); assert(attribute_weights.length <= 16); var options = 0; for (var i = 0; i < (flags ? flags.length : 0); ++i) { + assert(flags[i] in simplifyOptions); options |= simplifyOptions[flags[i]]; }