diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Physics/Meshing/Mesh.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Meshing/Meshmerizer.cs | 108 | ||||
-rw-r--r-- | OpenSim/Region/Physics/Meshing/SculptMesh.cs | 2 |
3 files changed, 56 insertions, 56 deletions
diff --git a/OpenSim/Region/Physics/Meshing/Mesh.cs b/OpenSim/Region/Physics/Meshing/Mesh.cs index 652bbd7..be2a019 100644 --- a/OpenSim/Region/Physics/Meshing/Mesh.cs +++ b/OpenSim/Region/Physics/Meshing/Mesh.cs | |||
@@ -39,7 +39,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
39 | public List<Triangle> triangles; | 39 | public List<Triangle> triangles; |
40 | GCHandle pinnedVirtexes; | 40 | GCHandle pinnedVirtexes; |
41 | GCHandle pinnedIndex; | 41 | GCHandle pinnedIndex; |
42 | public float[] normals; | 42 | //public float[] normals; |
43 | 43 | ||
44 | public Mesh() | 44 | public Mesh() |
45 | { | 45 | { |
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs index a038dc2..4618539 100644 --- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs +++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs | |||
@@ -1760,66 +1760,66 @@ namespace OpenSim.Region.Physics.Meshing | |||
1760 | return result; | 1760 | return result; |
1761 | } | 1761 | } |
1762 | 1762 | ||
1763 | public static void CalcNormals(Mesh mesh) | 1763 | //public static void CalcNormals(Mesh mesh) |
1764 | { | 1764 | //{ |
1765 | int iTriangles = mesh.triangles.Count; | 1765 | // int iTriangles = mesh.triangles.Count; |
1766 | 1766 | ||
1767 | mesh.normals = new float[iTriangles*3]; | 1767 | // mesh.normals = new float[iTriangles*3]; |
1768 | 1768 | ||
1769 | int i = 0; | 1769 | // int i = 0; |
1770 | foreach (Triangle t in mesh.triangles) | 1770 | // foreach (Triangle t in mesh.triangles) |
1771 | { | 1771 | // { |
1772 | float ux, uy, uz; | 1772 | // float ux, uy, uz; |
1773 | float vx, vy, vz; | 1773 | // float vx, vy, vz; |
1774 | float wx, wy, wz; | 1774 | // float wx, wy, wz; |
1775 | 1775 | ||
1776 | ux = t.v1.X; | 1776 | // ux = t.v1.X; |
1777 | uy = t.v1.Y; | 1777 | // uy = t.v1.Y; |
1778 | uz = t.v1.Z; | 1778 | // uz = t.v1.Z; |
1779 | 1779 | ||
1780 | vx = t.v2.X; | 1780 | // vx = t.v2.X; |
1781 | vy = t.v2.Y; | 1781 | // vy = t.v2.Y; |
1782 | vz = t.v2.Z; | 1782 | // vz = t.v2.Z; |
1783 | 1783 | ||
1784 | wx = t.v3.X; | 1784 | // wx = t.v3.X; |
1785 | wy = t.v3.Y; | 1785 | // wy = t.v3.Y; |
1786 | wz = t.v3.Z; | 1786 | // wz = t.v3.Z; |
1787 | 1787 | ||
1788 | 1788 | ||
1789 | // Vectors for edges | 1789 | // // Vectors for edges |
1790 | float e1x, e1y, e1z; | 1790 | // float e1x, e1y, e1z; |
1791 | float e2x, e2y, e2z; | 1791 | // float e2x, e2y, e2z; |
1792 | 1792 | ||
1793 | e1x = ux - vx; | 1793 | // e1x = ux - vx; |
1794 | e1y = uy - vy; | 1794 | // e1y = uy - vy; |
1795 | e1z = uz - vz; | 1795 | // e1z = uz - vz; |
1796 | 1796 | ||
1797 | e2x = ux - wx; | 1797 | // e2x = ux - wx; |
1798 | e2y = uy - wy; | 1798 | // e2y = uy - wy; |
1799 | e2z = uz - wz; | 1799 | // e2z = uz - wz; |
1800 | 1800 | ||
1801 | 1801 | ||
1802 | // Cross product for normal | 1802 | // // Cross product for normal |
1803 | float nx, ny, nz; | 1803 | // float nx, ny, nz; |
1804 | nx = e1y*e2z - e1z*e2y; | 1804 | // nx = e1y*e2z - e1z*e2y; |
1805 | ny = e1z*e2x - e1x*e2z; | 1805 | // ny = e1z*e2x - e1x*e2z; |
1806 | nz = e1x*e2y - e1y*e2x; | 1806 | // nz = e1x*e2y - e1y*e2x; |
1807 | 1807 | ||
1808 | // Length | 1808 | // // Length |
1809 | float l = (float) Math.Sqrt(nx*nx + ny*ny + nz*nz); | 1809 | // float l = (float) Math.Sqrt(nx*nx + ny*ny + nz*nz); |
1810 | 1810 | ||
1811 | // Normalized "normal" | 1811 | // // Normalized "normal" |
1812 | nx /= l; | 1812 | // nx /= l; |
1813 | ny /= l; | 1813 | // ny /= l; |
1814 | nz /= l; | 1814 | // nz /= l; |
1815 | 1815 | ||
1816 | mesh.normals[i] = nx; | 1816 | // //mesh.normals[i] = nx; |
1817 | mesh.normals[i + 1] = ny; | 1817 | // //mesh.normals[i + 1] = ny; |
1818 | mesh.normals[i + 2] = nz; | 1818 | // //mesh.normals[i + 2] = nz; |
1819 | 1819 | ||
1820 | i += 3; | 1820 | // i += 3; |
1821 | } | 1821 | // } |
1822 | } | 1822 | //} |
1823 | 1823 | ||
1824 | public static Vertex midUnitRadialPoint(Vertex a, Vertex b, float radius) | 1824 | public static Vertex midUnitRadialPoint(Vertex a, Vertex b, float radius) |
1825 | { | 1825 | { |
@@ -1878,21 +1878,21 @@ namespace OpenSim.Region.Physics.Meshing | |||
1878 | 1878 | ||
1879 | SculptMesh smesh = CreateSculptMesh(primName, primShape, size, lod); | 1879 | SculptMesh smesh = CreateSculptMesh(primName, primShape, size, lod); |
1880 | mesh = (Mesh)smesh; | 1880 | mesh = (Mesh)smesh; |
1881 | CalcNormals(mesh); | 1881 | //CalcNormals(mesh); |
1882 | } | 1882 | } |
1883 | else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.Square) | 1883 | else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.Square) |
1884 | { | 1884 | { |
1885 | if (primShape.PathCurve == (byte)Extrusion.Straight) | 1885 | if (primShape.PathCurve == (byte)Extrusion.Straight) |
1886 | { // its a box | 1886 | { // its a box |
1887 | mesh = CreateBoxMesh(primName, primShape, size); | 1887 | mesh = CreateBoxMesh(primName, primShape, size); |
1888 | CalcNormals(mesh); | 1888 | //CalcNormals(mesh); |
1889 | } | 1889 | } |
1890 | else if (primShape.PathCurve == (byte)Extrusion.Curve1) | 1890 | else if (primShape.PathCurve == (byte)Extrusion.Curve1) |
1891 | { // tube | 1891 | { // tube |
1892 | // do a cylinder for now | 1892 | // do a cylinder for now |
1893 | //mesh = CreateCylinderMesh(primName, primShape, size); | 1893 | //mesh = CreateCylinderMesh(primName, primShape, size); |
1894 | mesh = CreateCircularPathMesh(primName, primShape, size); | 1894 | mesh = CreateCircularPathMesh(primName, primShape, size); |
1895 | CalcNormals(mesh); | 1895 | //CalcNormals(mesh); |
1896 | } | 1896 | } |
1897 | } | 1897 | } |
1898 | else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.Circle) | 1898 | else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.Circle) |
@@ -1900,14 +1900,14 @@ namespace OpenSim.Region.Physics.Meshing | |||
1900 | if (primShape.PathCurve == (byte)Extrusion.Straight) | 1900 | if (primShape.PathCurve == (byte)Extrusion.Straight) |
1901 | { | 1901 | { |
1902 | mesh = CreateCylinderMesh(primName, primShape, size); | 1902 | mesh = CreateCylinderMesh(primName, primShape, size); |
1903 | CalcNormals(mesh); | 1903 | //CalcNormals(mesh); |
1904 | } | 1904 | } |
1905 | 1905 | ||
1906 | // ProfileCurve seems to combine hole shape and profile curve so we need to only compare against the lower 3 bits | 1906 | // ProfileCurve seems to combine hole shape and profile curve so we need to only compare against the lower 3 bits |
1907 | else if (primShape.PathCurve == (byte) Extrusion.Curve1) | 1907 | else if (primShape.PathCurve == (byte) Extrusion.Curve1) |
1908 | { // dahlia's favorite, a torus :) | 1908 | { // dahlia's favorite, a torus :) |
1909 | mesh = CreateCircularPathMesh(primName, primShape, size); | 1909 | mesh = CreateCircularPathMesh(primName, primShape, size); |
1910 | CalcNormals(mesh); | 1910 | //CalcNormals(mesh); |
1911 | } | 1911 | } |
1912 | } | 1912 | } |
1913 | else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.HalfCircle) | 1913 | else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.HalfCircle) |
@@ -1916,7 +1916,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
1916 | { | 1916 | { |
1917 | //mesh = CreateSphereMesh(primName, primShape, size); | 1917 | //mesh = CreateSphereMesh(primName, primShape, size); |
1918 | mesh = CreateCircularPathMesh(primName, primShape, size); | 1918 | mesh = CreateCircularPathMesh(primName, primShape, size); |
1919 | CalcNormals(mesh); | 1919 | //CalcNormals(mesh); |
1920 | } | 1920 | } |
1921 | } | 1921 | } |
1922 | else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.EquilateralTriangle) | 1922 | else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.EquilateralTriangle) |
@@ -1924,19 +1924,19 @@ namespace OpenSim.Region.Physics.Meshing | |||
1924 | if (primShape.PathCurve == (byte)Extrusion.Straight) | 1924 | if (primShape.PathCurve == (byte)Extrusion.Straight) |
1925 | { | 1925 | { |
1926 | mesh = CreatePrismMesh(primName, primShape, size); | 1926 | mesh = CreatePrismMesh(primName, primShape, size); |
1927 | CalcNormals(mesh); | 1927 | //CalcNormals(mesh); |
1928 | } | 1928 | } |
1929 | else if (primShape.PathCurve == (byte) Extrusion.Curve1) | 1929 | else if (primShape.PathCurve == (byte) Extrusion.Curve1) |
1930 | { // a ring - do a cylinder for now | 1930 | { // a ring - do a cylinder for now |
1931 | //mesh = CreateCylinderMesh(primName, primShape, size); | 1931 | //mesh = CreateCylinderMesh(primName, primShape, size); |
1932 | mesh = CreateCircularPathMesh(primName, primShape, size); | 1932 | mesh = CreateCircularPathMesh(primName, primShape, size); |
1933 | CalcNormals(mesh); | 1933 | //CalcNormals(mesh); |
1934 | } | 1934 | } |
1935 | } | 1935 | } |
1936 | else // just do a box | 1936 | else // just do a box |
1937 | { | 1937 | { |
1938 | mesh = CreateBoxMesh(primName, primShape, size); | 1938 | mesh = CreateBoxMesh(primName, primShape, size); |
1939 | CalcNormals(mesh); | 1939 | //CalcNormals(mesh); |
1940 | } | 1940 | } |
1941 | 1941 | ||
1942 | if (mesh != null) | 1942 | if (mesh != null) |
diff --git a/OpenSim/Region/Physics/Meshing/SculptMesh.cs b/OpenSim/Region/Physics/Meshing/SculptMesh.cs index 1c3153a..360b2f7 100644 --- a/OpenSim/Region/Physics/Meshing/SculptMesh.cs +++ b/OpenSim/Region/Physics/Meshing/SculptMesh.cs | |||
@@ -202,7 +202,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
202 | { | 202 | { |
203 | this.triangles.Clear(); | 203 | this.triangles.Clear(); |
204 | this.vertices.Clear(); | 204 | this.vertices.Clear(); |
205 | normals = new float[0]; | 205 | //normals = new float[0]; |
206 | 206 | ||
207 | } | 207 | } |
208 | public void processSculptTexture() | 208 | public void processSculptTexture() |