diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_paint.h')
-rw-r--r-- | source/blender/blenkernel/BKE_paint.h | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h index 162459d2005..92b1aacc300 100644 --- a/source/blender/blenkernel/BKE_paint.h +++ b/source/blender/blenkernel/BKE_paint.h @@ -13,6 +13,7 @@ #include "DNA_object_enums.h" #include "BKE_attribute.h" +#include "BKE_pbvh.h" #ifdef __cplusplus extern "C" { @@ -59,10 +60,10 @@ struct bContext; struct bToolRef; struct tPaletteColorHSV; -extern const char PAINT_CURSOR_SCULPT[3]; -extern const char PAINT_CURSOR_VERTEX_PAINT[3]; -extern const char PAINT_CURSOR_WEIGHT_PAINT[3]; -extern const char PAINT_CURSOR_TEXTURE_PAINT[3]; +extern const uchar PAINT_CURSOR_SCULPT[3]; +extern const uchar PAINT_CURSOR_VERTEX_PAINT[3]; +extern const uchar PAINT_CURSOR_WEIGHT_PAINT[3]; +extern const uchar PAINT_CURSOR_TEXTURE_PAINT[3]; typedef enum ePaintMode { PAINT_MODE_SCULPT = 0, @@ -97,6 +98,7 @@ typedef enum ePaintOverlayControlFlags { PAINT_OVERLAY_OVERRIDE_PRIMARY = (1 << 5), PAINT_OVERLAY_OVERRIDE_SECONDARY = (1 << 6), } ePaintOverlayControlFlags; +ENUM_OPERATORS(ePaintOverlayControlFlags, PAINT_OVERLAY_OVERRIDE_SECONDARY); #define PAINT_OVERRIDE_MASK \ (PAINT_OVERLAY_OVERRIDE_SECONDARY | PAINT_OVERLAY_OVERRIDE_PRIMARY | \ @@ -156,7 +158,7 @@ struct PaintCurve *BKE_paint_curve_add(struct Main *bmain, const char *name); * Call when entering each respective paint mode. */ bool BKE_paint_ensure(struct ToolSettings *ts, struct Paint **r_paint); -void BKE_paint_init(struct Main *bmain, struct Scene *sce, ePaintMode mode, const char col[3]); +void BKE_paint_init(struct Main *bmain, struct Scene *sce, ePaintMode mode, const uchar col[3]); void BKE_paint_free(struct Paint *p); /** * Called when copying scene settings, so even if 'src' and 'tar' are the same still do a @@ -212,7 +214,7 @@ bool BKE_paint_always_hide_test(struct Object *ob); * Returns non-zero if any of the face's vertices are hidden, zero otherwise. */ bool paint_is_face_hidden(const struct MLoopTri *lt, - const struct MVert *mvert, + const bool *hide_vert, const struct MLoop *mloop); /** * Returns non-zero if any of the corners of the grid @@ -397,7 +399,7 @@ typedef struct SculptVertexInfo { typedef struct SculptBoundaryEditInfo { /* Vertex index from where the topology propagation reached this vertex. */ - int original_vertex; + int original_vertex_i; /* How many steps were needed to reach this vertex from the boundary. */ int num_propagation_steps; @@ -408,13 +410,14 @@ typedef struct SculptBoundaryEditInfo { /* Edge for drawing the boundary preview in the cursor. */ typedef struct SculptBoundaryPreviewEdge { - int v1; - int v2; + PBVHVertRef v1; + PBVHVertRef v2; } SculptBoundaryPreviewEdge; typedef struct SculptBoundary { /* Vertex indices of the active boundary. */ - int *vertices; + PBVHVertRef *vertices; + int *vertices_i; int vertices_capacity; int num_vertices; @@ -432,12 +435,13 @@ typedef struct SculptBoundary { bool forms_loop; /* Initial vertex in the boundary which is closest to the current sculpt active vertex. */ - int initial_vertex; + PBVHVertRef initial_vertex; + int initial_vertex_i; /* Vertex that at max_propagation_steps from the boundary and closest to the original active * vertex that was used to initialize the boundary. This is used as a reference to check how much * the deformation will go into the mesh and to calculate the strength of the brushes. */ - int pivot_vertex; + PBVHVertRef pivot_vertex; /* Stores the initial positions of the pivot and boundary initial vertex as they may be deformed * during the brush action. This allows to use them as a reference positions and vectors for some @@ -565,7 +569,7 @@ typedef struct SculptSession { struct ExpandCache *expand_cache; /* Cursor data and active vertex for tools */ - int active_vertex_index; + PBVHVertRef active_vertex; int active_face_index; int active_grid_index; @@ -591,8 +595,8 @@ typedef struct SculptSession { struct Scene *scene; /* Dynamic mesh preview */ - int *preview_vert_index_list; - int preview_vert_index_count; + PBVHVertRef *preview_vert_list; + int preview_vert_count; /* Pose Brush Preview */ float pose_origin[3]; |