Normand Briere
2019-06-13 4629090fafbef256abd0686a85ee12042d658868
Mocap big data
5 files modified
353 ■■■■■ changed files
BoundaryRep.java 47 ●●●● patch | view | raw | blame | history
GroupEditor.java 9 ●●●● patch | view | raw | blame | history
Mocap.java 18 ●●●●● patch | view | raw | blame | history
ObjEditor.java 10 ●●●●● patch | view | raw | blame | history
Object3D.java 269 ●●●●● patch | view | raw | blame | history
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];
GroupEditor.java
....@@ -2542,7 +2542,7 @@
25422542 } else
25432543 if (source == genNormalsMESHItem)
25442544 {
2545
- GenNormals(true); // TODO
2545
+ GenNormalsMESH();
25462546 } else
25472547 if (source == genNormalsORGANItem)
25482548 {
....@@ -3515,6 +3515,13 @@
35153515 refreshContents();
35163516 }
35173517
3518
+ void GenNormalsMESH()
3519
+ {
3520
+ group.GenNormalsMeshS();
3521
+
3522
+ refreshContents();
3523
+ }
3524
+
35183525 void GenNormalsMINE()
35193526 {
35203527 group.selection.GenNormalsMINE();
Mocap.java
....@@ -644,6 +644,24 @@
644644 // transient // aout 2013
645645 Object3D skeleton;
646646
647
+ void ExtractBigData(Object3D o)
648
+ {
649
+ super.ExtractBigData(o);
650
+
651
+ o.bvh = this.bvh;
652
+ o.skeleton = this.skeleton;
653
+ this.bvh = null;
654
+ this.skeleton = null;
655
+ }
656
+
657
+ void RestoreBigData(Object3D o)
658
+ {
659
+ super.RestoreBigData(o);
660
+
661
+ this.bvh = o.bvh;
662
+ this.skeleton = o.skeleton;
663
+ }
664
+
647665 boolean smoothed;
648666
649667 //boolean touched;
ObjEditor.java
....@@ -3306,12 +3306,17 @@
33063306 {
33073307 cRadio tab = GetCurrentTab();
33083308
3309
+ boolean temp = CameraPane.SWITCH;
3310
+ CameraPane.SWITCH = false;
3311
+
33093312 copy.ExtractBigData(hashtable);
33103313
33113314 //EditorFrame.m_MainFrame.requestFocusInWindow();
33123315 tab.graphs[tab.undoindex++] = Compress(copy);
33133316
33143317 copy.RestoreBigData(hashtable);
3318
+
3319
+ CameraPane.SWITCH = temp;
33153320
33163321 //assert(hashtable.isEmpty());
33173322
....@@ -3342,6 +3347,9 @@
33423347
33433348 void CopyChanged(Object3D obj)
33443349 {
3350
+ boolean temp = CameraPane.SWITCH;
3351
+ CameraPane.SWITCH = false;
3352
+
33453353 copy.ExtractBigData(hashtable);
33463354
33473355 copy.clear();
....@@ -3353,6 +3361,8 @@
33533361
33543362 copy.RestoreBigData(hashtable);
33553363
3364
+ CameraPane.SWITCH = temp;
3365
+
33563366 //assert(hashtable.isEmpty());
33573367
33583368 copy.Touch();
Object3D.java
....@@ -24,6 +24,11 @@
2424
2525 private UUID uuid = UUID.randomUUID();
2626
27
+ // TEMPORARY for mocap undo
28
+ mocap.reader.BVHReader.BVHResult bvh;
29
+ Object3D skeleton;
30
+ //
31
+
2732 ScriptNode scriptnode;
2833
2934 void InitOthers()
....@@ -104,125 +109,136 @@
104109
105110 // transient boolean reduced; // for morph reduction
106111
107
-transient com.bulletphysics.linearmath.Transform cache; // for fast merge
108
-transient com.bulletphysics.linearmath.Transform cache_1; // for fast merge
112
+ transient com.bulletphysics.linearmath.Transform cache; // for fast merge
113
+ transient com.bulletphysics.linearmath.Transform cache_1; // for fast merge
109114
110
-transient Object3D transientsupport; // for cloning
111
-transient boolean transientlink2master;
115
+ transient Object3D transientsupport; // for cloning
116
+ transient boolean transientlink2master;
112117
113
-void SaveSupports()
114
-{
115
- if (blockloop)
116
- return;
117
-
118
- transientsupport = support;
119
- transientlink2master = link2master;
120
-
121
- support = null;
122
- link2master = false;
123
-
124
- if (bRep != null)
118
+ void SaveSupports()
125119 {
126
- bRep.SaveSupports();
120
+ if (blockloop)
121
+ return;
122
+
123
+ transientsupport = support;
124
+ transientlink2master = link2master;
125
+
126
+ support = null;
127
+ link2master = false;
128
+
129
+ if (bRep != null)
130
+ {
131
+ bRep.SaveSupports();
132
+ }
133
+
134
+ for (int i = 0; i < Size(); i++)
135
+ {
136
+ Object3D child = (Object3D) get(i);
137
+ if (child == null)
138
+ continue;
139
+ blockloop = true;
140
+ child.SaveSupports();
141
+ blockloop = false;
142
+ }
127143 }
128
-
129
- for (int i = 0; i < Size(); i++)
130
- {
131
- Object3D child = (Object3D) get(i);
132
- if (child == null)
133
- continue;
134
- blockloop = true;
135
- child.SaveSupports();
136
- blockloop = false;
137
- }
138
-}
139144
140
-void RestoreSupports()
141
-{
142
- if (blockloop)
143
- return;
145
+ void RestoreSupports()
146
+ {
147
+ if (blockloop)
148
+ return;
144149
145
- support = transientsupport;
146
- link2master = transientlink2master;
147
- transientsupport = null;
148
- transientlink2master = false;
149
-
150
- if (bRep != null)
151
- {
152
- bRep.RestoreSupports();
153
- }
154
-
155
- for (int i = 0; i < Size(); i++)
156
- {
157
- Object3D child = (Object3D) get(i);
158
- if (child == null)
159
- continue;
160
- blockloop = true;
161
- child.RestoreSupports();
162
- blockloop = false;
163
- }
164
-}
150
+ support = transientsupport;
151
+ link2master = transientlink2master;
152
+ transientsupport = null;
153
+ transientlink2master = false;
165154
166
-void ExtractBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable)
167
-{
168
- if (hashtable.containsKey(GetUUID()))
155
+ if (bRep != null)
156
+ {
157
+ bRep.RestoreSupports();
158
+ }
159
+
160
+ for (int i = 0; i < Size(); i++)
161
+ {
162
+ Object3D child = (Object3D) get(i);
163
+ if (child == null)
164
+ continue;
165
+ blockloop = true;
166
+ child.RestoreSupports();
167
+ blockloop = false;
168
+ }
169
+ }
170
+
171
+ void ExtractBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable)
169172 {
173
+ if (hashtable.containsKey(GetUUID()))
174
+ {
175
+ Object3D o = hashtable.get(GetUUID());
176
+
177
+ assert(this.bRep == o.bRep);
178
+ if (this.bRep != null)
179
+ assert(this.bRep.support == o.transientrep);
180
+
181
+ return;
182
+ }
183
+
184
+ Object3D o = new Object3D();
185
+
186
+ hashtable.put(GetUUID(), o);
187
+
188
+ for (int i=0; i<Size(); i++)
189
+ {
190
+ get(i).ExtractBigData(hashtable);
191
+ }
192
+
193
+ ExtractBigData(o);
194
+ }
195
+
196
+ void ExtractBigData(Object3D o)
197
+ {
198
+ o.bRep = this.bRep;
199
+ if (this.bRep != null)
200
+ {
201
+ o.transientrep = this.bRep.support;
202
+ o.bRep.support = null;
203
+ }
204
+
205
+ // o.support = this.support;
206
+ // o.fileparent = this.fileparent;
207
+ // if (this.bRep != null)
208
+ // o.bRep = this.bRep.support;
209
+
210
+ this.bRep = null;
211
+ // if (this.bRep != null)
212
+ // this.bRep.support = null;
213
+ // this.support = null;
214
+ // this.fileparent = null;
215
+ }
216
+
217
+ void RestoreBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable)
218
+ {
219
+ if (!hashtable.containsKey(GetUUID()))
220
+ return;
221
+
170222 Object3D o = hashtable.get(GetUUID());
171223
172
- assert(this.bRep == o.bRep);
173
- if (this.bRep != null)
174
- assert(this.bRep.support == o.transientrep);
175
-
176
- return;
177
- }
178
-
179
- Object3D o = new Object3D();
180
- o.bRep = this.bRep;
181
- if (this.bRep != null)
182
- {
183
- o.transientrep = this.bRep.support;
184
- o.bRep.support = null;
185
- }
186
-
187
-// o.support = this.support;
188
-// o.fileparent = this.fileparent;
189
-// if (this.bRep != null)
190
-// o.bRep = this.bRep.support;
191
-
192
- hashtable.put(GetUUID(), o);
193
-
194
- this.bRep = null;
195
-// if (this.bRep != null)
196
-// this.bRep.support = null;
197
-// this.support = null;
198
-// this.fileparent = null;
199
-
200
- for (int i=0; i<Size(); i++)
201
- {
202
- get(i).ExtractBigData(hashtable);
203
- }
204
-}
224
+ RestoreBigData(o);
205225
206
-void RestoreBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable)
207
-{
208
- if (!hashtable.containsKey(GetUUID()))
209
- return;
210
-
211
- Object3D o = hashtable.get(GetUUID());
212
-
213
- this.bRep = o.bRep;
214
- if (this.bRep != null)
215
- this.bRep.support = o.transientrep;
216
-// this.support = o.support;
217
-// this.fileparent = o.fileparent;
218
-
219
- hashtable.remove(GetUUID());
220
-
221
- for (int i=0; i<Size(); i++)
222
- {
223
- get(i).RestoreBigData(hashtable);
226
+ hashtable.remove(GetUUID());
227
+
228
+ for (int i=0; i<Size(); i++)
229
+ {
230
+ get(i).RestoreBigData(hashtable);
231
+ }
224232 }
225
-}
233
+
234
+ void RestoreBigData(Object3D o)
235
+ {
236
+ this.bRep = o.bRep;
237
+ if (this.bRep != null)
238
+ this.bRep.support = o.transientrep;
239
+ // this.support = o.support;
240
+ // this.fileparent = o.fileparent;
241
+ }
226242
227243 // MOCAP SUPPORT
228244 double tx,ty,tz,rx,ry,rz;
....@@ -2693,6 +2709,18 @@
26932709 //Touch();
26942710 }
26952711
2712
+ void GenNormalsMeshS()
2713
+ {
2714
+ selection.GenNormalsMesh();
2715
+// for (int i=0; i<selection.size(); i++)
2716
+// {
2717
+// Object3D selectee = (Object3D) selection.elementAt(i);
2718
+// selectee.GenNormals(crease);
2719
+// }
2720
+
2721
+ //Touch();
2722
+ }
2723
+
26962724 void ClearColorsS()
26972725 {
26982726 selection.ClearColors();
....@@ -2824,6 +2852,24 @@
28242852 if (child == null)
28252853 continue;
28262854 child.GenNormals(crease);
2855
+// Children().release(i);
2856
+ }
2857
+ blockloop = false;
2858
+ }
2859
+
2860
+ void GenNormalsMesh()
2861
+ {
2862
+ if (blockloop)
2863
+ return;
2864
+
2865
+ blockloop = true;
2866
+ GenNormalsMesh0();
2867
+ for (int i = 0; i < Children().Size(); i++)
2868
+ {
2869
+ Object3D child = (Object3D) Children().get(i); // reserve(i);
2870
+ if (child == null)
2871
+ continue;
2872
+ child.GenNormalsMesh();
28272873 // Children().release(i);
28282874 }
28292875 blockloop = false;
....@@ -2996,6 +3042,15 @@
29963042 }
29973043 }
29983044
3045
+ void GenNormalsMesh0()
3046
+ {
3047
+ if (bRep != null)
3048
+ {
3049
+ bRep.GenerateNormalsMesh();
3050
+ Touch();
3051
+ }
3052
+ }
3053
+
29993054 void GenNormalsMINE0()
30003055 {
30013056 if (bRep != null)