From c02702f3871979cb7745b49aa502ac3c71f77681 Mon Sep 17 00:00:00 2001
From: Dave Parks <davep@lindenlab.com>
Date: Fri, 13 Nov 2009 17:01:56 -0600
Subject: [PATCH] CTS-7 Add hard edge threshold capability to normal
 generation.

---
 indra/llmath/llvolume.cpp | 12 ++++++++++++
 indra/llmath/llvolume.h   |  1 +
 2 files changed, 13 insertions(+)

diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp
index 6286d1bcea2..f252b2a2327 100644
--- a/indra/llmath/llvolume.cpp
+++ b/indra/llmath/llvolume.cpp
@@ -1876,6 +1876,18 @@ bool LLVolumeFace::VertexData::operator==(const LLVolumeFace::VertexData& rhs)co
 	return true;
 }
 
+bool LLVolumeFace::VertexData::compareNormal(const LLVolumeFace::VertexData& rhs, F32 angle_cutoff) const
+{
+	bool retval = false;
+	if (rhs.mPosition == mPosition && rhs.mTexCoord == mTexCoord)
+	{
+		F32 cur_angle = rhs.mNormal*mNormal;
+		
+		retval = cur_angle > angle_cutoff;
+	}
+
+	return retval;
+}
 
 BOOL LLVolume::createVolumeFacesFromFile(const std::string& file_name)
 {
diff --git a/indra/llmath/llvolume.h b/indra/llmath/llvolume.h
index 9f595ccbc4a..d2727d8f21c 100644
--- a/indra/llmath/llvolume.h
+++ b/indra/llmath/llvolume.h
@@ -814,6 +814,7 @@ class LLVolumeFace
 
 		bool operator<(const VertexData& rhs) const;
 		bool operator==(const VertexData& rhs) const;
+		bool compareNormal(const VertexData& rhs, F32 angle_cutoff) const;
 	};
 
 	enum
-- 
GitLab