Normand Briere
2019-09-30 3966454055db8e04700e881a091c2d33dcfda232
PointFlow.java
....@@ -102,208 +102,7 @@
102102 double resizefactor = 1;
103103
104104 static cVector tmp = new cVector();
105
-
106
- void CallList(CameraPane display, Object3D /*Composite*/ root, boolean selected, boolean blocked)
107
- {
108
- CreateHT();
109105
110
- float r = display.modelParams0[0];
111
- float g = display.modelParams0[1];
112
- float b = display.modelParams0[2];
113
- float opacity = display.modelParams5[1];
114
-
115
- //final GL gl = GLU.getCurrentGL();
116
- GL gl = display.GetGL(); // getGL();
117
-
118
- int s = points.size();
119
-
120
- boolean cf = gl.glIsEnabled(gl.GL_CULL_FACE);
121
- gl.glEnable(gl.GL_CULL_FACE);
122
-
123
- for (int i=s; --i>=0;)
124
- //for (int i=0; i<s; i++)
125
- {
126
- cVector v = points.get(i);
127
-
128
- double mindist = Double.MAX_VALUE;
129
-
130
- double size = minimumSize;
131
-
132
- double distancenext = 0;
133
-
134
- if (i > 0)
135
- {
136
- cVector w = points.get(i-1);
137
-
138
- double dist = w.distance(v);
139
-
140
- distancenext = dist;
141
-
142
- if (mindist > dist)
143
- {
144
- mindist = dist;
145
- size = mindist*resizefactor;
146
- }
147
- }
148
-
149
- if (i < s-1)
150
- {
151
- cVector w = points.get(i+1);
152
-
153
- double dist = w.distance(v);
154
-
155
- if (mindist > dist)
156
- {
157
- mindist = dist;
158
- size = mindist*resizefactor;
159
- }
160
- }
161
-
162
- if (size < minimumSize)
163
- size = minimumSize;
164
- if (size > maximumSize)
165
- size = maximumSize;
166
-
167
- double tx = v.x;
168
- double ty = v.y;
169
- double tz = v.z;
170
-
171
- // if (tx == 0 && ty == 0 && tz == 0)
172
- // continue;
173
-
174
- gl.glMatrixMode(gl.GL_TEXTURE);
175
- gl.glPushMatrix();
176
- texmat[12] = texmat[13] = texmat[14] = i;
177
-
178
- gl.glMultMatrixf(texmat, 0);
179
-
180
- gl.glMatrixMode(gl.GL_MODELVIEW);
181
- gl.glPushMatrix();
182
-
183
- gl.glTranslated(tx,ty,tz);
184
-
185
- gl.glScaled(size,size,size);
186
-
187
-// float cr = colorBuf.get(index4);
188
-// float cg = colorBuf.get(index4+1);
189
-// float cb = colorBuf.get(index4+2);
190
-// float ca = colorBuf.get(index4+3);
191
-//
192
-// display.modelParams0[0] = r * cr;
193
-// display.modelParams0[1] = g * cg;
194
-// display.modelParams0[2] = b * cb;
195
-//
196
-// display.modelParams5[1] = opacity * ca;
197
-//
198
-// gl.glProgramEnvParameter4fvARB(gl.GL_FRAGMENT_PROGRAM_ARB, 0, display.modelParams0, 0);
199
-// gl.glProgramEnvParameter4fvARB(gl.GL_FRAGMENT_PROGRAM_ARB, 5, display.modelParams5, 0);
200
-//
201
-// RandomNode.globalseed = (int)sizeBuf.get(index3+2); // i;
202
-// RandomNode.globalseed2 = RandomNode.globalseed;
203
-//
204
-//// gl.glColor4f(cr,cg,cb,ca);
205
-// // gl.glScalef(1024/16,1024/16,1024/16);
206
- geo.Draw/*Node*/(display,null,selected, blocked);
207
-
208
- gl.glPopMatrix();
209
-
210
- double step = size/4; //
211
-
212
- if (i == 0 || size == 0 || distancenext > 8*size || distancenext < step)
213
- continue;
214
-
215
- int nbsteps = (int)(distancenext/step);
216
-
217
- step = distancenext/nbsteps;
218
-
219
- cVector next = points.get(i-1);
220
-
221
- tmp.set(next);
222
- tmp.sub(v);
223
- tmp.normalize();
224
- tmp.mul(step);
225
-
226
- // calculate next size
227
- mindist = Double.MAX_VALUE;
228
-
229
- double nextsize = minimumSize;
230
-
231
- if (i > 1)
232
- {
233
- cVector w = points.get(i-2);
234
-
235
- double dist = w.distance(next);
236
-
237
- if (mindist > dist)
238
- {
239
- mindist = dist;
240
- nextsize = mindist*resizefactor;
241
- }
242
- }
243
-
244
- double dist = v.distance(next);
245
-
246
- if (mindist > dist)
247
- {
248
- mindist = dist;
249
- nextsize = mindist*resizefactor;
250
- }
251
-
252
- if (nextsize < minimumSize)
253
- nextsize = minimumSize;
254
- if (nextsize > maximumSize)
255
- nextsize = maximumSize;
256
- //
257
-
258
- double count = 0;
259
-
260
- while (distancenext > 0.000000001) // step
261
- {
262
- gl.glPushMatrix();
263
-
264
- gl.glTranslated(tx + tmp.x*count, ty + tmp.y*count, tz + tmp.z*count);
265
-
266
- double K = count/nbsteps;
267
-
268
- double intersize = K*nextsize + (1-K)*size;
269
-
270
- gl.glScaled(intersize,intersize,intersize);
271
-
272
- geo.Draw/*Node*/(display,null,selected,blocked);
273
-
274
- count++;
275
-
276
- distancenext -= step;
277
-
278
- gl.glPopMatrix();
279
- }
280
-
281
- if (count != nbsteps)
282
- assert(count == nbsteps);
283
-
284
- // gl.glScalef(16.0f/1024,16.0f/1024,16.0f/1024);
285
- //gl.glTranslatef(-tx,-ty,-tz);
286
-
287
- gl.glMatrixMode(gl.GL_TEXTURE);
288
- gl.glPopMatrix();
289
- }
290
-
291
- if (!cf)
292
- gl.glDisable(gl.GL_CULL_FACE);
293
-
294
-// display.modelParams0[0] = r;
295
-// display.modelParams0[1] = g;
296
-// display.modelParams0[2] = b;
297
-//
298
-// display.modelParams5[1] = opacity;
299
-//
300
-// gl.glProgramEnvParameter4fvARB(gl.GL_FRAGMENT_PROGRAM_ARB, 0, display.modelParams0, 0);
301
-// gl.glProgramEnvParameter4fvARB(gl.GL_FRAGMENT_PROGRAM_ARB, 5, display.modelParams5, 0);
302
-
303
- gl.glMatrixMode(gl.GL_MODELVIEW);
304
- }
305
-
306
-
307106 void createEditWindow(GroupEditor callee, boolean newWindow)
308107 {
309108 //editWindow = (new SphereEditor(this, deepCopy(), callee)).GetEditor();