Make eraser pressure sensitive
This commit is contained in:
parent
ad6f942a34
commit
c12cd14f6e
9 changed files with 244 additions and 176 deletions
|
|
@ -19,6 +19,9 @@
|
|||
#pragma once
|
||||
#include "../CoordSpaceHelper.hpp"
|
||||
#include <include/core/SkPathBuilder.h>
|
||||
#include "../InputManager.hpp"
|
||||
|
||||
class DrawingProgram;
|
||||
|
||||
struct MeshShapeData {
|
||||
std::vector<std::vector<Vector2f>> contours;
|
||||
|
|
@ -36,8 +39,24 @@ namespace BrushComponentCode {
|
|||
}
|
||||
};
|
||||
|
||||
struct BrushStrokeGenerationData {
|
||||
bool addedTemporaryPoint = false;
|
||||
std::vector<BrushComponentCode::BrushPoint> brushPoints;
|
||||
Vector2f prevPointUnaltered = {0, 0};
|
||||
float penWidth = 1.0f;
|
||||
CoordSpaceHelper coords;
|
||||
};
|
||||
|
||||
SkPath brush_stroke_to_skpath(const std::vector<BrushPoint>& brushPoints, bool hasRoundCaps);
|
||||
SkPath create_triangles(const std::vector<BrushPoint>& regularPoints, const std::vector<BrushPoint>& smoothedPoints, bool hasRoundCaps);
|
||||
std::vector<size_t> get_wedge_indices(const std::vector<BrushPoint>& points);
|
||||
std::vector<BrushPoint> smooth_points(const std::vector<BrushPoint>& points, size_t beginIndex, size_t endIndex, unsigned numOfDivisions);
|
||||
void smooth_out_points(std::vector<BrushPoint>& brushPoints, float smoothFactor);
|
||||
void fix_tip(std::vector<BrushPoint>& brushPoints);
|
||||
void mouse_button(DrawingProgram& drawP, BrushStrokeGenerationData& genData, const CoordSpaceHelper& strokeCoordSpace, const InputManager::MouseButtonCallbackArgs& button, float brushSize);
|
||||
void mouse_motion(DrawingProgram& drawP, BrushStrokeGenerationData& genData, const Vector2f& motionPos, float brushSize);
|
||||
void pen_pressure(DrawingProgram& drawP, BrushStrokeGenerationData& genData, float brushSize);
|
||||
bool extensive_point_checking(const std::vector<BrushPoint>& points, const Vector2f& newPoint, float minimumDistance);
|
||||
bool extensive_point_checking_back(const std::vector<BrushPoint>& points, const Vector2f& newPoint);
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue