249
249
void DiagSplit::split_triangle(Mesh *mesh, Patch *patch, int shader, bool smooth)
251
TriangleDice::SubPatch sub;
252
TriangleDice::EdgeFactors ef;
255
sub.Pu = make_float2(1.0f, 0.0f);
256
sub.Pv = make_float2(0.0f, 1.0f);
257
sub.Pw = make_float2(0.0f, 0.0f);
259
ef.tu = T(patch, sub.Pv, sub.Pw);
260
ef.tv = T(patch, sub.Pw, sub.Pu);
261
ef.tw = T(patch, sub.Pu, sub.Pv);
251
TriangleDice::SubPatch sub_split;
252
TriangleDice::EdgeFactors ef_split;
254
sub_split.patch = patch;
255
sub_split.Pu = make_float2(1.0f, 0.0f);
256
sub_split.Pv = make_float2(0.0f, 1.0f);
257
sub_split.Pw = make_float2(0.0f, 0.0f);
259
ef_split.tu = T(patch, sub_split.Pv, sub_split.Pw);
260
ef_split.tv = T(patch, sub_split.Pw, sub_split.Pu);
261
ef_split.tw = T(patch, sub_split.Pu, sub_split.Pv);
263
split(sub_split, ef_split);
265
265
TriangleDice dice(mesh, shader, smooth, dicing_rate);
266
266
dice.camera = camera;
287
287
void DiagSplit::split_quad(Mesh *mesh, Patch *patch, int shader, bool smooth)
289
QuadDice::SubPatch sub;
290
QuadDice::EdgeFactors ef;
293
sub.P00 = make_float2(0.0f, 0.0f);
294
sub.P10 = make_float2(1.0f, 0.0f);
295
sub.P01 = make_float2(0.0f, 1.0f);
296
sub.P11 = make_float2(1.0f, 1.0f);
298
ef.tu0 = T(patch, sub.P00, sub.P10);
299
ef.tu1 = T(patch, sub.P01, sub.P11);
300
ef.tv0 = T(patch, sub.P00, sub.P01);
301
ef.tv1 = T(patch, sub.P10, sub.P11);
289
QuadDice::SubPatch sub_split;
290
QuadDice::EdgeFactors ef_split;
292
sub_split.patch = patch;
293
sub_split.P00 = make_float2(0.0f, 0.0f);
294
sub_split.P10 = make_float2(1.0f, 0.0f);
295
sub_split.P01 = make_float2(0.0f, 1.0f);
296
sub_split.P11 = make_float2(1.0f, 1.0f);
298
ef_split.tu0 = T(patch, sub_split.P00, sub_split.P10);
299
ef_split.tu1 = T(patch, sub_split.P01, sub_split.P11);
300
ef_split.tv0 = T(patch, sub_split.P00, sub_split.P01);
301
ef_split.tv1 = T(patch, sub_split.P10, sub_split.P11);
303
split(sub_split, ef_split);
305
305
QuadDice dice(mesh, shader, smooth, dicing_rate);
306
306
dice.camera = camera;