diff --git a/orx-jvm/orx-dnk3/src/main/kotlin/gltf/GltfScene.kt b/orx-jvm/orx-dnk3/src/main/kotlin/gltf/GltfScene.kt index 4573e731..0cc27414 100644 --- a/orx-jvm/orx-dnk3/src/main/kotlin/gltf/GltfScene.kt +++ b/orx-jvm/orx-dnk3/src/main/kotlin/gltf/GltfScene.kt @@ -278,9 +278,16 @@ fun GltfFile.buildSceneNodes(): GltfSceneData { ibmData.order(ByteOrder.nativeOrder()) (ibmData as Buffer).position(ibmAccessor.byteOffset + (ibmBufferView.byteOffset ?: 0)) - require(ibmAccessor.type == "MAT4") - require(ibmAccessor.componentType == GLTF_FLOAT) - require(ibmAccessor.count == joints.size) + require(ibmAccessor.type == "MAT4") { + "Unsupported inverse bind matrix type: ${ibmAccessor.type}" + } + require(ibmAccessor.componentType == GLTF_FLOAT) { + "Unsupported inverse bind matrix component type: ${ibmAccessor.componentType}" + } + require(ibmAccessor.count == joints.size) { + "Mismatch between inverse bind matrix count (${ibmAccessor.count}) and joints size (${joints.size})" + + } val ibms = (0 until ibmAccessor.count).map { val array = DoubleArray(16) for (i in 0 until 16) { diff --git a/orx-marching-squares/src/commonMain/kotlin/MarchingSquares.kt b/orx-marching-squares/src/commonMain/kotlin/MarchingSquares.kt index 54288dcf..44e68dbe 100644 --- a/orx-marching-squares/src/commonMain/kotlin/MarchingSquares.kt +++ b/orx-marching-squares/src/commonMain/kotlin/MarchingSquares.kt @@ -56,13 +56,16 @@ fun findContours( fun blend(v1: Double, v2: Double): Double { if (useInterpolation) { - require(v1 == v1 && v2 == v2) + require(!v1.isNaN() && !v2.isNaN()) { + "Input values v1=$v1 or v2=$v2 are NaN, which is not allowed." + } val f1 = min(v1, v2) val f2 = max(v1, v2) val v = (-f1) / (f2 - f1) - require(v == v) - require(v in 0.0..1.0) + require(v == v && v in 0.0..1.0) { + "Invalid value calculated during interpolation: v=$v" + } return if (f1 == v1) { v diff --git a/orx-noise/src/commonMain/kotlin/UniformRandom.kt b/orx-noise/src/commonMain/kotlin/UniformRandom.kt index 7144ea46..e19224b9 100644 --- a/orx-noise/src/commonMain/kotlin/UniformRandom.kt +++ b/orx-noise/src/commonMain/kotlin/UniformRandom.kt @@ -172,11 +172,6 @@ fun Vector2.Companion.uniformRing( outerRadius: Double = 1.0, random: Random = Random.Default ): Vector2 { - - require(innerRadius <= outerRadius) { - - } - val eps = 1E-6 if (abs(innerRadius - outerRadius) < eps) { diff --git a/orx-turtle/src/commonMain/kotlin/NinjaTurtle.kt b/orx-turtle/src/commonMain/kotlin/NinjaTurtle.kt index 6fa4618b..d040445c 100644 --- a/orx-turtle/src/commonMain/kotlin/NinjaTurtle.kt +++ b/orx-turtle/src/commonMain/kotlin/NinjaTurtle.kt @@ -39,7 +39,11 @@ fun Turtle.segment( }) require(position.distanceTo(segment0.start) < 1E-5) { - """${position}, ${segment0.start}""" + "Alignment error: Turtle position ${position} is not aligned with segment start ${segment0.start}. Distance: ${ + position.distanceTo( + segment0.start + ) + }" } cb.segment(segment0) orientation = cb.segments.last().pose(1.0).matrix33.matrix44