color wheel and picker
This commit is contained in:
@@ -3,21 +3,33 @@
|
||||
#include "node.h"
|
||||
#include "shape.h"
|
||||
#include "node_slider.h"
|
||||
#include "node_border.h"
|
||||
|
||||
class NodeColorWheel : public Node
|
||||
{
|
||||
public:
|
||||
ui::Circle m_circle;
|
||||
ui::Circle m_cur_hue;
|
||||
ui::Plane m_cur_hue;
|
||||
ui::Circle m_cur_quad;
|
||||
ui::Plane m_quad;
|
||||
NodeBorder* m_color_cur;
|
||||
glm::vec3 m_hsv;
|
||||
GLuint m_tri_vbo;
|
||||
GLuint m_tri_vao;
|
||||
GLuint buffers;
|
||||
GLuint arrays;
|
||||
std::function<void(Node* target, glm::vec3 hsv)> on_value_changed;
|
||||
int mode; // 1:hue 2:quad
|
||||
bool dragging = false;
|
||||
glm::vec3 m_old_value{0.f};
|
||||
virtual Node* clone_instantiate() const override;
|
||||
virtual void clone_finalize(Node* dest) const;
|
||||
virtual void clone_finalize(Node* dest) const override;
|
||||
virtual void init() override;
|
||||
virtual void loaded() override;
|
||||
virtual void draw() override;
|
||||
virtual kEventResult handle_event(Event* e) override;
|
||||
void init_controls();
|
||||
glm::vec4 get_quad_rect() const;
|
||||
bool inside_quad(glm::vec2 pos, glm::vec2& out_coord) const;
|
||||
void handle_color_change();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user