- my @midp;
- foreach my $ci (0..2) {
- push @midp, 0.5 * ($t->[$ix][$ci] + $t->[$jx][$ci]);
+ my $kx = ($ix+2) % 3;
+ if ($edge_need_subdivide_fn->($t[$ix], $t[$jx])) {
+ foreach my $ci (0..2) {
+ push @midp, 0.5 * ($t->[$ix][$ci] + $t->[$jx][$ci]);
+ }
+ # triangle i-j-k, splitting edge i-m
+ # gives i-m-k, k-m-j
+ push @$changed,
+ [ $t[$ix], \@midp, $t[kx] ],
+ [ $t[$kx], \@midp, $t[jx] ];
+ return;