bool RenderSVGModelObject::checkEnclosure(RenderObject* renderer, const FloatRect& rect) { if (!renderer || renderer->style()->pointerEvents() == PE_NONE) return false; if (!isGraphicsElement(renderer)) return false; AffineTransform ctm; getElementCTM(static_cast<SVGElement*>(renderer->node()), ctm); return rect.contains(ctm.mapRect(renderer->repaintRectInLocalCoordinates())); }
bool RenderSVGModelObject::checkIntersection(RenderObject* renderer, const FloatRect& rect) { if (!renderer || renderer->style()->pointerEvents() == PE_NONE) return false; if (!isGraphicsElement(renderer)) return false; AffineTransform ctm; SVGElement* svgElement = toSVGElement(renderer->node()); getElementCTM(svgElement, ctm); ASSERT(svgElement->renderer()); return intersectsAllowingEmpty(rect, ctm.mapRect(svgElement->renderer()->repaintRectInLocalCoordinates())); }
bool RenderSVGModelObject::checkEnclosure(RenderElement* renderer, const FloatRect& rect) { if (!renderer || renderer->style().pointerEvents() == PE_NONE) return false; if (!isGraphicsElement(*renderer)) return false; AffineTransform ctm; SVGElement* svgElement = downcast<SVGElement>(renderer->element()); getElementCTM(svgElement, ctm); ASSERT(svgElement->renderer()); return rect.contains(ctm.mapRect(svgElement->renderer()->repaintRectInLocalCoordinates())); }