add x-axis mirror capability to sculpted prim mesh - addresses Mantis #3342

0.6.5-rc1
Dahlia Trimble 2009-03-26 18:12:10 +00:00
parent 152b02c832
commit ad012d4b46
2 changed files with 16 additions and 2 deletions

View File

@ -202,7 +202,6 @@ namespace OpenSim.Region.Physics.Meshing
return null;
}
PrimMesher.SculptMesh.SculptType sculptType;
switch ((OpenMetaverse.SculptType)primShape.SculptType)
{
@ -220,7 +219,11 @@ namespace OpenSim.Region.Physics.Meshing
sculptType = PrimMesher.SculptMesh.SculptType.sphere;
break;
}
sculptMesh = new PrimMesher.SculptMesh((Bitmap)idata, sculptType, (int)lod, false);
bool mirror = ((primShape.SculptType & 128) != 0);
bool invert = ((primShape.SculptType & 64) != 0);
sculptMesh = new PrimMesher.SculptMesh((Bitmap)idata, sculptType, (int)lod, false, mirror, invert);
idata.Dispose();

View File

@ -215,6 +215,16 @@ namespace PrimMesher
}
public SculptMesh(Bitmap sculptBitmap, SculptType sculptType, int lod, bool viewerMode)
{
_SculptMesh(sculptBitmap, sculptType, lod, viewerMode, false, false);
}
public SculptMesh(Bitmap sculptBitmap, SculptType sculptType, int lod, bool viewerMode, bool mirror, bool invert)
{
_SculptMesh(sculptBitmap, sculptType, lod, viewerMode, mirror, invert);
}
void _SculptMesh(Bitmap sculptBitmap, SculptType sculptType, int lod, bool viewerMode, bool mirror, bool invert)
{
coords = new List<Coord>();
faces = new List<Face>();
@ -310,6 +320,7 @@ namespace PrimMesher
color = bitmap.GetPixel(imageX == width ? 0 : imageX, imageY == height ? height - 1 : imageY);
x = (color.R - 128) * pixScale;
if (mirror) x = -x;
y = (color.G - 128) * pixScale;
z = (color.B - 128) * pixScale;