diff options
Diffstat (limited to 'OpenSim/Region/Physics/Meshing/Extruder.cs')
-rw-r--r-- | OpenSim/Region/Physics/Meshing/Extruder.cs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/OpenSim/Region/Physics/Meshing/Extruder.cs b/OpenSim/Region/Physics/Meshing/Extruder.cs index 5886c9e..086261b 100644 --- a/OpenSim/Region/Physics/Meshing/Extruder.cs +++ b/OpenSim/Region/Physics/Meshing/Extruder.cs | |||
@@ -40,6 +40,8 @@ namespace OpenSim.Region.Physics.Meshing | |||
40 | public float taperTopFactorY = 1f; | 40 | public float taperTopFactorY = 1f; |
41 | public float taperBotFactorX = 1f; | 41 | public float taperBotFactorX = 1f; |
42 | public float taperBotFactorY = 1f; | 42 | public float taperBotFactorY = 1f; |
43 | public float pushX = 0f; | ||
44 | public float pushY = 0f; | ||
43 | 45 | ||
44 | public Mesh Extrude(Mesh m) | 46 | public Mesh Extrude(Mesh m) |
45 | { | 47 | { |
@@ -54,10 +56,17 @@ namespace OpenSim.Region.Physics.Meshing | |||
54 | if (v == null) | 56 | if (v == null) |
55 | continue; | 57 | continue; |
56 | 58 | ||
59 | // This is the top | ||
60 | // Set the Z + .5 to match the rest of the scale of the mesh | ||
61 | // Scale it by Size, and Taper the scaling | ||
57 | v.Z = +.5f; | 62 | v.Z = +.5f; |
58 | v.X *= (size.X * taperTopFactorX); | 63 | v.X *= (size.X * taperTopFactorX); |
59 | v.Y *= (size.Y * taperTopFactorY); | 64 | v.Y *= (size.Y * taperTopFactorY); |
60 | v.Z *= size.Z; | 65 | v.Z *= size.Z; |
66 | |||
67 | //Push the top of the object over by the Top Shear amount | ||
68 | v.X += pushX * size.X; | ||
69 | v.Y += pushY * size.X; | ||
61 | } | 70 | } |
62 | 71 | ||
63 | foreach (Vertex v in workingMinus.vertices) | 72 | foreach (Vertex v in workingMinus.vertices) |
@@ -65,6 +74,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
65 | if (v == null) | 74 | if (v == null) |
66 | continue; | 75 | continue; |
67 | 76 | ||
77 | // This is the bottom | ||
68 | v.Z = -.5f; | 78 | v.Z = -.5f; |
69 | v.X *= (size.X * taperBotFactorX); | 79 | v.X *= (size.X * taperBotFactorX); |
70 | v.Y *= (size.Y * taperBotFactorY); | 80 | v.Y *= (size.Y * taperBotFactorY); |