| #ifndef _RIVE_IMAGE_HPP_ |
| #define _RIVE_IMAGE_HPP_ |
| |
| #include "rive/hit_info.hpp" |
| #include "rive/generated/shapes/image_base.hpp" |
| #include "rive/assets/file_asset_referencer.hpp" |
| |
| namespace rive |
| { |
| class ImageAsset; |
| class Mesh; |
| class Image : public ImageBase, public FileAssetReferencer |
| { |
| private: |
| Mesh* m_Mesh = nullptr; |
| |
| public: |
| Mesh* mesh() const; |
| void setMesh(Mesh* mesh); |
| ImageAsset* imageAsset() const { return (ImageAsset*)m_fileAsset; } |
| void draw(Renderer* renderer) override; |
| Core* hitTest(HitInfo*, const Mat2D&) override; |
| StatusCode import(ImportStack& importStack) override; |
| void setAsset(FileAsset*) override; |
| uint32_t assetId() override; |
| Core* clone() const override; |
| Vec2D measureLayout(float width, |
| LayoutMeasureMode widthMode, |
| float height, |
| LayoutMeasureMode heightMode) override; |
| void controlSize(Vec2D size) override; |
| float width() const; |
| float height() const; |
| }; |
| } // namespace rive |
| |
| #endif |