Normand Briere
2019-06-16 372b7fd481a476cd659713a4a01bf28bf6760cbe
BoundaryRep.java
....@@ -3857,6 +3857,28 @@
38573857 Trim(true/*wastrim*/,true,crease,wasstrip,false);
38583858 }
38593859
3860
+ void GenerateNormalsMesh()
3861
+ {
3862
+ if (stripified)
3863
+ {
3864
+ Unstripify();
3865
+ }
3866
+
3867
+ if (trimmed)
3868
+ {
3869
+ normals = null;
3870
+ }
3871
+ else
3872
+ {
3873
+ for (int i=VertexCount(); --i>=0;)
3874
+ {
3875
+ Vertex v = GetVertex(i);
3876
+
3877
+ v.norm = null;
3878
+ }
3879
+ }
3880
+ }
3881
+
38603882 void GenNormalsJME()
38613883 {
38623884 assert(false);
....@@ -4013,8 +4035,9 @@
40134035 triangles[i] = i;
40144036 }
40154037
4016
- Untrim();
4017
- MergeNormals();
4038
+// Untrim();
4039
+ if (!trimmed)
4040
+ MergeNormals();
40184041 }
40194042 }
40204043
....@@ -4076,8 +4099,9 @@
40764099 triangles[0] = 3;
40774100 }
40784101
4079
- Untrim();
4080
- MergeNormals();
4102
+ //Untrim();
4103
+ if (!trimmed)
4104
+ MergeNormals();
40814105 }
40824106
40834107 /*
....@@ -4942,9 +4966,18 @@
49424966 v./*pos.*/y = positions[i3 + 1];
49434967 v./*pos.*/z = positions[i3 + 2];
49444968
4945
- v.norm.x = normals[i3];
4946
- v.norm.y = normals[i3 + 1];
4947
- v.norm.z = normals[i3 + 2];
4969
+ if (normals == null)
4970
+ {
4971
+ v.norm.x = 0;
4972
+ v.norm.y = 0;
4973
+ v.norm.z = 0;
4974
+ }
4975
+ else
4976
+ {
4977
+ v.norm.x = normals[i3];
4978
+ v.norm.y = normals[i3 + 1];
4979
+ v.norm.z = normals[i3 + 2];
4980
+ }
49484981
49494982 v.s = uvmap[i2];
49504983 v.t = uvmap[i2 + 1];