| #include "rive/shapes/cubic_detached_vertex.hpp" | |
| #include "rive/math/vec2d.hpp" | |
| #include <cmath> | |
| using namespace rive; | |
| static Vec2D get_point(const CubicDetachedVertex& v) | |
| { | |
| return Vec2D(v.x(), v.y()); | |
| } | |
| static Vec2D in_vector(const CubicDetachedVertex& v) | |
| { | |
| return Vec2D(std::cos(v.inRotation()) * v.inDistance(), | |
| std::sin(v.inRotation()) * v.inDistance()); | |
| } | |
| static Vec2D out_vector(const CubicDetachedVertex& v) | |
| { | |
| return Vec2D(std::cos(v.outRotation()) * v.outDistance(), | |
| std::sin(v.outRotation()) * v.outDistance()); | |
| } | |
| void CubicDetachedVertex::computeIn() | |
| { | |
| m_InPoint = get_point(*this) + in_vector(*this); | |
| } | |
| void CubicDetachedVertex::computeOut() | |
| { | |
| m_OutPoint = get_point(*this) + out_vector(*this); | |
| } | |
| void CubicDetachedVertex::inRotationChanged() | |
| { | |
| m_InValid = false; | |
| markGeometryDirty(); | |
| } | |
| void CubicDetachedVertex::inDistanceChanged() | |
| { | |
| m_InValid = false; | |
| markGeometryDirty(); | |
| } | |
| void CubicDetachedVertex::outRotationChanged() | |
| { | |
| m_OutValid = false; | |
| markGeometryDirty(); | |
| } | |
| void CubicDetachedVertex::outDistanceChanged() | |
| { | |
| m_OutValid = false; | |
| markGeometryDirty(); | |
| } |