--------------------------------------------------------dilate_triangle
| 206 | |
| 207 | //--------------------------------------------------------dilate_triangle |
| 208 | AGG_INLINE void dilate_triangle(double x1, |
| 209 | double y1, |
| 210 | double x2, |
| 211 | double y2, |
| 212 | double x3, |
| 213 | double y3, |
| 214 | double* x, |
| 215 | double* y, |
| 216 | double d) |
| 217 | { |
| 218 | double dx1 = 0.0; |
| 219 | double dy1 = 0.0; |
| 220 | double dx2 = 0.0; |
| 221 | double dy2 = 0.0; |
| 222 | double dx3 = 0.0; |
| 223 | double dy3 = 0.0; |
| 224 | double loc = cross_product(x1, y1, x2, y2, x3, y3); |
| 225 | if (std::fabs(loc) > intersection_epsilon) |
| 226 | { |
| 227 | if (cross_product(x1, y1, x2, y2, x3, y3) > 0.0) |
| 228 | { |
| 229 | d = -d; |
| 230 | } |
| 231 | calc_orthogonal(d, x1, y1, x2, y2, &dx1, &dy1); |
| 232 | calc_orthogonal(d, x2, y2, x3, y3, &dx2, &dy2); |
| 233 | calc_orthogonal(d, x3, y3, x1, y1, &dx3, &dy3); |
| 234 | } |
| 235 | *x++ = x1 + dx1; |
| 236 | *y++ = y1 + dy1; |
| 237 | *x++ = x2 + dx1; |
| 238 | *y++ = y2 + dy1; |
| 239 | *x++ = x2 + dx2; |
| 240 | *y++ = y2 + dy2; |
| 241 | *x++ = x3 + dx2; |
| 242 | *y++ = y3 + dy2; |
| 243 | *x++ = x3 + dx3; |
| 244 | *y++ = y3 + dy3; |
| 245 | *x++ = x1 + dx3; |
| 246 | *y++ = y1 + dy3; |
| 247 | } |
| 248 | |
| 249 | //------------------------------------------------------calc_triangle_area |
| 250 | AGG_INLINE double calc_triangle_area( |
no test coverage detected