127 .struct_size =
sizeof(
Palette),
129 .name_plural =
"palettes",
132 .asset_type_info =
NULL,
139 .foreach_cache =
NULL,
140 .foreach_path =
NULL,
145 .blend_read_lib =
NULL,
146 .blend_read_expand =
NULL,
150 .lib_override_apply_post =
NULL,
195 .name =
"PaintCurve",
196 .name_plural =
"paint_curves",
199 .asset_type_info =
NULL,
206 .foreach_cache =
NULL,
207 .foreach_path =
NULL,
212 .blend_read_lib =
NULL,
213 .blend_read_expand =
NULL,
215 .blend_read_undo_preserve =
NULL,
217 .lib_override_apply_post =
NULL,
315 paint_ptr = &paint_tmp;
416 return "sculpt_tool";
418 return "vertex_tool";
420 return "weight_tool";
425 return "uv_sculpt_tool";
427 return "gpencil_tool";
429 return "gpencil_vertex_tool";
431 return "gpencil_sculpt_tool";
433 return "gpencil_weight_tool";
435 return "curves_sculpt_tool";
446 if (sce && view_layer) {
489 if (sce && view_layer) {
524 if (sce && view_layer) {
545 switch (obact->
mode) {
574 switch (tref->
mode) {
596 switch (tref->
mode) {
680 return offsetof(
Brush, imagepaint_tool);
682 return offsetof(
Brush, sculpt_tool);
684 return offsetof(
Brush, vertexpaint_tool);
686 return offsetof(
Brush, weightpaint_tool);
688 return offsetof(
Brush, uv_sculpt_tool);
690 return offsetof(
Brush, gpencil_tool);
692 return offsetof(
Brush, gpencil_vertex_tool);
694 return offsetof(
Brush, gpencil_sculpt_tool);
696 return offsetof(
Brush, gpencil_weight_tool);
698 return offsetof(
Brush, curves_sculpt_tool);
788 if (ps1->
h > ps2->h) {
791 if (ps1->
h < ps2->h) {
796 if (ps1->
s > ps2->s) {
799 if (ps1->
s < ps2->s) {
804 if (1.0f - ps1->
v > 1.0f - ps2->v) {
807 if (1.0f - ps1->
v < 1.0f - ps2->v) {
820 if (ps1->
s > ps2->s) {
823 if (ps1->
s < ps2->s) {
828 if (1.0f - ps1->
v > 1.0f - ps2->v) {
831 if (1.0f - ps1->
v < 1.0f - ps2->v) {
836 if (ps1->
h > ps2->h) {
839 if (ps1->
h < ps2->h) {
851 if (1.0f - ps1->
v > 1.0f - ps2->v) {
854 if (1.0f - ps1->
v < 1.0f - ps2->v) {
859 if (ps1->
h > ps2->h) {
862 if (ps1->
h < ps2->h) {
867 if (ps1->
s > ps2->s) {
870 if (ps1->
s < ps2->s) {
881 float lumi1 = (ps1->
rgb[0] + ps1->
rgb[1] + ps1->
rgb[2]) / 3.0f;
882 float lumi2 = (ps2->rgb[0] + ps2->rgb[1] + ps2->rgb[2]) / 3.0f;
938 col_elm = &color_array[
t];
956 for (
int i = 0; i < totpal; i++) {
957 col_elm = &color_array[i];
1048 if ((*r_paint)->runtime.tool_offset == 0) {
1068 struct Paint paint_test = **r_paint;
1081 paint = &
data->paint;
1085 paint = &
data->paint;
1095 paint = &
data->paint;
1099 paint = &
data->paint;
1103 paint = &
data->paint;
1107 paint = &
data->paint;
1111 paint = &
data->paint;
1115 paint = &
data->paint;
1176 if (
src->tool_slots !=
NULL) {
1272 }
while ((l_iter = l_iter->
next) != l_first);
1282 return gpm->
data[(
y * factor) * gridsize + (
x * factor)];
1286 #define RAKE_THRESHHOLD 20
1307 const float mouse_pos[2])
1319 rotation =
atan2f(dpos[0], dpos[1]);
1395 .calc_object_remap = false,
1449 if (
object && object->
sculpt) {
1588 for (; md; md = md->
next) {
1704 if (use_face_sets) {
1768 if (!pbvh_deformed) {
1782 if (is_paint_tool) {
1789 if (
U.experimental.use_sculpt_texture_paint && ss->
pbvh) {
1804 if (use_paint_slots) {
1822 new_face_sets[i] = 1;
1850 for (n = 0; n < totnode; n++) {
1885 bool has_color =
false;
1928 const float *paint_mask;
1940 int gridarea = gridsize * gridsize;
1945 for (i = 0; i < me->
totloop; i++) {
1949 gpm->
data =
MEM_callocN(
sizeof(
float) * gridarea,
"GridPaintMask.data");
1954 for (i = 0; i < me->
totpoly; i++) {
1959 for (j = 0; j < p->
totloop; j++) {
1961 avg += paint_mask[
l->
v];
1966 for (j = 0; j < p->
totloop; j++) {
1973 gpm->
data[1] = (paint_mask[
l->
v] + paint_mask[
next->v]) * 0.5f;
1974 gpm->
data[2] = (paint_mask[
l->
v] + paint_mask[
prev->v]) * 0.5f;
1975 gpm->
data[3] = paint_mask[
l->
v];
2021 bool deformed =
false;
2027 deformed |=
object->sculpt->deform_modifiers_active;
2029 if (for_construction) {
2030 deformed |=
object->sculpt->shapekey_active !=
NULL;
2037 deformed |=
object->sculpt->shapekey_active && (
object->shapeflag &
OB_SHAPE_LOCK) == 0;
2045 const int face_sets_default_visible_id = 1;
2046 const int face_sets_default_hidden_id = -(face_sets_default_visible_id + 1);
2048 bool initialize_new_face_sets =
false;
2054 current_face_sets[i] =
abs(current_face_sets[i]);
2058 initialize_new_face_sets =
true;
2065 new_face_sets[i] = face_sets_default_visible_id;
2077 if (initialize_new_face_sets) {
2082 face_sets[i] = face_sets_default_hidden_id;
2086 face_sets[i] = -
abs(face_sets[i]);
2099 const bool is_face_set_visible = face_sets[i] >= 0;
2121 const bool is_hidden = (face_sets[face_index] < 0);
2226 if (is_deformed && me_eval_deform !=
NULL) {
2264 const bool respect_hide =
true;
2272 Mesh *mesh_eval = object_eval->
data;
2274 if (subdiv_ccg !=
NULL) {
2291 Mesh *mesh_eval = object_eval->
data;
2335 #define GOLDEN_RATIO_CONJUGATE 0.618033988749895f
2340 random_mod_hue = random_mod_hue -
floorf(random_mod_hue);
2344 0.6f + (random_mod_sat * 0.25f),
2345 1.0f - (random_mod_val * 0.35f),
typedef float(TangentPoint)[2]
Generic geometry attributes built on CustomData.
void BKE_id_attributes_active_color_set(struct ID *id, struct CustomDataLayer *active_layer)
struct Brush * BKE_brush_add(struct Main *bmain, const char *name, eObjectMode ob_mode)
struct Brush * BKE_brush_first_search(struct Main *bmain, eObjectMode ob_mode)
struct Scene * CTX_data_scene(const bContext *C)
@ CTX_MODE_WEIGHT_GPENCIL
@ CTX_MODE_VERTEX_GPENCIL
@ CTX_MODE_SCULPT_GPENCIL
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct SpaceImage * CTX_wm_space_image(const bContext *C)
void BKE_crazyspace_build_sculpt(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, float(**deformmats)[3][3], float(**deformcos)[3])
bool CustomData_has_layer(const struct CustomData *data, int type)
int CustomData_get_layer_index(const struct CustomData *data, int type)
void * CustomData_get_layer(const struct CustomData *data, int type)
void * CustomData_add_layer(struct CustomData *data, int type, eCDAllocType alloctype, void *layer, int totelem)
@ IDTYPE_FLAGS_NO_ANIMDATA
void BKE_image_pool_free(struct ImagePool *pool)
struct KeyBlock * BKE_keyblock_from_object(struct Object *ob)
float(* BKE_keyblock_convert_to_vertcos(const struct Object *ob, const struct KeyBlock *kb))[3]
@ LIB_ID_CREATE_NO_USER_REFCOUNT
void id_us_min(struct ID *id)
void id_fake_user_set(struct ID *id)
void id_us_plus(struct ID *id)
void BKE_id_blend_write(struct BlendWriter *writer, struct ID *id)
void * BKE_id_new(struct Main *bmain, short type, const char *name)
void BKE_lib_id_swap(struct Main *bmain, struct ID *id_a, struct ID *id_b)
General operations, lookup, etc. for materials.
void BKE_texpaint_slots_refresh_object(struct Scene *scene, struct Object *ob)
void BKE_mesh_tessface_clear(struct Mesh *mesh)
struct Mesh * BKE_mesh_from_object(struct Object *ob)
void BKE_mesh_recalc_looptri(const struct MLoop *mloop, const struct MPoly *mpoly, const struct MVert *mvert, int totloop, int totpoly, struct MLoopTri *mlooptri)
void BKE_mesh_update_customdata_pointers(struct Mesh *me, bool do_ensure_tess_cd)
float(* BKE_mesh_vert_coords_alloc(const struct Mesh *mesh, int *r_vert_len))[3]
void BKE_mesh_flush_hidden_from_polys(struct Mesh *me)
void BKE_mesh_vert_poly_map_create(MeshElemMap **r_map, int **r_mem, const struct MPoly *mpoly, const struct MLoop *mloop, int totvert, int totpoly, int totloop)
const ModifierTypeInfo * BKE_modifier_get_info(ModifierType type)
bool BKE_modifier_is_enabled(const struct Scene *scene, struct ModifierData *md, int required_mode)
struct ModifierData * BKE_modifiers_get_virtual_modifierlist(const struct Object *ob, struct VirtualModifierData *data)
@ eModifierTypeType_OnlyDeform
General operations, lookup, etc. for blender objects.
struct Mesh * BKE_object_get_evaluated_mesh(const struct Object *object)
void BKE_object_free_derived_caches(struct Object *ob)
struct Mesh * BKE_object_get_original_mesh(const struct Object *object)
char * BKE_paint_canvas_key_get(struct PaintModeSettings *settings, struct Object *ob)
#define PAINT_MODE_HAS_BRUSH(mode)
void BKE_paint_toolslots_brush_update(struct Paint *paint)
ePaintOverlayControlFlags
@ PAINT_OVERLAY_INVALID_CURVE
@ PAINT_OVERLAY_INVALID_TEXTURE_SECONDARY
@ PAINT_OVERLAY_OVERRIDE_CURSOR
@ PAINT_OVERLAY_INVALID_TEXTURE_PRIMARY
@ PAINT_OVERLAY_OVERRIDE_SECONDARY
@ PAINT_OVERLAY_OVERRIDE_PRIMARY
#define PAINT_OVERRIDE_MASK
@ PAINT_MODE_SCULPT_CURVES
@ PAINT_MODE_VERTEX_GPENCIL
@ PAINT_MODE_WEIGHT_GPENCIL
@ PAINT_MODE_SCULPT_GPENCIL
@ SCULPT_MASK_LAYER_CALC_VERT
@ SCULPT_MASK_LAYER_CALC_LOOP
A BVH for high poly meshes.
void BKE_pbvh_build_grids(PBVH *pbvh, struct CCGElem **grids, int totgrid, struct CCGKey *key, void **gridfaces, struct DMFlagMat *flagmats, unsigned int **grid_hidden)
void BKE_pbvh_node_mark_update(PBVHNode *node)
void BKE_pbvh_build_mesh(PBVH *pbvh, struct Mesh *mesh, const struct MPoly *mpoly, const struct MLoop *mloop, struct MVert *verts, int totvert, struct CustomData *vdata, struct CustomData *ldata, struct CustomData *pdata, const struct MLoopTri *looptri, int looptri_num)
void BKE_pbvh_update_active_vcol(PBVH *pbvh, const struct Mesh *mesh)
void BKE_pbvh_pmap_set(PBVH *pbvh, const struct MeshElemMap *pmap)
void pbvh_show_mask_set(PBVH *pbvh, bool show_mask)
void BKE_pbvh_free(PBVH *pbvh)
bool BKE_pbvh_is_deformed(struct PBVH *pbvh)
PBVHType BKE_pbvh_type(const PBVH *pbvh)
void pbvh_show_face_sets_set(PBVH *pbvh, bool show_face_sets)
void BKE_pbvh_subdiv_cgg_set(PBVH *pbvh, struct SubdivCCG *subdiv_ccg)
void BKE_pbvh_mark_rebuild_pixels(PBVH *pbvh)
void BKE_pbvh_build_bmesh(PBVH *pbvh, struct BMesh *bm, bool smooth_shading, struct BMLog *log, int cd_vert_node_offset, int cd_face_node_offset)
void BKE_pbvh_vert_coords_apply(struct PBVH *pbvh, const float(*vertCos)[3], int totvert)
void BKE_pbvh_face_sets_color_set(PBVH *pbvh, int seed, int color_default)
PBVH * BKE_pbvh_new(void)
void BKE_pbvh_respect_hide_set(PBVH *pbvh, bool respect_hide)
void BKE_pbvh_grids_update(PBVH *pbvh, struct CCGElem **grids, void **gridfaces, struct DMFlagMat *flagmats, unsigned int **grid_hidden)
void BKE_pbvh_face_sets_set(PBVH *pbvh, int *face_sets)
void BKE_pbvh_search_gather(PBVH *pbvh, BKE_pbvh_SearchCallback scb, void *search_data, PBVHNode ***array, int *tot)
bool BKE_pbvh_get_color_layer(const struct Mesh *me, CustomDataLayer **r_layer, eAttrDomain *r_attr)
void BKE_subdiv_ccg_key_top_level(struct CCGKey *key, const SubdivCCG *subdiv_ccg)
void BKE_subdiv_ccg_grid_hidden_ensure(SubdivCCG *subdiv_ccg, int grid_index)
int BKE_subdiv_ccg_grid_to_face_index(const SubdivCCG *subdiv_ccg, int grid_index)
int BKE_ccg_gridsize(int level)
int BKE_ccg_factor(int low_level, int high_level)
#define BLI_assert_unreachable()
#define BLI_BITMAP_TEST(_bitmap, _index)
void BLI_bitmap_set_all(BLI_bitmap *bitmap, bool set, size_t bits)
BLI_INLINE void * BLI_ghashIterator_getValue(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
#define GHASH_ITER(gh_iter_, ghash_)
unsigned int BLI_ghash_len(const GHash *gh) ATTR_WARN_UNUSED_RESULT
BLI_INLINE float BLI_hash_int_01(unsigned int k)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
void void void void void BLI_duplicatelist(struct ListBase *dst, const struct ListBase *src) ATTR_NONNULL(1
int BLI_listbase_count_at_most(const struct ListBase *listbase, int count_max) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
MINLINE int max_ii(int a, int b)
void rgb_to_hsv(float r, float g, float b, float *r_h, float *r_s, float *r_v)
void hsv_to_rgb(float h, float s, float v, float *r_r, float *r_g, float *r_b)
void rgba_float_to_uchar(unsigned char r_col[4], const float col_f[4])
MINLINE void linearrgb_to_srgb_v3_v3(float srgb[3], const float linear[3])
void cpack_to_rgb(unsigned int col, float *r_r, float *r_g, float *r_b)
MINLINE int poly_to_tri_count(int poly_count, int corner_count)
bool invert_m3(float R[3][3])
MINLINE float len_squared_v2(const float v[2]) ATTR_WARN_UNUSED_RESULT
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void sub_v2_v2v2(float r[2], const float a[2], const float b[2])
MINLINE void zero_v3(float r[3])
MINLINE void mul_v3_v3fl(float r[3], const float a[3], float f)
#define UNUSED_VARS_NDEBUG(...)
#define SET_FLAG_FROM_TEST(value, test, flag)
#define POINTER_AS_INT(i)
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define BLO_read_data_address(reader, ptr_p)
#define BLO_write_id_struct(writer, struct_name, id_address, id)
#define BLO_write_struct(writer, struct_name, data_ptr)
void BLO_read_list(BlendDataReader *reader, struct ListBase *list)
#define BLO_read_id_address(reader, lib, id_ptr_p)
#define BLO_write_struct_array(writer, struct_name, array_size, data_ptr)
#define BLT_I18NCONTEXT_ID_PALETTE
#define BLT_I18NCONTEXT_ID_PAINTCURVE
struct Depsgraph Depsgraph
void DEG_id_tag_update(struct ID *id, int flag)
struct Scene * DEG_get_input_scene(const Depsgraph *graph)
struct Object * DEG_get_original_object(struct Object *object)
struct Object * DEG_get_evaluated_object(const struct Depsgraph *depsgraph, struct Object *object)
@ ID_RECALC_GEOMETRY_ALL_MODES
@ BRUSH_OVERLAY_SECONDARY_OVERRIDE_ON_STROKE
@ BRUSH_OVERLAY_PRIMARY_OVERRIDE_ON_STROKE
@ BRUSH_OVERLAY_CURSOR_OVERRIDE_ON_STROKE
#define BRUSH_OVERLAY_OVERRIDE_MASK
struct PaintCurve PaintCurve
@ CUMA_EXTEND_EXTRAPOLATE
#define ME_POLY_LOOP_PREV(mloop, mp, i)
#define ME_POLY_LOOP_NEXT(mloop, mp, i)
@ eMultiresModifierFlag_UseSculptBaseMesh
Object is a sort of wrapper for general info.
@ SCULPT_DYNTOPO_SUBDIVIDE
@ SCULPT_DYNTOPO_COLLAPSE
struct PaintToolSlot PaintToolSlot
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble GLdouble r _GL_VOID_RET _GL_VOID GLfloat GLfloat r _GL_VOID_RET _GL_VOID GLint GLint r _GL_VOID_RET _GL_VOID GLshort GLshort r _GL_VOID_RET _GL_VOID GLdouble GLdouble r
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble t
Read Guarded memory(de)allocation.
static void init_data(ModifierData *md)
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
#define BM_FACE_FIRST_LOOP(p)
#define BM_elem_flag_set(ele, hflag, val)
#define BM_elem_flag_test(ele, hflag)
#define BM_ITER_MESH(ele, iter, bm, itype)
void BM_log_free(BMLog *log)
void BM_log_mesh_elems_reorder(BMesh *bm, BMLog *log)
void BM_mesh_free(BMesh *bm)
BMesh Free Mesh.
void BM_mesh_bm_to_me(Main *bmain, BMesh *bm, Mesh *me, const struct BMeshToMeshParams *params)
ATTR_WARN_UNUSED_RESULT const BMLoop * l
ATTR_WARN_UNUSED_RESULT const BMVert * v
static unsigned long seed
const Depsgraph * depsgraph
SyclQueue void void * src
void *(* MEM_malloc_arrayN)(size_t len, size_t size, const char *str)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_calloc_arrayN)(size_t len, size_t size, const char *str)
size_t(* MEM_allocN_len)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
SymEdge< T > * prev(const SymEdge< T > *se)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
static const pxr::TfToken rgba("rgba", pxr::TfToken::Immortal)
static const pxr::TfToken g("g", pxr::TfToken::Immortal)
void BKE_palette_sort_vhs(tPaletteColorHSV *color_array, const int totcol)
void BKE_sculpt_update_object_after_eval(Depsgraph *depsgraph, Object *ob_eval)
void BKE_paint_runtime_init(const ToolSettings *ts, Paint *paint)
void BKE_sculptsession_free_vwpaint_data(struct SculptSession *ss)
void BKE_paint_set_overlay_override(eOverlayFlags flags)
eObjectMode BKE_paint_object_mode_from_paintmode(ePaintMode mode)
void BKE_sculpt_bvh_update_from_ccg(PBVH *pbvh, SubdivCCG *subdiv_ccg)
void BKE_sculpt_sync_face_sets_visibility_to_base_mesh(Mesh *mesh)
bool BKE_paint_select_vert_test(Object *ob)
static bool sculpt_modifiers_active(Scene *scene, Sculpt *sd, Object *ob)
void BKE_paint_invalidate_cursor_overlay(Scene *scene, ViewLayer *view_layer, CurveMapping *curve)
static PBVH * build_pbvh_from_ccg(Object *ob, SubdivCCG *subdiv_ccg, bool respect_hide)
float paint_grid_paint_mask(const GridPaintMask *gpm, uint level, uint x, uint y)
Paint * BKE_paint_get_active_from_paintmode(Scene *sce, ePaintMode mode)
void BKE_paint_curve_set(Brush *br, PaintCurve *pc)
void BKE_sculpt_sync_face_set_visibility(struct Mesh *mesh, struct SubdivCCG *subdiv_ccg)
static void palette_copy_data(Main *UNUSED(bmain), ID *id_dst, const ID *id_src, const int UNUSED(flag))
void BKE_paint_invalidate_overlay_tex(Scene *scene, ViewLayer *view_layer, const Tex *tex)
static void sculptsession_bm_to_me_update_data_only(Object *ob, bool reorder)
void BKE_paint_copy(Paint *src, Paint *tar, const int flag)
void BKE_paint_blend_write(BlendWriter *writer, Paint *p)
void BKE_sculpt_sync_face_sets_visibility_to_grids(Mesh *mesh, SubdivCCG *subdiv_ccg)
void BKE_sculptsession_bm_to_me(Object *ob, bool reorder)
void BKE_sculpt_ensure_orig_mesh_data(Scene *scene, Object *object)
void BKE_sculpt_toolsettings_data_ensure(struct Scene *scene)
static PBVH * build_pbvh_from_regular_mesh(Object *ob, Mesh *me_eval_deform, bool respect_hide)
static bool check_sculpt_object_deformed(Object *object, const bool for_construction)
bool BKE_palette_from_hash(Main *bmain, GHash *color_table, const char *name, const bool linear)
bool BKE_sculptsession_use_pbvh_draw(const Object *ob, const RegionView3D *rv3d)
static void palette_undo_preserve(BlendLibReader *UNUSED(reader), ID *id_new, ID *id_old)
static void paint_curve_copy_data(Main *UNUSED(bmain), ID *id_dst, const ID *id_src, const int UNUSED(flag))
void BKE_sculpt_face_sets_ensure_from_base_mesh_visibility(Mesh *mesh)
void BKE_paint_stroke_get_average(Scene *scene, Object *ob, float stroke[3])
static int palettecolor_compare_luminance(const void *a1, const void *a2)
void BKE_sculptsession_free(Object *ob)
void BKE_paint_blend_read_lib(BlendLibReader *reader, Scene *sce, Paint *p)
const char PAINT_CURSOR_VERTEX_PAINT[3]
Palette * BKE_palette_add(Main *bmain, const char *name)
ePaintMode BKE_paintmode_get_active_from_context(const bContext *C)
const Brush * BKE_paint_brush_for_read(const Paint *p)
Paint * BKE_paint_get_active_from_context(const bContext *C)
void BKE_sculptsession_free_deformMats(SculptSession *ss)
const char PAINT_CURSOR_SCULPT[3]
uint BKE_paint_get_brush_tool_offset_from_paintmode(const ePaintMode mode)
PaintCurve * BKE_paint_curve_add(Main *bmain, const char *name)
void BKE_palette_color_remove(Palette *palette, PaletteColor *color)
bool BKE_paint_ensure_from_paintmode(Scene *sce, ePaintMode mode)
Brush * BKE_paint_brush(Paint *p)
void BKE_palette_sort_hsv(tPaletteColorHSV *color_array, const int totcol)
void BKE_paint_blend_read_data(BlendDataReader *reader, const Scene *scene, Paint *p)
static int palettecolor_compare_svh(const void *a1, const void *a2)
void BKE_paint_reset_overlay_invalid(ePaintOverlayControlFlags flag)
bool paint_is_grid_face_hidden(const uint *grid_hidden, int gridsize, int x, int y)
void BKE_palette_sort_svh(tPaletteColorHSV *color_array, const int totcol)
void BKE_paint_brush_set(Paint *p, Brush *br)
static PBVH * build_pbvh_for_dynamic_topology(Object *ob)
const EnumPropertyItem * BKE_paint_get_tool_enum_from_paintmode(ePaintMode mode)
bool paint_is_face_hidden(const MLoopTri *lt, const MVert *mvert, const MLoop *mloop)
void BKE_paint_free(Paint *paint)
int BKE_sculpt_mask_layers_ensure(Object *ob, MultiresModifierData *mmd)
void BKE_palette_sort_luminance(tPaletteColorHSV *color_array, const int totcol)
static void palette_free_data(ID *id)
bool BKE_paint_select_elem_test(Object *ob)
static void paint_curve_blend_write(BlendWriter *writer, ID *id, const void *id_address)
void paint_update_brush_rake_rotation(UnifiedPaintSettings *ups, Brush *brush, float rotation)
const char PAINT_CURSOR_WEIGHT_PAINT[3]
void BKE_sculpt_update_object_before_eval(const Scene *scene, Object *ob_eval)
bool BKE_paint_select_face_test(Object *ob)
static void paint_curve_free_data(ID *id)
const char PAINT_CURSOR_TEXTURE_PAINT[3]
void BKE_paint_init(Main *bmain, Scene *sce, ePaintMode mode, const char col[3])
#define GOLDEN_RATIO_CONJUGATE
void BKE_palette_clear(Palette *palette)
void BKE_sculptsession_bm_to_me_for_render(Object *object)
bool BKE_paint_ensure(ToolSettings *ts, struct Paint **r_paint)
static void sculptsession_free_pbvh(Object *object)
bool paint_calculate_rake_rotation(UnifiedPaintSettings *ups, Brush *brush, const float mouse_pos[2])
static ePaintOverlayControlFlags overlay_flags
static void sculpt_update_object(Depsgraph *depsgraph, Object *ob, Mesh *me_eval, bool need_pmap, bool need_mask, bool is_paint_tool)
void BKE_sculpt_update_object_for_edit(Depsgraph *depsgraph, Object *ob_orig, bool need_pmap, bool need_mask, bool is_paint_tool)
bool paint_is_bmesh_face_hidden(BMFace *f)
void BKE_paint_invalidate_overlay_all(void)
MultiresModifierData * BKE_sculpt_multires_active(const Scene *scene, Object *ob)
static void palette_blend_write(BlendWriter *writer, ID *id, const void *id_address)
static void paint_curve_blend_read_data(BlendDataReader *reader, ID *id)
PBVH * BKE_sculpt_object_pbvh_ensure(Depsgraph *depsgraph, Object *ob)
static int palettecolor_compare_vhs(const void *a1, const void *a2)
void BKE_paint_palette_set(Paint *p, Palette *palette)
static void palette_init_data(ID *id)
static int palettecolor_compare_hsv(const void *a1, const void *a2)
const char * BKE_paint_get_tool_prop_id_from_paintmode(ePaintMode mode)
void BKE_paint_face_set_overlay_color_get(const int face_set, const int seed, uchar r_color[4])
PaletteColor * BKE_palette_color_add(Palette *palette)
bool BKE_paint_always_hide_test(Object *ob)
void BKE_paint_curve_clamp_endpoint_add_index(PaintCurve *pc, const int add_index)
Palette * BKE_paint_palette(Paint *p)
ePaintOverlayControlFlags BKE_paint_get_overlay_flags(void)
static void palette_blend_read_data(BlendDataReader *reader, ID *id)
void BKE_sculpt_color_layer_create_if_needed(struct Object *object)
void BKE_paint_cavity_curve_preset(Paint *p, int preset)
ePaintMode BKE_paintmode_get_from_tool(const struct bToolRef *tref)
Paint * BKE_paint_get_active(Scene *sce, ViewLayer *view_layer)
bool BKE_palette_is_empty(const struct Palette *palette)
static void sculpt_face_sets_ensure(Mesh *mesh)
const EnumPropertyItem rna_enum_brush_image_tool_items[]
const EnumPropertyItem rna_enum_brush_curves_sculpt_tool_items[]
const EnumPropertyItem rna_enum_brush_weight_tool_items[]
const EnumPropertyItem rna_enum_brush_gpencil_sculpt_types_items[]
const EnumPropertyItem rna_enum_brush_sculpt_tool_items[]
const EnumPropertyItem rna_enum_brush_vertex_tool_items[]
const EnumPropertyItem rna_enum_brush_uv_sculpt_tool_items[]
const EnumPropertyItem rna_enum_brush_gpencil_vertex_types_items[]
const EnumPropertyItem rna_enum_brush_gpencil_weight_types_items[]
const EnumPropertyItem rna_enum_brush_gpencil_types_items[]
struct CurveMapping * curve
struct PaintCurve * paint_curve
struct SubdivCCG * subdiv_ccg
int face_sets_color_default
struct ModifierData * next
struct Mesh * mesh_deform_eval
struct SculptSession * sculpt
struct Paint_Runtime runtime
struct PaintToolSlot * tool_slots
unsigned char paint_cursor_col[4]
struct CurveMapping * cavity_curve
struct RenderEngine * render_engine
struct ToolSettings * toolsettings
struct SculptBoundaryEditInfo * edit_info
SculptBoundaryPreviewEdge * edges
int * fake_neighbor_index
SculptPoseIKChainSegment * segments
struct SubdivCCG * subdiv_ccg
struct ImagePool * tex_pool
SculptPoseIKChain * pose_ik_chain_preview
struct MeshElemMap * epmap
int preview_vert_index_count
struct Depsgraph * depsgraph
struct SculptSession::@53::@54 vpaint
SculptVertexInfo vertex_info
eCustomDataType vcol_type
struct KeyBlock * shapekey_active
int * preview_vert_index_list
SculptBoundary * boundary_preview
struct MeshElemMap * vemap
struct SculptSession::@53::@55 wpaint
union SculptSession::@53 mode
char * last_paint_canvas_key
struct MeshElemMap * pmap
struct SculptSession::@52 multires
struct MultiresModifierData * modifier
float(* deform_imats)[3][3]
struct StrokeCache * cache
struct ExpandCache * expand_cache
SculptFakeNeighbors fake_neighbors
SculptPersistentBase * persistent_base
struct FilterCache * filter_cache
bool deform_modifiers_active
int * connected_component
struct MeshElemMap * vert_to_loop
struct MeshElemMap * vert_to_poly
SubdivCCGFace ** grid_faces
BLI_bitmap ** grid_hidden
struct DMFlagMat * grid_flag_mats
float average_stroke_accum[3]
int average_stroke_counter