diff options
author | Dahlia Trimble | 2008-07-06 17:18:59 +0000 |
---|---|---|
committer | Dahlia Trimble | 2008-07-06 17:18:59 +0000 |
commit | ae468bfc9bda28f8450658ac391efd30ef4269c9 (patch) | |
tree | 5c57f52aec95d4afc483b9eb8ad285960c3dbda1 /OpenSim | |
parent | * In archiver, scan scripts for embedded asset uuids and save these out (diff) | |
download | opensim-SC-ae468bfc9bda28f8450658ac391efd30ef4269c9.zip opensim-SC-ae468bfc9bda28f8450658ac391efd30ef4269c9.tar.gz opensim-SC-ae468bfc9bda28f8450658ac391efd30ef4269c9.tar.bz2 opensim-SC-ae468bfc9bda28f8450658ac391efd30ef4269c9.tar.xz |
Corrects errors in sphere mesh with dimple start angle > 0 and hollow == 0
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Physics/Meshing/Meshmerizer.cs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs index f770476..e532415 100644 --- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs +++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs | |||
@@ -1582,14 +1582,14 @@ namespace OpenSim.Region.Physics.Meshing | |||
1582 | 1582 | ||
1583 | if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.HalfCircle) | 1583 | if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.HalfCircle) |
1584 | { // dimpled sphere uses profile cut but since it's a half circle the angles are smaller | 1584 | { // dimpled sphere uses profile cut but since it's a half circle the angles are smaller |
1585 | 1585 | if (hollowFactor == 0) hollowFactor = 1000; // bare minimum hollow to keep the triangulator happy | |
1586 | fProfileBeginAngle = 0.0036f * (float)primShape.ProfileBegin; | 1586 | fProfileBeginAngle = 0.0036f * (float)primShape.ProfileBegin; |
1587 | fProfileEndAngle = 180.0f - 0.0036f * (float)primShape.ProfileEnd; | 1587 | fProfileEndAngle = 180.0f - 0.0036f * (float)primShape.ProfileEnd; |
1588 | if (fProfileBeginAngle < fProfileEndAngle) | 1588 | if (fProfileBeginAngle < fProfileEndAngle) |
1589 | fProfileEndAngle -= 360.0f; | 1589 | fProfileEndAngle -= 360.0f; |
1590 | // a cut starting at 0 degrees with a hollow causes an infinite loop so move the start angle | 1590 | // a cut starting at 0 degrees with a hollow causes an infinite loop so move the start angle |
1591 | // past it into the empty part of the circle to avoid this condition | 1591 | // past it into the empty part of the circle to avoid this condition |
1592 | if (fProfileBeginAngle == 0.0f) fProfileBeginAngle = -10.0f; | 1592 | if (fProfileBeginAngle == 0.0f && hollowFactor != 0) fProfileBeginAngle = -10.0f; |
1593 | 1593 | ||
1594 | #if SPAM | 1594 | #if SPAM |
1595 | Console.WriteLine("Sphere dimple: fProfileBeginAngle: " + fProfileBeginAngle.ToString() + " fProfileEndAngle: " + fProfileEndAngle.ToString()); | 1595 | Console.WriteLine("Sphere dimple: fProfileBeginAngle: " + fProfileBeginAngle.ToString() + " fProfileEndAngle: " + fProfileEndAngle.ToString()); |