12class TextureCropEditor
17 void Open(
Texture* texture, glm::vec2 currentUVScale, glm::vec2 currentUVOffset,
18 std::function<
void(glm::vec2 uvScale, glm::vec2 uvOffset)> onApply);
22 bool IsOpen()
const {
return mIsOpen; }
41 void DrawCropCanvas();
42 void HandleCropInteraction(ImVec2 canvasPos,
float drawW,
float drawH,
bool canvasHovered,
bool canvasActive);
46 glm::vec2 CalcUVScale()
const;
47 glm::vec2 CalcUVOffset()
const;
48 void SetFromUV(glm::vec2 uvScale, glm::vec2 uvOffset);
52 ImTextureID mImGuiTexId = 0;
53 uint32_t mTexWidth = 0;
54 uint32_t mTexHeight = 0;
57 glm::vec2 mCropMin = glm::vec2(0.0f);
58 glm::vec2 mCropMax = glm::vec2(1.0f);
61 DragMode mDragMode = DragMode::None;
62 glm::vec2 mDragStartMouse = glm::vec2(0.0f);
63 glm::vec2 mDragStartCropMin = glm::vec2(0.0f);
64 glm::vec2 mDragStartCropMax = glm::vec2(0.0f);
68 uint64_t mLastDrawFrame = 0;
71 std::function<void(glm::vec2, glm::vec2)> mOnApply;
73 bool mJustOpened =
false;
76TextureCropEditor* GetTextureCropEditor();