| #include "rive/shapes/rectangle.hpp" | |
| using namespace rive; | |
| Rectangle::Rectangle() | |
| { | |
| addVertex(&m_Vertex1); | |
| addVertex(&m_Vertex2); | |
| addVertex(&m_Vertex3); | |
| addVertex(&m_Vertex4); | |
| } | |
| void Rectangle::cornerRadiusTLChanged() { markPathDirty(); } | |
| void Rectangle::cornerRadiusTRChanged() { markPathDirty(); } | |
| void Rectangle::cornerRadiusBLChanged() { markPathDirty(); } | |
| void Rectangle::cornerRadiusBRChanged() { markPathDirty(); } | |
| void Rectangle::update(ComponentDirt value) | |
| { | |
| if (hasDirt(value, ComponentDirt::Path)) | |
| { | |
| auto radius = cornerRadiusTL(); | |
| auto link = linkCornerRadius(); | |
| auto ox = -originX() * width(); | |
| auto oy = -originY() * height(); | |
| m_Vertex1.x(ox); | |
| m_Vertex1.y(oy); | |
| m_Vertex1.radius(radius); | |
| m_Vertex2.x(ox + width()); | |
| m_Vertex2.y(oy); | |
| m_Vertex2.radius(link ? radius : cornerRadiusTR()); | |
| m_Vertex3.x(ox + width()); | |
| m_Vertex3.y(oy + height()); | |
| m_Vertex3.radius(link ? radius : cornerRadiusBR()); | |
| m_Vertex4.x(ox); | |
| m_Vertex4.y(oy + height()); | |
| m_Vertex4.radius(link ? radius : cornerRadiusBL()); | |
| } | |
| Super::update(value); | |
| } |