mirror of
https://github.com/rive-app/rive-cpp.git
synced 2026-01-18 21:21:17 +01:00
* feat: add support for computed root transform values Co-authored-by: hernan <hernan@rive.app>
61 lines
1.8 KiB
C++
61 lines
1.8 KiB
C++
#ifndef _RIVE_NODE_HPP_
|
|
#define _RIVE_NODE_HPP_
|
|
#include "rive/generated/node_base.hpp"
|
|
|
|
namespace rive
|
|
{
|
|
/// A Rive Node
|
|
class Node : public NodeBase
|
|
{
|
|
private:
|
|
Mat2D m_LocalTransform = Mat2D();
|
|
bool m_LocalTransformNeedsRecompute = false;
|
|
|
|
void computeLocalTransform();
|
|
|
|
public:
|
|
void setComputedLocalX(float value) override {}
|
|
void setComputedLocalY(float value) override {}
|
|
void setComputedWorldX(float value) override {}
|
|
void setComputedWorldY(float value) override {}
|
|
void setComputedRootX(float value) override {}
|
|
void setComputedRootY(float value) override {}
|
|
void setComputedWidth(float value) override {}
|
|
void setComputedHeight(float value) override {}
|
|
|
|
float computedLocalX() override { return localTransform()[4]; };
|
|
float computedLocalY() override { return localTransform()[5]; };
|
|
float computedWorldX() override { return worldTransform()[4]; };
|
|
float computedWorldY() override { return worldTransform()[5]; };
|
|
float computedRootX() override;
|
|
float computedRootY() override;
|
|
float computedWidth() override { return 0; };
|
|
float computedHeight() override { return 0; };
|
|
|
|
void updateWorldTransform() override
|
|
{
|
|
m_LocalTransformNeedsRecompute = true;
|
|
Super::updateWorldTransform();
|
|
}
|
|
|
|
Mat2D localTransform();
|
|
|
|
protected:
|
|
void xChanged() override;
|
|
void yChanged() override;
|
|
void computedLocalXChanged() override {}
|
|
void computedLocalYChanged() override {}
|
|
void computedWorldXChanged() override {}
|
|
void computedWorldYChanged() override {}
|
|
void computedRootXChanged() override {}
|
|
void computedRootYChanged() override {}
|
|
void computedWidthChanged() override {}
|
|
void computedHeightChanged() override {}
|
|
|
|
#ifdef WITH_RIVE_LAYOUT
|
|
void markLayoutNodeDirty();
|
|
#endif
|
|
};
|
|
} // namespace rive
|
|
|
|
#endif |