aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
diff options
context:
space:
mode:
authorTeravus Ovares2008-02-08 23:28:38 +0000
committerTeravus Ovares2008-02-08 23:28:38 +0000
commitfadf5b479fea038f129cf85e1fb02857d19ac38f (patch)
tree11ccf094156ee3a166239a75bb1ba97ffb656cea /OpenSim/Region/Physics/Meshing/Meshmerizer.cs
parentStill chasing logout memory leak. Putting in small changes and temporary lig... (diff)
downloadopensim-SC-fadf5b479fea038f129cf85e1fb02857d19ac38f.zip
opensim-SC-fadf5b479fea038f129cf85e1fb02857d19ac38f.tar.gz
opensim-SC-fadf5b479fea038f129cf85e1fb02857d19ac38f.tar.bz2
opensim-SC-fadf5b479fea038f129cf85e1fb02857d19ac38f.tar.xz
* Added Taper support to the Meshmerizer for Cube and Cylinder.
* Removed the hull verbosity
Diffstat (limited to 'OpenSim/Region/Physics/Meshing/Meshmerizer.cs')
-rw-r--r--OpenSim/Region/Physics/Meshing/Meshmerizer.cs68
1 files changed, 66 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
index 2d80287..a2bbd3a 100644
--- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
@@ -58,7 +58,7 @@ namespace OpenSim.Region.Physics.Meshing
58 // Setting baseDir to a path will enable the dumping of raw files 58 // Setting baseDir to a path will enable the dumping of raw files
59 // raw files can be imported by blender so a visual inspection of the results can be done 59 // raw files can be imported by blender so a visual inspection of the results can be done
60 // const string baseDir = "rawFiles"; 60 // const string baseDir = "rawFiles";
61 private const string baseDir = null; 61 private const string baseDir = null; //"rawFiles";
62 62
63 private static void IntersectionParameterPD(PhysicsVector p1, PhysicsVector r1, PhysicsVector p2, 63 private static void IntersectionParameterPD(PhysicsVector p1, PhysicsVector r1, PhysicsVector p2,
64 PhysicsVector r2, ref float lambda, ref float mu) 64 PhysicsVector r2, ref float lambda, ref float mu)
@@ -181,7 +181,13 @@ namespace OpenSim.Region.Physics.Meshing
181 UInt16 hollowFactor = primShape.ProfileHollow; 181 UInt16 hollowFactor = primShape.ProfileHollow;
182 UInt16 profileBegin = primShape.ProfileBegin; 182 UInt16 profileBegin = primShape.ProfileBegin;
183 UInt16 profileEnd = primShape.ProfileEnd; 183 UInt16 profileEnd = primShape.ProfileEnd;
184 UInt16 taperX = primShape.PathScaleX;
185 UInt16 taperY = primShape.PathScaleY;
184 186
187 //m_log.Error("pathShear:" + primShape.PathShearX.ToString() + "," + primShape.PathShearY.ToString());
188 //m_log.Error("pathTaper:" + primShape.PathTaperX.ToString() + "," + primShape.PathTaperY.ToString());
189 //m_log.Error("ProfileBegin:" + primShape.ProfileBegin.ToString() + "," + primShape.ProfileBegin.ToString());
190 //m_log.Error("PathScale:" + primShape.PathScaleX.ToString() + "," + primShape.PathScaleY.ToString());
185 // Procedure: This is based on the fact that the upper (plus) and lower (minus) Z-surface 191 // Procedure: This is based on the fact that the upper (plus) and lower (minus) Z-surface
186 // of a block are basically the same 192 // of a block are basically the same
187 // They may be warped differently but the shape is identical 193 // They may be warped differently but the shape is identical
@@ -299,6 +305,35 @@ namespace OpenSim.Region.Physics.Meshing
299 305
300 extr.size = size; 306 extr.size = size;
301 307
308 if (taperX != 100)
309 {
310 if (taperX > 100)
311 {
312 extr.taperTopFactorX = 1.0f - ((float)taperX / 200);
313 //m_log.Warn("taperTopFactorX: " + extr.taperTopFactorX.ToString());
314 }
315 else
316 {
317 extr.taperBotFactorX = 1.0f - ((100 - (float)taperX) / 100);
318 //m_log.Warn("taperBotFactorX: " + extr.taperBotFactorX.ToString());
319 }
320
321 }
322
323 if (taperY != 100)
324 {
325 if (taperY > 100)
326 {
327 extr.taperTopFactorY = 1.0f - ((float)taperY / 200);
328 //m_log.Warn("taperTopFactorY: " + extr.taperTopFactorY.ToString());
329 }
330 else
331 {
332 extr.taperBotFactorY = 1.0f - ((100 - (float)taperY) / 100);
333 //m_log.Warn("taperBotFactorY: " + extr.taperBotFactorY.ToString());
334 }
335 }
336
302 Mesh result = extr.Extrude(m); 337 Mesh result = extr.Extrude(m);
303 result.DumpRaw(baseDir, primName, "Z extruded"); 338 result.DumpRaw(baseDir, primName, "Z extruded");
304 return result; 339 return result;
@@ -309,7 +344,8 @@ namespace OpenSim.Region.Physics.Meshing
309 UInt16 hollowFactor = primShape.ProfileHollow; 344 UInt16 hollowFactor = primShape.ProfileHollow;
310 UInt16 profileBegin = primShape.ProfileBegin; 345 UInt16 profileBegin = primShape.ProfileBegin;
311 UInt16 profileEnd = primShape.ProfileEnd; 346 UInt16 profileEnd = primShape.ProfileEnd;
312 347 UInt16 taperX = primShape.PathScaleX;
348 UInt16 taperY = primShape.PathScaleY;
313 // Procedure: This is based on the fact that the upper (plus) and lower (minus) Z-surface 349 // Procedure: This is based on the fact that the upper (plus) and lower (minus) Z-surface
314 // of a block are basically the same 350 // of a block are basically the same
315 // They may be warped differently but the shape is identical 351 // They may be warped differently but the shape is identical
@@ -589,7 +625,35 @@ namespace OpenSim.Region.Physics.Meshing
589 Extruder extr = new Extruder(); 625 Extruder extr = new Extruder();
590 626
591 extr.size = size; 627 extr.size = size;
628 if (taperX != 100)
629 {
630 if (taperX > 100)
631 {
632 extr.taperTopFactorX = 1.0f - ((float)taperX / 200);
633 //m_log.Warn("taperTopFactorX: " + extr.taperTopFactorX.ToString());
634 }
635 else
636 {
637 extr.taperBotFactorX = 1.0f - ((100 - (float)taperX) / 100);
638 //m_log.Warn("taperBotFactorX: " + extr.taperBotFactorX.ToString());
639 }
640
641 }
592 642
643 if (taperY != 100)
644 {
645 if (taperY > 100)
646 {
647 extr.taperTopFactorY = 1.0f - ((float)taperY / 200);
648 //m_log.Warn("taperTopFactorY: " + extr.taperTopFactorY.ToString());
649 }
650 else
651 {
652 extr.taperBotFactorY = 1.0f - ((100 - (float)taperY) / 100);
653 //m_log.Warn("taperBotFactorY: " + extr.taperBotFactorY.ToString());
654 }
655 }
656
593 Mesh result = extr.Extrude(m); 657 Mesh result = extr.Extrude(m);
594 result.DumpRaw(baseDir, primName, "Z extruded"); 658 result.DumpRaw(baseDir, primName, "Z extruded");
595 return result; 659 return result;