Home | History | Annotate | Download | only in Intersection

Lines Matching refs:reduction

22 static int coincident_line(const Cubic& cubic, Cubic& reduction) {
23 reduction[0] = reduction[1] = cubic[0];
27 static int vertical_line(const Cubic& cubic, ReduceOrder_Styles reduceStyle, Cubic& reduction) {
29 reduction[0] = cubic[0];
30 reduction[1] = cubic[3];
34 int smaller = reduction[1].y > reduction[0].y;
39 if (reduction[smaller].y > yExtrema) {
40 reduction[smaller].y = yExtrema;
43 if (reduction[larger].y < yExtrema) {
44 reduction[larger].y = yExtrema;
50 static int horizontal_line(const Cubic& cubic, ReduceOrder_Styles reduceStyle, Cubic& reduction) {
52 reduction[0] = cubic[0];
53 reduction[1] = cubic[3];
57 int smaller = reduction[1].x > reduction[0].x;
62 if (reduction[smaller].x > xExtrema) {
63 reduction[smaller].x = xExtrema;
66 if (reduction[larger].x < xExtrema) {
67 reduction[larger].x = xExtrema;
74 static int check_quadratic(const Cubic& cubic, Cubic& reduction) {
87 reduction[0] = cubic[0];
88 reduction[1].x = midX;
89 reduction[1].y = midY;
90 reduction[2] = cubic[3];
95 int minX, int maxX, int minY, int maxY, Cubic& reduction) {
109 reduction[0] = cubic[0];
110 reduction[1] = cubic[3];
153 reduction[replace] = extrema;
172 http://objectmix.com/graphics/132906-fast-precision-driven-cubic-quadratic-piecewise-degree-reduction-algos-2-a.html
197 int reduceOrder(const Cubic& cubic, Cubic& reduction, ReduceOrder_Quadratics allowQuadratics,
237 return coincident_line(cubic, reduction);
239 return vertical_line(cubic, reduceStyle, reduction);
242 return horizontal_line(cubic, reduceStyle, reduction);
244 int result = check_linear(cubic, reduceStyle, minX, maxX, minY, maxY, reduction);
249 && (result = check_quadratic(cubic, reduction))) {
252 memcpy(reduction, cubic, sizeof(Cubic));