Modifies box prim profile cut parameters to avoid angles which cause spurious triangles in mesh
parent
ab927231d7
commit
bc66a851d6
|
@ -475,9 +475,20 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
fProfileBeginAngle -= (90.0 + 45.0); // for some reasons, the SL client counts from the corner -X/-Y
|
fProfileBeginAngle -= (90.0 + 45.0); // for some reasons, the SL client counts from the corner -X/-Y
|
||||||
double fProfileEndAngle = 360.0 - profileEnd/50000.0*360.0; // Pathend comes as complement to 1.0
|
double fProfileEndAngle = 360.0 - profileEnd/50000.0*360.0; // Pathend comes as complement to 1.0
|
||||||
fProfileEndAngle -= (90.0 + 45.0);
|
fProfileEndAngle -= (90.0 + 45.0);
|
||||||
|
|
||||||
|
// avoid some problem angles until the hull subtraction routine is fixed
|
||||||
|
if ((fProfileBeginAngle + 45.0f) % 90.0f == 0.0f)
|
||||||
|
fProfileBeginAngle += 5.0f;
|
||||||
|
if ((fProfileEndAngle + 45.0f) % 90.0f == 0.0f)
|
||||||
|
fProfileEndAngle -= 5.0f;
|
||||||
|
|
||||||
if (fProfileBeginAngle < fProfileEndAngle)
|
if (fProfileBeginAngle < fProfileEndAngle)
|
||||||
fProfileEndAngle -= 360.0;
|
fProfileEndAngle -= 360.0;
|
||||||
|
|
||||||
|
#if SPAM
|
||||||
|
Console.WriteLine("Meshmerizer: fProfileBeginAngle: " + fProfileBeginAngle.ToString() + " fProfileEndAngle: " + fProfileEndAngle.ToString());
|
||||||
|
#endif
|
||||||
|
|
||||||
// Note, that we don't want to cut out a triangle, even if this is a
|
// Note, that we don't want to cut out a triangle, even if this is a
|
||||||
// good approximation for small cuts. Indeed we want to cut out an arc
|
// good approximation for small cuts. Indeed we want to cut out an arc
|
||||||
// and we approximate this arc by a polygon chain
|
// and we approximate this arc by a polygon chain
|
||||||
|
|
Loading…
Reference in New Issue