void DrawableComposite::recalculateCoordinates (Expression::Scope* scope) { Point<float> resolved[3]; bounds.resolveThreePoints (resolved, scope); const Rectangle<float> content (getContentArea().resolve (scope)); AffineTransform t (AffineTransform::fromTargetPoints (content.getX(), content.getY(), resolved[0].x, resolved[0].y, content.getRight(), content.getY(), resolved[1].x, resolved[1].y, content.getX(), content.getBottom(), resolved[2].x, resolved[2].y)); if (t.isSingularity()) t = AffineTransform::identity; setTransform (t); }
//============================================================================== void DrawableImage::refreshTransformFromBounds() { if (! image.isNull()) { Point<float> resolved[3]; bounds.resolveThreePoints (resolved, getParent()); const Point<float> tr (resolved[0] + (resolved[1] - resolved[0]) / (float) image.getWidth()); const Point<float> bl (resolved[0] + (resolved[2] - resolved[0]) / (float) image.getHeight()); AffineTransform t (AffineTransform::fromTargetPoints (resolved[0].getX(), resolved[0].getY(), tr.getX(), tr.getY(), bl.getX(), bl.getY())); if (! t.isSingularity()) setTransform (t); } }
void DrawableImage::recalculateCoordinates (Expression::Scope* scope) { if (image.isValid()) { Point<float> resolved[3]; bounds.resolveThreePoints (resolved, scope); const Point<float> tr (resolved[0] + (resolved[1] - resolved[0]) / (float) image.getWidth()); const Point<float> bl (resolved[0] + (resolved[2] - resolved[0]) / (float) image.getHeight()); AffineTransform t (AffineTransform::fromTargetPoints (resolved[0].x, resolved[0].y, tr.x, tr.y, bl.x, bl.y)); if (t.isSingularity()) t = AffineTransform::identity; setTransform (t); } }