const Path& BasicShapeEllipse::path(const FloatRect& boundingBox) { float centerX = floatValueForCenterCoordinate(m_centerX, boundingBox.width()); float centerY = floatValueForCenterCoordinate(m_centerY, boundingBox.height()); float radiusX = floatValueForRadiusInBox(m_radiusX, centerX, boundingBox.width()); float radiusY = floatValueForRadiusInBox(m_radiusY, centerY, boundingBox.height()); return cachedEllipsePath(FloatRect(centerX - radiusX + boundingBox.x(), centerY - radiusY + boundingBox.y(), radiusX * 2, radiusY * 2)); }
void BasicShapeEllipse::path(Path& path, const FloatRect& boundingBox) { ASSERT(path.isEmpty()); FloatPoint center = floatPointForCenterCoordinate(m_centerX, m_centerY, boundingBox.size()); float radiusX = floatValueForRadiusInBox(m_radiusX, center.x(), boundingBox.width()); float radiusY = floatValueForRadiusInBox(m_radiusY, center.y(), boundingBox.height()); path.addEllipse(FloatRect( center.x() - radiusX + boundingBox.x(), center.y() - radiusY + boundingBox.y(), radiusX * 2, radiusY * 2 )); }
void BasicShapeCircle::path(Path& path, const FloatRect& boundingBox) { ASSERT(path.isEmpty()); FloatPoint center = floatPointForCenterCoordinate(m_centerX, m_centerY, boundingBox.size()); float radius = floatValueForRadiusInBox(boundingBox.size()); path.addEllipse(FloatRect( center.x() - radius + boundingBox.x(), center.y() - radius + boundingBox.y(), radius * 2, radius * 2 )); }
void BasicShapeCircle::path(Path& path, const FloatRect& boundingBox) { ASSERT(path.isEmpty()); float centerX = floatValueForCenterCoordinate(m_centerX, boundingBox.width()); float centerY = floatValueForCenterCoordinate(m_centerY, boundingBox.height()); float radius = floatValueForRadiusInBox(boundingBox.width(), boundingBox.height()); path.addEllipse(FloatRect( centerX - radius + boundingBox.x(), centerY - radius + boundingBox.y(), radius * 2, radius * 2 )); }