291 |
291 |
|
292 |
292 |
if( eupp<0 )
|
293 |
293 |
{
|
294 |
|
normL[0]=vT[0]-vL[0];
|
295 |
|
normL[1]=vT[1]-vL[1];
|
|
294 |
normL[0]=vL[0]-vT[0];
|
|
295 |
normL[1]=vL[1]-vT[1];
|
296 |
296 |
}
|
297 |
297 |
else
|
298 |
298 |
{
|
299 |
|
normL[0]= v[2*prev ] - v[2*curr ];
|
300 |
|
normL[1]= v[2*prev+1] - v[2*curr+1];
|
|
299 |
normL[0]= v[2*curr ] - v[2*prev ];
|
|
300 |
normL[1]= v[2*curr+1] - v[2*prev+1];
|
301 |
301 |
}
|
302 |
302 |
|
303 |
303 |
if( eupn<0 )
|
304 |
304 |
{
|
305 |
|
normR[0]=vT[0]-vR[0];
|
306 |
|
normR[1]=vT[1]-vR[1];
|
|
305 |
normR[0]=vR[0]-vT[0];
|
|
306 |
normR[1]=vR[1]-vT[1];
|
307 |
307 |
}
|
308 |
308 |
else
|
309 |
309 |
{
|
310 |
310 |
int nnxt= next==len-1 ? 0 : next+1;
|
311 |
|
normL[0]= v[2*nnxt ] - v[2*next ];
|
312 |
|
normL[1]= v[2*nnxt+1] - v[2*next+1];
|
|
311 |
normR[0]= v[2*next ] - v[2*nnxt ];
|
|
312 |
normR[1]= v[2*next+1] - v[2*nnxt+1];
|
313 |
313 |
}
|
314 |
314 |
|
315 |
315 |
return MeshBandedTriangle.MODE_NORMAL;
|
... | ... | |
331 |
331 |
}
|
332 |
332 |
else
|
333 |
333 |
{
|
334 |
|
float dx=v[2*curr]-v[2*next];
|
335 |
|
float dy=v[2*curr+1]-v[2*next+1];
|
|
334 |
float dx=v[2*next ]-v[2*curr ];
|
|
335 |
float dy=v[2*next+1]-v[2*curr+1];
|
336 |
336 |
|
337 |
337 |
normL[0]=dx;
|
338 |
338 |
normL[1]=dy;
|
... | ... | |
383 |
383 |
|
384 |
384 |
for(int j=0; j<num; j++)
|
385 |
385 |
{
|
386 |
|
int mode=computeMode(vL, vR, vT, normL, normL, edgesUp, vertsUp,vertices,centers, i,j);
|
|
386 |
int mode=computeMode(vL, vR, vT, normL, normR, edgesUp, vertsUp,vertices,centers, i,j);
|
387 |
387 |
triangles[index++] = new MeshBandedTriangle(vL, vR, vT, band, normL, normR, mode, exBands, exVertices);
|
388 |
388 |
}
|
389 |
389 |
}
|
Fixes for MeshMultigon. Perfect!