------------------------------------------------------------------------
| 392 | |
| 393 | //------------------------------------------------------------------------ |
| 394 | void Agg2D::viewport(double worldX1, double worldY1, double worldX2, double worldY2, |
| 395 | double screenX1, double screenY1, double screenX2, double screenY2, |
| 396 | ViewportOption opt) |
| 397 | { |
| 398 | agg::trans_viewport vp; |
| 399 | switch(opt) |
| 400 | { |
| 401 | case Anisotropic: vp.preserve_aspect_ratio(0.0, 0.0, agg::aspect_ratio_stretch); break; |
| 402 | case XMinYMin: vp.preserve_aspect_ratio(0.0, 0.0, agg::aspect_ratio_meet); break; |
| 403 | case XMidYMin: vp.preserve_aspect_ratio(0.5, 0.0, agg::aspect_ratio_meet); break; |
| 404 | case XMaxYMin: vp.preserve_aspect_ratio(1.0, 0.0, agg::aspect_ratio_meet); break; |
| 405 | case XMinYMid: vp.preserve_aspect_ratio(0.0, 0.5, agg::aspect_ratio_meet); break; |
| 406 | case XMidYMid: vp.preserve_aspect_ratio(0.5, 0.5, agg::aspect_ratio_meet); break; |
| 407 | case XMaxYMid: vp.preserve_aspect_ratio(1.0, 0.5, agg::aspect_ratio_meet); break; |
| 408 | case XMinYMax: vp.preserve_aspect_ratio(0.0, 1.0, agg::aspect_ratio_meet); break; |
| 409 | case XMidYMax: vp.preserve_aspect_ratio(0.5, 1.0, agg::aspect_ratio_meet); break; |
| 410 | case XMaxYMax: vp.preserve_aspect_ratio(1.0, 1.0, agg::aspect_ratio_meet); break; |
| 411 | } |
| 412 | vp.world_viewport(worldX1, worldY1, worldX2, worldY2); |
| 413 | vp.device_viewport(screenX1, screenY1, screenX2, screenY2); |
| 414 | m_transform *= vp.to_affine(); |
| 415 | m_convCurve.approximation_scale(worldToScreen(1.0) * g_approxScale); |
| 416 | m_convStroke.approximation_scale(worldToScreen(1.0) * g_approxScale); |
| 417 | } |
| 418 | |
| 419 | |
| 420 | //------------------------------------------------------------------------ |
nothing calls this directly
no test coverage detected