blob: d5d2a16b477028c7bf79ba974b4ad5db62e57476 [file] [log] [blame]
#ifndef _RIVE_BONE_HPP_
#define _RIVE_BONE_HPP_
#include "rive/generated/bones/bone_base.hpp"
#include <stdio.h>
#include <vector>
namespace rive
{
class Constraint;
class Bone : public BoneBase
{
private:
std::vector<Bone*> m_ChildBones;
std::vector<Constraint*> m_PeerConstraints;
public:
StatusCode onAddedClean(CoreContext* context) override;
float x() const override;
float y() const override;
inline const std::vector<Bone*> childBones() { return m_ChildBones; }
void addChildBone(Bone* bone);
Vec2D tipWorldTranslation() const;
void addPeerConstraint(Constraint* peer);
const std::vector<Constraint*>& peerConstraints() const { return m_PeerConstraints; }
private:
void lengthChanged() override;
};
} // namespace rive
#endif