From db667ad5ca67cb657c99055dde843a3659524b24 Mon Sep 17 00:00:00 2001 From: David Rose Date: Thu, 8 Jan 2009 02:59:40 +0000 Subject: [PATCH] report long and short normals --- panda/src/pgraph/sceneGraphAnalyzer.cxx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/panda/src/pgraph/sceneGraphAnalyzer.cxx b/panda/src/pgraph/sceneGraphAnalyzer.cxx index 693aa99591..6ccf889418 100644 --- a/panda/src/pgraph/sceneGraphAnalyzer.cxx +++ b/panda/src/pgraph/sceneGraphAnalyzer.cxx @@ -30,6 +30,7 @@ #include "transformState.h" #include "textureAttrib.h" #include "pta_ushort.h" +#include "geomVertexReader.h" //////////////////////////////////////////////////////////////////// // Function: SceneGraphAnalyzer::Constructor @@ -390,6 +391,19 @@ collect_statistics(const Geom *geom) { } if (vdata->has_column(InternalName::get_normal())) { _num_normals += num_rows; + GeomVertexReader rnormal(vdata, InternalName::get_normal()); + while (!rnormal.is_at_end()) { + LVector3f normal = rnormal.get_data3f(); + float length = normal.length(); + if (IS_NEARLY_EQUAL(length, 1.0f)) { + // Correct length normal. + } else if (length > 1.0f) { + ++_num_long_normals; + } else { // length < 1.0f + ++_num_short_normals; + } + _total_normal_length += length; + } } if (vdata->has_column(InternalName::get_color())) { _num_colors += num_rows;