disable exceptions in visual studio, use xK notation for resolution, upgrade up to 32K resolution, mask resolution not doubled anymore, transform interactive controls to move, scale and rotate the selection

This commit is contained in:
2018-11-22 19:07:14 +01:00
parent 6f9b1b1c23
commit 86656cc7e3
12 changed files with 218 additions and 146 deletions

View File

@@ -21,6 +21,8 @@ public:
virtual void init() {}
virtual void enter() {}
virtual void leave() {}
CanvasMode() = default;
virtual ~CanvasMode() = default;
};
class CanvasModeBasicCamera : public CanvasMode
@@ -146,26 +148,34 @@ public:
class CanvasModeTransform : public CanvasMode
{
ui::DynamicShape m_shape;
ui::Sphere m_sphere;
ui::Circle m_circle;
Texture2D m_tex;
ui::DynamicShape m_shape[6]{};
ui::Sphere m_sphere{};
ui::Circle m_circle{};
Texture2D m_tex[6]{};
glm::vec3 m_origin{0, 0, 1 };
glm::vec3 m_center_point;
glm::vec2 m_center_point_uv;
glm::mat4 m_xform;
std::vector<glm::vec3> corners{};
std::vector<glm::vec2> corners2d{};
int corner_hl = -1;
glm::vec3 m_center_point{};
glm::vec2 m_center_point_uv{};
glm::mat4 m_xform{};
glm::mat4 m_xform_local{};
int m_counter = 0;
bool m_dragging = false;
glm::vec2 m_drag_start;
glm::mat4 m_drag_xform;
std::vector<vertex_t> m_points;
std::vector<glm::vec2> m_points2d;
std::map<int, int> m_dirty_planes;
int m_drag_corner = -1;
float m_drag_diag = 0;
std::vector<glm::vec2> m_drag_corners2d{};
glm::vec2 m_drag_start{};
glm::mat4 m_drag_xform{};
glm::mat4 m_drag_xform_local{};
std::vector<vertex_t> m_points{};
std::vector<glm::vec2> m_points2d{};
std::map<int, int> m_dirty_planes{};
bool m_active_tool = false;
public:
CanvasModeTransform() = default;
virtual void on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera) override;;
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) override;;
virtual void on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera) override;
virtual void on_MouseEvent(MouseEvent* me, glm::vec2& loc) override;
virtual void init() override;;
virtual void enter() override;
virtual void leave() override;