aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authordahlia2011-04-19 22:16:10 -0700
committerdahlia2011-04-19 22:16:10 -0700
commit212326eeb0a7aa2180661e4c0ad253e2e7ae4515 (patch)
tree95d7f8a2f3b4bb8372417e6563afcdc8c8882469 /OpenSim
parentGet Viewer 2 voice working with OpenSim. (diff)
downloadopensim-SC_OLD-212326eeb0a7aa2180661e4c0ad253e2e7ae4515.zip
opensim-SC_OLD-212326eeb0a7aa2180661e4c0ad253e2e7ae4515.tar.gz
opensim-SC_OLD-212326eeb0a7aa2180661e4c0ad253e2e7ae4515.tar.bz2
opensim-SC_OLD-212326eeb0a7aa2180661e4c0ad253e2e7ae4515.tar.xz
fix meshing failure on sculpt maps smaller than 64x64
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Physics/Meshing/SculptMap.cs13
1 files changed, 10 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/Meshing/SculptMap.cs b/OpenSim/Region/Physics/Meshing/SculptMap.cs
index d2d71de..740424e 100644
--- a/OpenSim/Region/Physics/Meshing/SculptMap.cs
+++ b/OpenSim/Region/Physics/Meshing/SculptMap.cs
@@ -62,6 +62,8 @@ namespace PrimMesher
62 62
63 bool needsScaling = false; 63 bool needsScaling = false;
64 64
65 bool smallMap = bmW * bmH <= lod * lod;
66
65 width = bmW; 67 width = bmW;
66 height = bmH; 68 height = bmH;
67 while (width * height > numLodPixels) 69 while (width * height > numLodPixels)
@@ -104,9 +106,14 @@ namespace PrimMesher
104 { 106 {
105 for (int x = 0; x <= width; x++) 107 for (int x = 0; x <= width; x++)
106 { 108 {
107 int bmY = y < height ? y * 2 : y * 2 - 1; 109 Color c;
108 int bmX = x < width ? x * 2 : x * 2 - 1; 110
109 Color c = bm.GetPixel(bmX, bmY); 111 if (smallMap)
112 c = bm.GetPixel(x < width ? x : x - 1,
113 y < height ? y : y - 1);
114 else
115 c = bm.GetPixel(x < width ? x * 2 : x * 2 - 1,
116 y < height ? y * 2 : y * 2 - 1);
110 117
111 redBytes[byteNdx] = c.R; 118 redBytes[byteNdx] = c.R;
112 greenBytes[byteNdx] = c.G; 119 greenBytes[byteNdx] = c.G;