add transform mode and tollbar button, implement polygon clipping with uvs interpolation and cube faces projection with near plane clipping, add duplicate points removal template function, implement Spere mesh surface section creation.
This commit is contained in:
13
src/canvas.h
13
src/canvas.h
@@ -162,7 +162,7 @@ public:
|
||||
|
||||
Brush m_current_brush;
|
||||
|
||||
enum class kCanvasMode { Draw, Erase, Line, Camera, Grid, Fill, MaskFree, MaskLine, COUNT };
|
||||
enum class kCanvasMode { Draw, Erase, Line, Camera, Grid, Transform, Fill, MaskFree, MaskLine, COUNT };
|
||||
kCanvasMode m_state{ kCanvasMode::Draw };
|
||||
static std::vector<CanvasMode*> modes[];
|
||||
std::vector<CanvasMode*>* m_mode = nullptr;
|
||||
@@ -223,16 +223,19 @@ public:
|
||||
ui::Image thumbnail_read(std::string file_path);
|
||||
void draw_objects(std::function<void(const glm::mat4& camera, const glm::mat4& proj, int i)>);
|
||||
void draw_objects(std::function<void(const glm::mat4& camera, const glm::mat4& proj, int i)>, Layer& layer);
|
||||
bool ray_intersect(glm::vec3 ray_origin, glm::vec3 ray_dir, glm::vec3 plane_origin,
|
||||
glm::vec3 plane_normal, glm::vec3 plane_tangent, glm::vec3 &out_hit);
|
||||
void point_unproject(glm::vec2 loc, glm::vec4 vp, glm::mat4 camera, glm::mat4 proj,
|
||||
glm::vec3 &out_origin, glm::vec3 &out_dir);
|
||||
void point_unproject(glm::vec2 loc, glm::vec3 &out_origin, glm::vec3 &out_dir);
|
||||
bool point_trace(glm::vec2 loc, glm::vec3& ray_origin, glm::vec3& ray_dir,
|
||||
glm::vec3& hit_pos, glm::vec2& fb_pos, glm::vec3& hit_normal, int& out_plane_id);
|
||||
bool point_trace_plane(glm::vec2 loc, glm::vec3& ray_origin, glm::vec3& ray_dir,
|
||||
glm::vec3& hit_pos, glm::vec3& hit_normal, glm::vec2& hit_fb_pos, int plane_id);
|
||||
std::vector<ui::Shape::vertex_t> triangulate(const std::vector<std::shared_ptr<p2t::Point>>& points);
|
||||
void project2Dpoints(std::vector<ui::Shape::vertex_t>& vertices);
|
||||
std::vector<vertex_t> triangulate_simple(const std::vector<vertex_t>& vertices);
|
||||
std::vector<vertex_t> triangulate(const std::vector<std::shared_ptr<p2t::Point>>& points);
|
||||
std::vector<vertex_t> triangulate(const std::vector<glm::vec2>& points);
|
||||
void project2Dpoints(std::vector<vertex_t>& vertices);
|
||||
glm::vec3 project2Dpoint(glm::vec2 pt);
|
||||
std::vector<glm::vec2> face_to_shape2D(int plane_index);
|
||||
};
|
||||
|
||||
class ActionStroke : public Action
|
||||
|
||||
Reference in New Issue
Block a user