aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Physics/Meshing/PrimMesher.cs28
1 files changed, 17 insertions, 11 deletions
diff --git a/OpenSim/Region/Physics/Meshing/PrimMesher.cs b/OpenSim/Region/Physics/Meshing/PrimMesher.cs
index 56534cf..8c6bd2b 100644
--- a/OpenSim/Region/Physics/Meshing/PrimMesher.cs
+++ b/OpenSim/Region/Physics/Meshing/PrimMesher.cs
@@ -910,25 +910,31 @@ namespace PrimMesher
910 910
911 if (calcVertexNormals) 911 if (calcVertexNormals)
912 { // calculate prim face numbers 912 { // calculate prim face numbers
913
914 // face number order is top, outer, hollow, bottom, start cut, end cut
913 // I know it's ugly but so is the whole concept of prim face numbers 915 // I know it's ugly but so is the whole concept of prim face numbers
914 int faceNum = 1; 916
917 int faceNum = 1; // start with outer faces
915 int startVert = hasProfileCut && !hasHollow ? 1 : 0; 918 int startVert = hasProfileCut && !hasHollow ? 1 : 0;
916 if (startVert > 0) 919 if (startVert > 0)
917 this.faceNumbers.Add(0); 920 this.faceNumbers.Add(-1);
918 for (int i = 0; i < numOuterVerts; i++) 921 for (int i = 0; i < numOuterVerts - 1; i++)
919 this.faceNumbers.Add(sides < 5 ? faceNum++ : faceNum); 922 this.faceNumbers.Add(sides < 5 ? faceNum++ : faceNum);
923 this.faceNumbers.Add(hasProfileCut ? -1 : faceNum++);
920 if (sides > 4) 924 if (sides > 4)
921 faceNum++; 925 faceNum++;
922 if (hasProfileCut) 926 if (hasHollow)
923 this.faceNumbers.Add(0); 927 {
924 for (int i = 0; i < numHollowVerts; i++) 928 for (int i = 0; i < numHollowVerts; i++)
925 //this.faceNumbers.Add(faceNum++); 929 this.faceNumbers.Add(faceNum);
926 this.faceNumbers.Add(hollowSides < 5 ? faceNum++ : faceNum); 930
931 faceNum++;
932 }
927 this.bottomFaceNumber = faceNum++; 933 this.bottomFaceNumber = faceNum++;
928 if (hasHollow && hasProfileCut) 934 if (hasHollow && hasProfileCut)
929 this.faceNumbers.Add(faceNum++); 935 this.faceNumbers.Add(faceNum++);
930 for (int i = 0; i < this.faceNumbers.Count; i++) 936 for (int i = 0; i < this.faceNumbers.Count; i++)
931 if (this.faceNumbers[i] == 0) 937 if (this.faceNumbers[i] == -1)
932 this.faceNumbers[i] = faceNum++; 938 this.faceNumbers[i] = faceNum++;
933 939
934 this.numPrimFaces = faceNum; 940 this.numPrimFaces = faceNum;
@@ -1373,7 +1379,7 @@ namespace PrimMesher
1373 if (this.viewerMode) 1379 if (this.viewerMode)
1374 { 1380 {
1375 Coord faceNormal = newLayer.faceNormal; 1381 Coord faceNormal = newLayer.faceNormal;
1376 ViewerFace newViewerFace = new ViewerFace(0); 1382 ViewerFace newViewerFace = new ViewerFace(profile.bottomFaceNumber);
1377 int numFaces = newLayer.faces.Count; 1383 int numFaces = newLayer.faces.Count;
1378 List<Face> faces = newLayer.faces; 1384 List<Face> faces = newLayer.faces;
1379 1385
@@ -1568,7 +1574,7 @@ namespace PrimMesher
1568 // add the top faces to the viewerFaces list here 1574 // add the top faces to the viewerFaces list here
1569 Coord faceNormal = newLayer.faceNormal; 1575 Coord faceNormal = newLayer.faceNormal;
1570 ViewerFace newViewerFace = new ViewerFace(); 1576 ViewerFace newViewerFace = new ViewerFace();
1571 newViewerFace.primFaceNumber = newLayer.bottomFaceNumber; 1577 newViewerFace.primFaceNumber = 0;
1572 int numFaces = newLayer.faces.Count; 1578 int numFaces = newLayer.faces.Count;
1573 List<Face> faces = newLayer.faces; 1579 List<Face> faces = newLayer.faces;
1574 1580