blob: 2901adf5fe86a6c0974636fd57849cfe762d0624 [file] [log] [blame]
#include "rive/shapes/cubic_asymmetric_vertex.hpp"
#include "rive/math/vec2d.hpp"
#include <cmath>
using namespace rive;
static Vec2D get_point(const CubicAsymmetricVertex& v) { return Vec2D(v.x(), v.y()); }
static Vec2D in_vector(const CubicAsymmetricVertex& v)
{
return Vec2D(cos(v.rotation()) * v.inDistance(), sin(v.rotation()) * v.inDistance());
}
static Vec2D out_vector(const CubicAsymmetricVertex& v)
{
return Vec2D(cos(v.rotation()) * v.outDistance(), sin(v.rotation()) * v.outDistance());
}
void CubicAsymmetricVertex::computeIn() { m_InPoint = get_point(*this) - in_vector(*this); }
void CubicAsymmetricVertex::computeOut() { m_OutPoint = get_point(*this) + out_vector(*this); }
void CubicAsymmetricVertex::rotationChanged()
{
m_InValid = false;
m_OutValid = false;
markGeometryDirty();
}
void CubicAsymmetricVertex::inDistanceChanged()
{
m_InValid = false;
markGeometryDirty();
}
void CubicAsymmetricVertex::outDistanceChanged()
{
m_OutValid = false;
markGeometryDirty();
}