| 705 | } |
| 706 | |
| 707 | static void |
| 708 | tensor(const BezierCPs& p, |
| 709 | double time, |
| 710 | const Point* internal, |
| 711 | Point ret[4][4]) |
| 712 | { |
| 713 | ret[0][0] = getPointAt(p, time, 0); |
| 714 | ret[0][1] = getLeftPointAt(p, time, 0); |
| 715 | ret[0][2] = getRightPointAt(p, time, 3); |
| 716 | ret[0][3] = getPointAt(p, time, 3); |
| 717 | |
| 718 | ret[1][0] = getRightPointAt(p, time, 0); |
| 719 | ret[1][1] = internal[0]; |
| 720 | ret[1][2] = internal[3]; |
| 721 | ret[1][3] = getLeftPointAt(p, time, 3); |
| 722 | |
| 723 | ret[2][0] = getLeftPointAt(p, time, 1); |
| 724 | ret[2][1] = internal[1]; |
| 725 | ret[2][2] = internal[2]; |
| 726 | ret[2][3] = getRightPointAt(p, time, 2); |
| 727 | |
| 728 | ret[3][0] = getPointAt(p, time, 1); |
| 729 | ret[3][1] = getRightPointAt(p, time, 1); |
| 730 | ret[3][2] = getLeftPointAt(p, time, 2); |
| 731 | ret[3][3] = getPointAt(p, time, 2); |
| 732 | } |
| 733 | |
| 734 | static void |
| 735 | coonsPatch(const BezierCPs& p, |
no test coverage detected