From 89438220464778d167d86bb59e095a85ccdba080 Mon Sep 17 00:00:00 2001 From: David Williams Date: Sun, 20 Oct 2013 09:12:37 +0200 Subject: [PATCH] Added asserts to catch invalid material/density values. --- .../include/PolyVoxCore/MaterialDensityPair.h | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/library/PolyVoxCore/include/PolyVoxCore/MaterialDensityPair.h b/library/PolyVoxCore/include/PolyVoxCore/MaterialDensityPair.h index cdde07f7..9f26b286 100644 --- a/library/PolyVoxCore/include/PolyVoxCore/MaterialDensityPair.h +++ b/library/PolyVoxCore/include/PolyVoxCore/MaterialDensityPair.h @@ -75,8 +75,19 @@ namespace PolyVox Type getDensity() const { return m_uDensity; } Type getMaterial() const { return m_uMaterial; } - void setDensity(Type uDensity) { m_uDensity = uDensity; } - void setMaterial(Type uMaterial) { m_uMaterial = uMaterial; } + void setDensity(Type uDensity) + { + POLYVOX_ASSERT(uDensity >= getMinDensity(), "Density out of range"); + POLYVOX_ASSERT(uDensity <= getMaxDensity(), "Density out of range"); + m_uDensity = uDensity; + } + + void setMaterial(Type uMaterial) + { + POLYVOX_ASSERT(uMaterial >= 0, "Material out of range"); + POLYVOX_ASSERT(uMaterial <= (0x01 << NoOfMaterialBits) - 1, "Material out of range"); + m_uMaterial = uMaterial; + } static Type getMaxDensity() { return (0x01 << NoOfDensityBits) - 1; } static Type getMinDensity() { return 0; }