Improve error messages

This commit is contained in:
Edwin Jakobs
2025-01-25 14:26:14 +01:00
parent 864228d346
commit de637c087f
4 changed files with 21 additions and 12 deletions

View File

@@ -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) {

View File

@@ -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

View File

@@ -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) {

View File

@@ -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