--------------------------------------------------------dilate_triangle
| 188 | |
| 189 | //--------------------------------------------------------dilate_triangle |
| 190 | AGG_INLINE void dilate_triangle(double x1, double y1, |
| 191 | double x2, double y2, |
| 192 | double x3, double y3, |
| 193 | double *x, double* y, |
| 194 | double d) |
| 195 | { |
| 196 | double dx1=0.0; |
| 197 | double dy1=0.0; |
| 198 | double dx2=0.0; |
| 199 | double dy2=0.0; |
| 200 | double dx3=0.0; |
| 201 | double dy3=0.0; |
| 202 | double loc = cross_product(x1, y1, x2, y2, x3, y3); |
| 203 | if(fabs(loc) > intersection_epsilon) |
| 204 | { |
| 205 | if(cross_product(x1, y1, x2, y2, x3, y3) > 0.0) |
| 206 | { |
| 207 | d = -d; |
| 208 | } |
| 209 | calc_orthogonal(d, x1, y1, x2, y2, &dx1, &dy1); |
| 210 | calc_orthogonal(d, x2, y2, x3, y3, &dx2, &dy2); |
| 211 | calc_orthogonal(d, x3, y3, x1, y1, &dx3, &dy3); |
| 212 | } |
| 213 | *x++ = x1 + dx1; *y++ = y1 + dy1; |
| 214 | *x++ = x2 + dx1; *y++ = y2 + dy1; |
| 215 | *x++ = x2 + dx2; *y++ = y2 + dy2; |
| 216 | *x++ = x3 + dx2; *y++ = y3 + dy2; |
| 217 | *x++ = x3 + dx3; *y++ = y3 + dy3; |
| 218 | *x++ = x1 + dx3; *y++ = y1 + dy3; |
| 219 | } |
| 220 | |
| 221 | //------------------------------------------------------calc_triangle_area |
| 222 | AGG_INLINE double calc_triangle_area(double x1, double y1, |
no test coverage detected