forked from bartvdbraak/blender
Changed the branch code markers to say "Radish" in response to a review.
They weren't & aren't meant to show ownership, they just help me navigate my related code.
This commit is contained in:
parent
6d2b98ac89
commit
a9c99f58f4
@ -1072,7 +1072,7 @@ class VIEW3D_MT_paint_weight(Menu):
|
||||
layout.operator("object.vertex_group_invert", text="Invert")
|
||||
layout.operator("object.vertex_group_clean", text="Clean")
|
||||
layout.operator("object.vertex_group_levels", text="Levels")
|
||||
#Jason
|
||||
# Radish
|
||||
layout.operator("object.vertex_group_fix", text="Fix Deforms")
|
||||
|
||||
layout.separator()
|
||||
|
@ -646,7 +646,7 @@ class VIEW3D_PT_tools_brush(PaintPanel, Panel):
|
||||
elif context.weight_paint_object and brush:
|
||||
layout.prop(context.tool_settings, "vertex_group_weight", text="Weight", slider=True)
|
||||
layout.prop(context.tool_settings, "use_auto_normalize", text="Auto Normalize")
|
||||
# Jason was here
|
||||
# Radish
|
||||
layout.prop(context.tool_settings, "use_multipaint", text="Multi-Paint")
|
||||
|
||||
col = layout.column()
|
||||
|
@ -59,7 +59,7 @@ void paint_brush_set(struct Paint *paint, struct Brush *br);
|
||||
* Texture paint could be removed since selected faces are not used
|
||||
* however hiding faces is useful */
|
||||
int paint_facesel_test(struct Object *ob);
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
int paint_vertsel_test(struct Object *ob);
|
||||
/* Session data (mode-specific) */
|
||||
|
||||
|
@ -40,7 +40,7 @@
|
||||
#include "DNA_cloth_types.h"
|
||||
#include "DNA_key_types.h"
|
||||
#include "DNA_meshdata_types.h"
|
||||
// Jason
|
||||
/* Radish */
|
||||
#include "DNA_armature_types.h"
|
||||
|
||||
#include "DNA_object_types.h"
|
||||
@ -1689,12 +1689,12 @@ static void calc_weightpaint_vert_color(Object *ob, ColorBand *coba, int vert, u
|
||||
float colf[4], input = 0.0f;
|
||||
int i;
|
||||
|
||||
// Jason was here
|
||||
/* Radish */
|
||||
int make_black= FALSE;
|
||||
|
||||
if (me->dvert) {
|
||||
if ((selected > 1) && (draw_flag & CALC_WP_MULTIPAINT)) {
|
||||
// Jason was here
|
||||
/* Radish */
|
||||
int was_a_nonzero= FALSE;
|
||||
for (i=0; i<me->dvert[vert].totweight; i++) {
|
||||
/* in multipaint, get the average if auto normalize is inactive
|
||||
@ -1761,7 +1761,7 @@ static void add_weight_mcol_dm(Object *ob, DerivedMesh *dm, int const draw_flag)
|
||||
unsigned char *wtcol;
|
||||
int i;
|
||||
|
||||
// Jason was here
|
||||
/* Radish */
|
||||
int defbase_len = BLI_countlist(&ob->defbase);
|
||||
char *defbase_sel = MEM_mallocN(defbase_len * sizeof(char), __func__);
|
||||
int selected = get_selected_defgroups(ob, defbase_sel, defbase_len);
|
||||
@ -1777,7 +1777,7 @@ static void add_weight_mcol_dm(Object *ob, DerivedMesh *dm, int const draw_flag)
|
||||
if (mf->v4)
|
||||
calc_weightpaint_vert_color(ob, coba, mf->v4, &wtcol[(i*4 + 3)*4], defbase_sel, selected, unselected, draw_flag);
|
||||
}
|
||||
// Jason
|
||||
/* Radish */
|
||||
MEM_freeN(defbase_sel);
|
||||
|
||||
CustomData_add_layer(&dm->faceData, CD_WEIGHT_MCOL, CD_ASSIGN, wtcol, dm->numFaceData);
|
||||
@ -1807,7 +1807,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
|
||||
int has_multires = mmd != NULL, multires_applied = 0;
|
||||
int sculpt_mode = ob->mode & OB_MODE_SCULPT && ob->sculpt;
|
||||
|
||||
// Jason
|
||||
/* Radish */
|
||||
int draw_flag= ((scene->toolsettings->multipaint ? CALC_WP_MULTIPAINT : 0) |
|
||||
(scene->toolsettings->auto_normalize ? CALC_WP_AUTO_NORMALIZE : 0));
|
||||
|
||||
@ -1990,7 +1990,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
|
||||
}
|
||||
|
||||
if((dataMask & CD_MASK_WEIGHT_MCOL) && (ob->mode & OB_MODE_WEIGHT_PAINT))
|
||||
add_weight_mcol_dm(ob, dm, draw_flag); // Jason
|
||||
add_weight_mcol_dm(ob, dm, draw_flag); /* Radish */
|
||||
|
||||
/* Constructive modifiers need to have an origindex
|
||||
* otherwise they wont have anywhere to copy the data from.
|
||||
@ -2102,7 +2102,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
|
||||
CDDM_calc_normals(finaldm);
|
||||
|
||||
if((dataMask & CD_MASK_WEIGHT_MCOL) && (ob->mode & OB_MODE_WEIGHT_PAINT))
|
||||
add_weight_mcol_dm(ob, finaldm, draw_flag);// Jason
|
||||
add_weight_mcol_dm(ob, finaldm, draw_flag);/* Radish */
|
||||
} else if(dm) {
|
||||
finaldm = dm;
|
||||
} else {
|
||||
@ -2114,7 +2114,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
|
||||
}
|
||||
|
||||
if((dataMask & CD_MASK_WEIGHT_MCOL) && (ob->mode & OB_MODE_WEIGHT_PAINT))
|
||||
add_weight_mcol_dm(ob, finaldm, draw_flag);// Jason
|
||||
add_weight_mcol_dm(ob, finaldm, draw_flag);/* Radish */
|
||||
}
|
||||
|
||||
/* add an orco layer if needed */
|
||||
@ -2387,7 +2387,7 @@ static void clear_mesh_caches(Object *ob)
|
||||
static void mesh_build_data(Scene *scene, Object *ob, CustomDataMask dataMask)
|
||||
{
|
||||
Object *obact = scene->basact?scene->basact->object:NULL;
|
||||
int editing = paint_facesel_test(ob) || paint_vertsel_test(ob);// Jason: paint_vertsel_test
|
||||
int editing = paint_facesel_test(ob) || paint_vertsel_test(ob);/* Radish: paint_vertsel_test */
|
||||
/* weight paint and face select need original indices because of selection buffer drawing */
|
||||
int needMapping = (ob==obact) && (editing || (ob->mode & (OB_MODE_WEIGHT_PAINT|OB_MODE_VERTEX_PAINT)));
|
||||
|
||||
|
@ -2465,7 +2465,7 @@ void where_is_pose (Scene *scene, Object *ob)
|
||||
}
|
||||
}
|
||||
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
/* Returns total selected vgroups */
|
||||
int get_selected_defgroups(Object *ob, char *dg_selection, int defbase_len)
|
||||
{
|
||||
|
@ -96,7 +96,7 @@ int paint_facesel_test(Object *ob)
|
||||
{
|
||||
return (ob && ob->type==OB_MESH && ob->data && (((Mesh *)ob->data)->editflag & ME_EDIT_PAINT_MASK) && (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT)));
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
int paint_vertsel_test(Object *ob)
|
||||
{
|
||||
return (ob && ob->type==OB_MESH && ob->data && (((Mesh *)ob->data)->editflag & ME_EDIT_VERT_SEL) && (ob->mode & OB_MODE_WEIGHT_PAINT));
|
||||
|
@ -4276,7 +4276,7 @@ static int bone_looper(Object *ob, Bone *bone, void *data,
|
||||
|
||||
return count;
|
||||
}
|
||||
// Jason
|
||||
/* Radish */
|
||||
Bone* get_other_selected_bone(Object *ob) {
|
||||
Bone *bone;
|
||||
int i;
|
||||
@ -4307,10 +4307,10 @@ int ED_do_pose_selectbuffer(Scene *scene, Base *base, unsigned int *buffer, shor
|
||||
bArmature *arm= ob->data;
|
||||
|
||||
/* since we do unified select, we don't shift+select a bone if the armature object was not active yet */
|
||||
/* Jason was here, I'm doing a select for multibone painting */
|
||||
/* Radish, I'm doing a select for multibone painting */
|
||||
if (scene->toolsettings->multipaint && (base != scene->basact)) {//if (!(extend) || (base != scene->basact)) {
|
||||
Bone *new_act_bone;
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
/* only deselect all if they aren't using 'shift' */
|
||||
if(!extend) {
|
||||
ED_pose_deselectall(ob, 0);
|
||||
@ -4319,7 +4319,7 @@ int ED_do_pose_selectbuffer(Scene *scene, Base *base, unsigned int *buffer, shor
|
||||
ED_vgroup_select_by_name(OBACT, nearBone->name);
|
||||
}
|
||||
else {
|
||||
// Jason deselect this bone specifically if it is selected already
|
||||
/* Radish deselect this bone specifically if it is selected already */
|
||||
if (nearBone->flag & BONE_SELECTED) {
|
||||
nearBone->flag &= ~(BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL);
|
||||
if(nearBone == arm->act_bone) {
|
||||
@ -5105,7 +5105,7 @@ void POSE_OT_select_inverse(wmOperatorType *ot)
|
||||
static int pose_de_select_all_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
int action = RNA_enum_get(op->ptr, "action");
|
||||
//Jason
|
||||
//Radish
|
||||
Object *ob = NULL;
|
||||
Scene *scene= CTX_data_scene(C);
|
||||
int multipaint = scene->toolsettings->multipaint;
|
||||
@ -5138,7 +5138,7 @@ static int pose_de_select_all_exec(bContext *C, wmOperator *op)
|
||||
CTX_DATA_END;
|
||||
|
||||
WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, NULL);
|
||||
// Jason
|
||||
/* Radish */
|
||||
if(multipaint) {
|
||||
ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
|
||||
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
|
||||
|
@ -657,7 +657,7 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource,
|
||||
int *vertsflipped = NULL, *mask= NULL;
|
||||
int a, totface, j, bbone, firstsegment, lastsegment;
|
||||
|
||||
// Jason
|
||||
/* Radish */
|
||||
MVert *mv = me->mvert;
|
||||
int use_vert_sel= FALSE;
|
||||
|
||||
@ -670,7 +670,7 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource,
|
||||
for(totface=0, a=0, mface=me->mface; a<me->totface; a++, mface++) {
|
||||
totface++;
|
||||
if(mface->v4) totface++;
|
||||
// Jason (added selectedVerts content for vertex mask, they used to just equal 1)
|
||||
/* Radish (added selectedVerts content for vertex mask, they used to just equal 1) */
|
||||
if(mask && ((mface->flag & ME_FACE_SEL) || use_vert_sel)) {
|
||||
mask[mface->v1]= use_vert_sel ? ((mv+mface->v1)->flag & 1): 1;
|
||||
mask[mface->v2]= use_vert_sel ? ((mv+mface->v2)->flag & 1): 1;
|
||||
|
@ -122,7 +122,7 @@ int EM_texFaceCheck(struct EditMesh *em);
|
||||
int EM_vertColorCheck(struct EditMesh *em);
|
||||
|
||||
void undo_push_mesh(struct bContext *C, const char *name);
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
void paintvert_flush_flags(struct Object *ob);
|
||||
void paintvert_deselect_all_visible(struct Object *ob, int action, short flush_flags);
|
||||
|
||||
|
@ -216,7 +216,7 @@ void ED_view3d_project_float(struct ARegion *a, const float vec[3], float adr[2]
|
||||
void ED_view3d_calc_camera_border(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, struct RegionView3D *rv3d, struct rctf *viewborder_r, short do_shift);
|
||||
|
||||
/* drawobject.c iterators */
|
||||
/*Jason*/
|
||||
/* Radish */
|
||||
void mesh_obmode_foreachScreenVert(struct ViewContext *vc, void (*func)(void *userData, struct MVert *mv, int x, int y, int index), void *userData, int clipVerts);
|
||||
|
||||
void mesh_foreachScreenVert(struct ViewContext *vc, void (*func)(void *userData, struct EditVert *eve, int x, int y, int index), void *userData, int clipVerts);
|
||||
|
@ -2124,7 +2124,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
|
||||
//uiItemR(row, itemptr, "mute", 0, "", ICON_MUTE_IPO_OFF);
|
||||
uiBlockSetEmboss(block, UI_EMBOSS);
|
||||
}
|
||||
/* Jason was here: I need the RNA struct for vertex groups */
|
||||
/* Radish: I need the RNA struct for vertex groups */
|
||||
else if(itemptr->type == &RNA_VertexGroup) {
|
||||
bDeformGroup *dg= (bDeformGroup *)itemptr->data;
|
||||
uiItemL(sub, name, icon);
|
||||
|
@ -1960,7 +1960,7 @@ void em_setup_viewcontext(bContext *C, ViewContext *vc)
|
||||
}
|
||||
|
||||
|
||||
/* Jason (similar to void paintface_flush_flags(Object *ob))
|
||||
/* Radish (similar to void paintface_flush_flags(Object *ob))
|
||||
* copy the vertex flags, most importantly selection from the mesh to the final derived mesh,
|
||||
* use in object mode when selecting vertices (while painting) */
|
||||
void paintvert_flush_flags(Object *ob)
|
||||
@ -1992,7 +1992,7 @@ void paintvert_flush_flags(Object *ob)
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Jason note: if the caller passes FALSE to flush_flags, then they will need to run paintvert_flush_flags(ob) themselves */
|
||||
/* Radish note: if the caller passes FALSE to flush_flags, then they will need to run paintvert_flush_flags(ob) themselves */
|
||||
void paintvert_deselect_all_visible(Object *ob, int action, short flush_flags)
|
||||
{
|
||||
Mesh *me;
|
||||
|
@ -266,7 +266,7 @@ int EM_mask_init_backbuf_border(ViewContext *vc, int mcords[][2], short tot, sho
|
||||
/* method in use for face selecting too */
|
||||
if(vc->obedit==NULL) {
|
||||
if(paint_facesel_test(vc->obact));
|
||||
else if(paint_vertsel_test(vc->obact));//Jason
|
||||
else if(paint_vertsel_test(vc->obact));//Radish
|
||||
else return 0;
|
||||
}
|
||||
else if(vc->v3d->drawtype<OB_SOLID || (vc->v3d->flag & V3D_ZBUF_SELECT)==0) return 0;
|
||||
@ -329,7 +329,7 @@ int EM_init_backbuf_circle(ViewContext *vc, short xs, short ys, short rads)
|
||||
/* method in use for face selecting too */
|
||||
if(vc->obedit==NULL) {
|
||||
if(paint_facesel_test(vc->obact));
|
||||
else if (paint_vertsel_test(vc->obact));//Jason
|
||||
else if (paint_vertsel_test(vc->obact));//Radish
|
||||
else return 0;
|
||||
}
|
||||
else if(vc->v3d->drawtype<OB_SOLID || (vc->v3d->flag & V3D_ZBUF_SELECT)==0) return 0;
|
||||
|
@ -200,7 +200,7 @@ void OBJECT_OT_vertex_group_copy(struct wmOperatorType *ot);
|
||||
void OBJECT_OT_vertex_group_normalize(struct wmOperatorType *ot);
|
||||
void OBJECT_OT_vertex_group_normalize_all(struct wmOperatorType *ot);
|
||||
void OBJECT_OT_vertex_group_levels(struct wmOperatorType *ot);
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
void OBJECT_OT_vertex_group_lock(struct wmOperatorType *ot);
|
||||
void OBJECT_OT_vertex_group_fix(struct wmOperatorType *ot);
|
||||
|
||||
|
@ -174,7 +174,7 @@ void ED_operatortypes_object(void)
|
||||
WM_operatortype_append(OBJECT_OT_vertex_group_copy);
|
||||
WM_operatortype_append(OBJECT_OT_vertex_group_normalize);
|
||||
WM_operatortype_append(OBJECT_OT_vertex_group_normalize_all);
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
WM_operatortype_append(OBJECT_OT_vertex_group_lock);
|
||||
WM_operatortype_append(OBJECT_OT_vertex_group_fix);
|
||||
|
||||
|
@ -61,7 +61,7 @@
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_mesh.h"
|
||||
#include "BKE_report.h"
|
||||
#include "BKE_DerivedMesh.h"//Jason
|
||||
#include "BKE_DerivedMesh.h"//Radish
|
||||
|
||||
#include "RNA_access.h"
|
||||
#include "RNA_define.h"
|
||||
@ -703,7 +703,7 @@ static void vgroup_normalize(Object *ob)
|
||||
MDeformWeight *dw;
|
||||
MDeformVert *dvert, **dvert_array=NULL;
|
||||
int i, def_nr, dvert_tot=0;
|
||||
// Jason
|
||||
/* Radish */
|
||||
Mesh *me = ob->data;
|
||||
MVert *mvert = me->mvert;
|
||||
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
|
||||
@ -718,7 +718,7 @@ static void vgroup_normalize(Object *ob)
|
||||
def_nr= ob->actdef-1;
|
||||
|
||||
for(i = 0; i < dvert_tot; i++) {
|
||||
// Jason
|
||||
/* Radish */
|
||||
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
|
||||
continue;
|
||||
}
|
||||
@ -732,7 +732,7 @@ static void vgroup_normalize(Object *ob)
|
||||
|
||||
if(weight_max > 0.0f) {
|
||||
for(i = 0; i < dvert_tot; i++) {
|
||||
// Jason
|
||||
/* Radish */
|
||||
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
|
||||
continue;
|
||||
}
|
||||
@ -751,7 +751,7 @@ static void vgroup_normalize(Object *ob)
|
||||
|
||||
if (dvert_array) MEM_freeN(dvert_array);
|
||||
}
|
||||
// Jason
|
||||
/* Radish */
|
||||
/* This adds the indices of vertices to a list if they are not already present
|
||||
It returns the number that it added (0-2)
|
||||
It relies on verts having -1 for unassigned indices
|
||||
@ -780,7 +780,7 @@ static int tryToAddVerts(int *verts, int length, int a, int b) {
|
||||
}
|
||||
return added;
|
||||
}
|
||||
//Jason
|
||||
//Radish
|
||||
/* This finds all of the vertices connected to vert by an edge
|
||||
and returns an array of indices of size count
|
||||
|
||||
@ -844,7 +844,7 @@ static int* getSurroundingVerts(Mesh *me, int vert, int *count) {
|
||||
MEM_freeN(tverts);
|
||||
return verts;
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
/* get a single point in space by averaging a point cloud (vectors of size 3)
|
||||
coord is the place the average is stored, points is the point cloud, count is the number of points in the cloud
|
||||
*/
|
||||
@ -856,7 +856,7 @@ static void getSingleCoordinate(MVert *points, int count, float coord[3]) {
|
||||
}
|
||||
mul_v3_fl(coord, 1.0f/count);
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
/* find the closest point on a plane to another point and store it in dst */
|
||||
/* coord is a point on the plane */
|
||||
/* point is the point that you want the nearest of */
|
||||
@ -873,7 +873,7 @@ static void getNearestPointOnPlane(const float norm[3], const float coord[3], co
|
||||
dst_r[1] = point[1] - (norm[1] * dotprod);
|
||||
dst_r[2] = point[2] - (norm[2] * dotprod);
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
/* distance of two vectors a and b of size length */
|
||||
static float distance(float* a, float *b, int length) {
|
||||
int i;
|
||||
@ -883,7 +883,7 @@ static float distance(float* a, float *b, int length) {
|
||||
}
|
||||
return sqrt(sum);
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
/* given a plane and a start and end position,
|
||||
compute the amount of vertical distance relative to the plane and store it in dists,
|
||||
then get the horizontal and vertical change and store them in changes
|
||||
@ -904,7 +904,7 @@ static void getVerticalAndHorizontalChange(float *norm, float d, float *coord, f
|
||||
// horizontal change
|
||||
changes[index][1] = distance(projA, projB, 3);
|
||||
}
|
||||
// Jason
|
||||
/* Radish */
|
||||
// I need the derived mesh to be forgotten so the positions are recalculated with weight changes (see dm_deform_recalc)
|
||||
static void dm_deform_clear(DerivedMesh *dm, Object *ob) {
|
||||
if(ob->derivedDeform && (ob->derivedDeform)==dm) {
|
||||
@ -917,12 +917,12 @@ static void dm_deform_clear(DerivedMesh *dm, Object *ob) {
|
||||
dm->release(dm);
|
||||
}
|
||||
}
|
||||
// Jason
|
||||
/* Radish */
|
||||
// recalculate the deformation
|
||||
static DerivedMesh* dm_deform_recalc(Scene *scene, Object *ob) {
|
||||
return mesh_get_derived_deform(scene, ob, CD_MASK_BAREMESH);
|
||||
}
|
||||
// Jason
|
||||
/* Radish */
|
||||
/* by changing nonzero weights, try to move a vertex in me->mverts with index 'index' to distToBe distance away from the provided plane
|
||||
strength can change distToBe so that it moves towards distToBe by that percentage
|
||||
cp changes how much the weights are adjusted to check the distance
|
||||
@ -1094,7 +1094,7 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in
|
||||
MEM_freeN(dists);
|
||||
MEM_freeN(dwIndices);
|
||||
}
|
||||
// Jason
|
||||
/* Radish */
|
||||
/* this is used to try to smooth a surface by only adjusting the nonzero weights of a vertex
|
||||
but it could be used to raise or lower an existing 'bump.' */
|
||||
static void vgroup_fix(Scene *scene, Object *ob, float distToBe, float strength, float cp)
|
||||
@ -1106,7 +1106,7 @@ static void vgroup_fix(Scene *scene, Object *ob, float distToBe, float strength,
|
||||
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
|
||||
int *verts = NULL;
|
||||
for(i = 0; i < me->totvert && mvert; i++, mvert++) {
|
||||
// Jason
|
||||
/* Radish */
|
||||
if(use_vert_sel && (mvert->flag & SELECT)) {
|
||||
|
||||
int count=0;
|
||||
@ -1153,7 +1153,7 @@ static void vgroup_levels(Object *ob, float offset, float gain)
|
||||
MDeformWeight *dw;
|
||||
MDeformVert *dvert, **dvert_array=NULL;
|
||||
int i, def_nr, dvert_tot=0;
|
||||
// Jason
|
||||
/* Radish */
|
||||
Mesh *me = ob->data;
|
||||
MVert *mvert = me->mvert;
|
||||
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
|
||||
@ -1166,7 +1166,7 @@ static void vgroup_levels(Object *ob, float offset, float gain)
|
||||
def_nr= ob->actdef-1;
|
||||
|
||||
for(i = 0; i < dvert_tot; i++) {
|
||||
// Jason
|
||||
/* Radish */
|
||||
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
|
||||
continue;
|
||||
}
|
||||
@ -1192,7 +1192,7 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
|
||||
int i, dvert_tot=0;
|
||||
float tot_weight;
|
||||
|
||||
// Jason
|
||||
/* Radish */
|
||||
Mesh *me = ob->data;
|
||||
MVert *mvert = me->mvert;
|
||||
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
|
||||
@ -1206,7 +1206,7 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
|
||||
for(i = 0; i < dvert_tot; i++) {
|
||||
float lock_iweight= 1.0f;
|
||||
int j;
|
||||
// Jason
|
||||
/* Radish */
|
||||
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
|
||||
continue;
|
||||
}
|
||||
@ -1250,7 +1250,7 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
|
||||
else {
|
||||
for(i = 0; i < dvert_tot; i++) {
|
||||
int j;
|
||||
// Jason
|
||||
/* Radish */
|
||||
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
|
||||
continue;
|
||||
}
|
||||
@ -1281,7 +1281,7 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
|
||||
if (dvert_array) MEM_freeN(dvert_array);
|
||||
}
|
||||
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
static void vgroup_lock_all(Object *ob, int action)
|
||||
{
|
||||
bDeformGroup *dg;
|
||||
@ -1317,7 +1317,7 @@ static void vgroup_invert(Object *ob, int auto_assign, int auto_remove)
|
||||
MDeformWeight *dw;
|
||||
MDeformVert *dvert, **dvert_array=NULL;
|
||||
int i, def_nr, dvert_tot=0;
|
||||
// Jason
|
||||
/* Radish */
|
||||
Mesh *me = ob->data;
|
||||
MVert *mvert = me->mvert;
|
||||
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
|
||||
@ -1331,7 +1331,7 @@ static void vgroup_invert(Object *ob, int auto_assign, int auto_remove)
|
||||
|
||||
|
||||
for(i = 0; i < dvert_tot; i++) {
|
||||
// Jason
|
||||
/* Radish */
|
||||
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
|
||||
continue;
|
||||
}
|
||||
@ -1447,7 +1447,7 @@ static void vgroup_clean(Object *ob, float eul, int keep_single)
|
||||
MDeformWeight *dw;
|
||||
MDeformVert *dvert, **dvert_array=NULL;
|
||||
int i, def_nr, dvert_tot=0;
|
||||
// Jason
|
||||
/* Radish */
|
||||
Mesh *me = ob->data;
|
||||
MVert *mvert = me->mvert;
|
||||
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
|
||||
@ -1460,7 +1460,7 @@ static void vgroup_clean(Object *ob, float eul, int keep_single)
|
||||
def_nr= ob->actdef-1;
|
||||
|
||||
for(i = 0; i < dvert_tot; i++) {
|
||||
// Jason
|
||||
/* Radish */
|
||||
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
|
||||
continue;
|
||||
}
|
||||
@ -1485,7 +1485,7 @@ static void vgroup_clean_all(Object *ob, float eul, int keep_single)
|
||||
MDeformWeight *dw;
|
||||
MDeformVert *dvert, **dvert_array=NULL;
|
||||
int i, dvert_tot=0;
|
||||
// Jason
|
||||
/* Radish */
|
||||
Mesh *me = ob->data;
|
||||
MVert *mvert = me->mvert;
|
||||
const int use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
|
||||
@ -1495,7 +1495,7 @@ static void vgroup_clean_all(Object *ob, float eul, int keep_single)
|
||||
if(dvert_array) {
|
||||
for(i = 0; i < dvert_tot; i++) {
|
||||
int j;
|
||||
// Jason
|
||||
/* Radish */
|
||||
if(use_vert_sel && !((mvert+i)->flag & SELECT)) {
|
||||
continue;
|
||||
}
|
||||
@ -2319,7 +2319,7 @@ void OBJECT_OT_vertex_group_normalize_all(wmOperatorType *ot)
|
||||
|
||||
RNA_def_boolean(ot->srna, "lock_active", TRUE, "Lock Active", "Keep the values of the active group while normalizing others.");
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
static int vertex_group_fix_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
Object *ob= CTX_data_active_object(C);
|
||||
@ -2367,7 +2367,7 @@ void OBJECT_OT_vertex_group_fix(wmOperatorType *ot)
|
||||
RNA_def_float(ot->srna, "cp", 1.0f, 0.05f, FLT_MAX, "Change Sensitivity", "Changes the amount weights are altered with each iteration: lower values are slower.", 0.05f, 1.f);
|
||||
}
|
||||
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
static int vertex_group_lock_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
Object *ob= CTX_data_active_object(C);
|
||||
@ -2378,7 +2378,7 @@ static int vertex_group_lock_exec(bContext *C, wmOperator *op)
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
void OBJECT_OT_vertex_group_lock(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
|
@ -5408,12 +5408,12 @@ int facemask_paint_poll(bContext *C)
|
||||
{
|
||||
return paint_facesel_test(CTX_data_active_object(C));
|
||||
}
|
||||
// Jason
|
||||
/* Radish */
|
||||
int vert_paint_poll(bContext *C)
|
||||
{
|
||||
return paint_vertsel_test(CTX_data_active_object(C));
|
||||
}
|
||||
// Jason
|
||||
/* Radish */
|
||||
int mask_paint_poll(bContext *C)
|
||||
{
|
||||
return paint_facesel_test(CTX_data_active_object(C)) || paint_vertsel_test(CTX_data_active_object(C));
|
||||
|
@ -121,7 +121,7 @@ void PAINT_OT_face_select_all(struct wmOperatorType *ot);
|
||||
void PAINT_OT_face_select_inverse(struct wmOperatorType *ot);
|
||||
void PAINT_OT_face_select_hide(struct wmOperatorType *ot);
|
||||
void PAINT_OT_face_select_reveal(struct wmOperatorType *ot);
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
void PAINT_OT_vert_select_all(struct wmOperatorType *ot);
|
||||
void PAINT_OT_vert_select_inverse(struct wmOperatorType *ot);
|
||||
int vert_paint_poll(struct bContext *C);
|
||||
|
@ -373,7 +373,7 @@ void ED_operatortypes_paint(void)
|
||||
WM_operatortype_append(PAINT_OT_weight_sample);
|
||||
WM_operatortype_append(PAINT_OT_weight_sample_group);
|
||||
|
||||
/* Jason, vertex selection */
|
||||
/* Radish, vertex selection */
|
||||
WM_operatortype_append(PAINT_OT_vert_select_all);
|
||||
WM_operatortype_append(PAINT_OT_vert_select_inverse);
|
||||
|
||||
@ -611,7 +611,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
|
||||
|
||||
WM_keymap_verify_item(keymap, "PAINT_OT_weight_from_bones", WKEY, KM_PRESS, 0, 0);
|
||||
|
||||
// Jason
|
||||
/* Radish */
|
||||
/*Weight paint's Vertex Selection Mode */
|
||||
keymap= WM_keymap_find(keyconf, "Weight Paint Vertex Selection", 0, 0);
|
||||
keymap->poll= vert_paint_poll;
|
||||
|
@ -358,7 +358,7 @@ void PAINT_OT_face_select_all(wmOperatorType *ot)
|
||||
WM_operator_properties_select_all(ot);
|
||||
}
|
||||
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
static int vert_select_all_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
Object *ob= CTX_data_active_object(C);
|
||||
@ -367,7 +367,7 @@ static int vert_select_all_exec(bContext *C, wmOperator *op)
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
void PAINT_OT_vert_select_all(wmOperatorType *ot)
|
||||
{
|
||||
ot->name= "Vertex Selection";
|
||||
@ -381,7 +381,7 @@ void PAINT_OT_vert_select_all(wmOperatorType *ot)
|
||||
|
||||
WM_operator_properties_select_all(ot);
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
static int vert_select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
Object *ob= CTX_data_active_object(C);
|
||||
@ -389,7 +389,7 @@ static int vert_select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
ED_region_tag_redraw(CTX_wm_region(C));
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
void PAINT_OT_vert_select_inverse(wmOperatorType *ot)
|
||||
{
|
||||
ot->name= "Vertex Select Invert";
|
||||
|
@ -399,14 +399,14 @@ void wpaint_fill(VPaint *wp, Object *ob, float paintweight)
|
||||
unsigned char i;
|
||||
int vgroup_mirror= -1;
|
||||
int selected;
|
||||
// Jason
|
||||
/* Radish */
|
||||
int use_vert_sel;
|
||||
|
||||
me= ob->data;
|
||||
if(me==NULL || me->totface==0 || me->dvert==NULL || !me->mface) return;
|
||||
|
||||
selected= (me->editflag & ME_EDIT_PAINT_MASK);
|
||||
// Jason
|
||||
/* Radish */
|
||||
use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
|
||||
|
||||
indexar= get_indexarray(me);
|
||||
@ -443,7 +443,7 @@ void wpaint_fill(VPaint *wp, Object *ob, float paintweight)
|
||||
faceverts[3]= mface->v4;
|
||||
for (i=0; i<3 || faceverts[i]; i++) {
|
||||
if(!me->dvert[faceverts[i]].flag) {
|
||||
// Jason
|
||||
/* Radish */
|
||||
if(use_vert_sel && ((me->mvert[faceverts[i]].flag & SELECT) == 0)) {
|
||||
continue;
|
||||
}
|
||||
@ -840,7 +840,7 @@ static void wpaint_blend(VPaint *wp, MDeformWeight *dw, MDeformWeight *uw, float
|
||||
if (dw->weight > paintval)
|
||||
dw->weight = paintval*alpha + dw->weight*(1.0f-alpha);
|
||||
}
|
||||
// Jason delay clamping until the end so multi-paint can function when the active group is at the limits
|
||||
/* Radish delay clamping until the end so multi-paint can function when the active group is at the limits */
|
||||
//CLAMP(dw->weight, 0.0f, 1.0f);
|
||||
|
||||
/* if no spray, clip result with orig weight & orig alpha */
|
||||
@ -1111,7 +1111,7 @@ static void do_weight_paint_auto_normalize(MDeformVert *dvert,
|
||||
}
|
||||
#endif
|
||||
|
||||
// Jason was here: the active group should be involved in auto normalize
|
||||
/* Radish: the active group should be involved in auto normalize */
|
||||
static void do_weight_paint_auto_normalize_all_groups(MDeformVert *dvert, char *map)
|
||||
{
|
||||
// MDeformWeight *dw = dvert->dw;
|
||||
@ -1140,7 +1140,7 @@ static void do_weight_paint_auto_normalize_all_groups(MDeformVert *dvert, char *
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
/*
|
||||
See if the current deform vertex has a locked group
|
||||
*/
|
||||
@ -1154,7 +1154,7 @@ static char has_locked_group(MDeformVert *dvert, char *flags)
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
/* Jason was here
|
||||
/* Radish
|
||||
* gen_lck_flags gets the status of "flag" for each bDeformGroup
|
||||
*in ob->defbase and returns an array containing them
|
||||
*/
|
||||
@ -1177,7 +1177,7 @@ static char *gen_lck_flags(Object* ob, int defbase_len)
|
||||
MEM_freeN(flags);
|
||||
return NULL;
|
||||
}
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
static int has_locked_group_selected(int defbase_len, char *defbase_sel, char *flags) {
|
||||
int i;
|
||||
for(i = 0; i < defbase_len; i++) {
|
||||
@ -1188,7 +1188,7 @@ static int has_locked_group_selected(int defbase_len, char *defbase_sel, char *f
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
#if 0 /* UNUSED */
|
||||
static int has_unselected_unlocked_bone_group(int defbase_len, char *defbase_sel, int selected, char *flags, char *bone_groups) {
|
||||
int i;
|
||||
@ -1204,7 +1204,7 @@ static int has_unselected_unlocked_bone_group(int defbase_len, char *defbase_sel
|
||||
}
|
||||
#endif
|
||||
|
||||
/*Jason*/
|
||||
/* Radish */
|
||||
static void multipaint_selection(MDeformVert *dvert, float change, char *defbase_sel, int defbase_len) {
|
||||
int i;
|
||||
MDeformWeight *dw;
|
||||
@ -1216,7 +1216,7 @@ static void multipaint_selection(MDeformVert *dvert, float change, char *defbase
|
||||
if(dw && dw->weight) {
|
||||
val = dw->weight * change;
|
||||
if(val > 1) {
|
||||
// Jason TODO: when the change is reduced, you need to recheck the earlier values to make sure they are not 0 (precision error)
|
||||
/* Radish TODO: when the change is reduced, you need to recheck the earlier values to make sure they are not 0 (precision error) */
|
||||
change = 1.0f/dw->weight;
|
||||
}
|
||||
// the value should never reach zero while multi-painting if it was nonzero beforehand
|
||||
@ -1236,7 +1236,7 @@ static void multipaint_selection(MDeformVert *dvert, float change, char *defbase
|
||||
}
|
||||
}
|
||||
}
|
||||
/*Jason*/
|
||||
/* Radish */
|
||||
// move all change onto valid, unchanged groups. If there is change left over, then return it.
|
||||
// assumes there are valid groups to shift weight onto
|
||||
static float redistribute_change(MDeformVert *ndv, char *change_status, int changeme, int changeto, char *validmap, float totchange, float total_valid) {
|
||||
@ -1282,7 +1282,7 @@ static float redistribute_change(MDeformVert *ndv, char *change_status, int chan
|
||||
// left overs
|
||||
return totchange;
|
||||
}
|
||||
/*Jason*/
|
||||
/* Radish */
|
||||
// observe the changes made to the weights of groups.
|
||||
// make sure all locked groups on the vertex have the same deformation
|
||||
// by moving the changes made to groups onto other unlocked groups
|
||||
@ -1406,7 +1406,7 @@ static void enforce_locks(MDeformVert *odv, MDeformVert *ndv, int defbase_len, c
|
||||
|
||||
MEM_freeN(change_status);
|
||||
}
|
||||
/*Jason*/
|
||||
/* Radish */
|
||||
// multi-paint's initial, potential change is computed here based on the user's stroke
|
||||
static float get_mp_change(MDeformVert *odv, char *defbase_sel, float brush_change) {
|
||||
float selwsum = 0.0f;
|
||||
@ -1422,7 +1422,7 @@ static float get_mp_change(MDeformVert *odv, char *defbase_sel, float brush_chan
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
/*Jason*/
|
||||
/* Radish */
|
||||
// change the weights back to the wv's weights
|
||||
// it assumes you already have the correct pointer index
|
||||
static void reset_to_prev(MDeformVert *wv, MDeformVert *dv) {
|
||||
@ -1440,14 +1440,14 @@ static void reset_to_prev(MDeformVert *wv, MDeformVert *dv) {
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
static void clamp_weights(MDeformVert *dvert) {
|
||||
int i;
|
||||
for (i = 0; i < dvert->totweight; i++) {
|
||||
CLAMP((dvert->dw+i)->weight, 0.0f, 1.0f);
|
||||
}
|
||||
}
|
||||
/*Jason*/
|
||||
/* Radish */
|
||||
/* fresh start to make multi-paint and locking modular */
|
||||
/* returns TRUE if it thinks you need to reset the weights due to normalizing while multi-painting */
|
||||
static int apply_mp_lcks_normalize(Mesh *me, int index, MDeformWeight *dw, MDeformWeight *tdw, int defbase_len, float change, float oldChange, float oldw, float neww, char *defbase_sel, int selected, char *bone_groups, char *validmap, char *flags, int multipaint) {
|
||||
@ -1506,7 +1506,7 @@ static int get_first_selected_nonzero_weight(MDeformVert *dvert, char *defbase_s
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
// Jason
|
||||
/* Radish */
|
||||
static char *wpaint_make_validmap(Object *ob);
|
||||
|
||||
static void do_weight_paint_vertex(VPaint *wp, Object *ob, int index,
|
||||
@ -1514,11 +1514,11 @@ static void do_weight_paint_vertex(VPaint *wp, Object *ob, int index,
|
||||
int vgroup_mirror, char *validmap, int multipaint)
|
||||
{
|
||||
Mesh *me= ob->data;
|
||||
// Jason: tdw, tuw
|
||||
// Radish: tdw, tuw
|
||||
MDeformWeight *dw, *uw, *tdw = NULL, *tuw;
|
||||
int vgroup= ob->actdef-1;
|
||||
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
char *flags;
|
||||
char *bone_groups;
|
||||
char *defbase_sel;
|
||||
@ -1549,7 +1549,7 @@ static void do_weight_paint_vertex(VPaint *wp, Object *ob, int index,
|
||||
}
|
||||
if(dw==NULL || uw==NULL)
|
||||
return;
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
flags = gen_lck_flags(ob, defbase_len = BLI_countlist(&ob->defbase));
|
||||
defbase_sel = MEM_mallocN(defbase_len * sizeof(char), "dg_selected_flags");
|
||||
selected = get_selected_defgroups(ob, defbase_sel, defbase_len);
|
||||
@ -1608,7 +1608,7 @@ static void do_weight_paint_vertex(VPaint *wp, Object *ob, int index,
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
if(apply_mp_lcks_normalize(me, index, dw, tdw, defbase_len, change, oldChange, oldw, neww, defbase_sel, selected, bone_groups, validmap, flags, multipaint)) {
|
||||
reset_to_prev(dv, me->dvert+index);
|
||||
change = 0;
|
||||
@ -1629,13 +1629,13 @@ static void do_weight_paint_vertex(VPaint *wp, Object *ob, int index,
|
||||
uw= defvert_verify_index(me->dvert+j, vgroup_mirror);
|
||||
else
|
||||
uw= defvert_verify_index(me->dvert+j, vgroup);
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
//uw->weight= dw->weight;
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
apply_mp_lcks_normalize(me, j, uw, tdw, defbase_len, change, oldChange, oldw, neww, defbase_sel, selected, bone_groups, validmap, flags, multipaint);
|
||||
}
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
if(flags) {
|
||||
MEM_freeN(flags);
|
||||
}
|
||||
@ -1899,7 +1899,7 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
|
||||
float alpha;
|
||||
float mval[2], pressure;
|
||||
|
||||
// Jason
|
||||
/* Radish */
|
||||
int use_vert_sel;
|
||||
|
||||
/* cannot paint if there is no stroke data */
|
||||
@ -1928,7 +1928,7 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
|
||||
|
||||
swap_m4m4(wpd->vc.rv3d->persmat, mat);
|
||||
|
||||
// Jason
|
||||
/* Radish */
|
||||
use_vert_sel= (me->editflag & ME_EDIT_VERT_SEL) != 0;
|
||||
|
||||
/* which faces are involved */
|
||||
@ -2172,7 +2172,7 @@ void PAINT_OT_weight_set(wmOperatorType *ot)
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec= weight_paint_set_exec;
|
||||
ot->poll= mask_paint_poll; // Jason, it was facemask_paint_poll
|
||||
ot->poll= mask_paint_poll; /* Radish, it was facemask_paint_poll */
|
||||
|
||||
/* flags */
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
|
@ -86,7 +86,7 @@
|
||||
#include "BIF_gl.h"
|
||||
#include "BIF_glutil.h"
|
||||
|
||||
#include "GPU_buffers.h"// Jason
|
||||
#include "GPU_buffers.h"/* Radish */
|
||||
#include "GPU_draw.h"
|
||||
#include "GPU_extensions.h"
|
||||
|
||||
@ -1741,7 +1741,7 @@ void mesh_foreachScreenVert(ViewContext *vc, void (*func)(void *userData, EditVe
|
||||
|
||||
dm->release(dm);
|
||||
}
|
||||
/*Jason */
|
||||
/* Radish */
|
||||
static void mesh_obmode_foreachScreenVert__mapFunc(void *userData, int index, float *co, float *UNUSED(no_f), short *UNUSED(no_s))
|
||||
{
|
||||
struct { void (*func)(void *userData, MVert *mv, int x, int y, int index); void *userData; ViewContext vc; int clipVerts; } *data = userData;
|
||||
@ -1762,7 +1762,7 @@ static void mesh_obmode_foreachScreenVert__mapFunc(void *userData, int index, fl
|
||||
data->func(data->userData, mv, s[0], s[1], index);
|
||||
}
|
||||
}
|
||||
/*Jason*/
|
||||
/* Radish */
|
||||
void mesh_obmode_foreachScreenVert(ViewContext *vc, void (*func)(void *userData, MVert *mv, int x, int y, int index), void *userData, int clipVerts)
|
||||
{
|
||||
struct { void (*func)(void *userData, MVert *mv, int x, int y, int index); void *userData; ViewContext vc; int clipVerts; } data;
|
||||
@ -1781,7 +1781,7 @@ void mesh_obmode_foreachScreenVert(ViewContext *vc, void (*func)(void *userData,
|
||||
dm->release(dm);
|
||||
}
|
||||
|
||||
/* Jason draw callback */
|
||||
/* Radish draw callback */
|
||||
static void drawSelectedVertices__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s)
|
||||
{
|
||||
MVert *mv = userData;
|
||||
@ -1800,7 +1800,7 @@ static void drawSelectedVertices__mapFunc(void *userData, int index, float *co,
|
||||
glVertex3fv(co);
|
||||
}
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
static void drawSelectedVertices(DerivedMesh *dm, Mesh *me) {
|
||||
glBegin(GL_POINTS);
|
||||
dm->foreachMappedVert(dm, drawSelectedVertices__mapFunc, me->mvert);
|
||||
@ -2990,7 +2990,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
|
||||
bglPolygonOffset(rv3d->dist, 0.0);
|
||||
}
|
||||
}
|
||||
// Jason
|
||||
/* Radish */
|
||||
if(paint_vertsel_test(ob)) {
|
||||
|
||||
glColor3f(0.0f, 0.0f, 0.0f);
|
||||
@ -6590,7 +6590,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
|
||||
}
|
||||
|
||||
/* ***************** BACKBUF SEL (BBS) ********* */
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
static void bbs_obmode_mesh_verts__mapFunc(void *userData, int index, float *co, float *UNUSED(no_f), short *UNUSED(no_s))
|
||||
{
|
||||
struct {void* offset; MVert *mvert;} *data = userData;
|
||||
@ -6602,7 +6602,7 @@ static void bbs_obmode_mesh_verts__mapFunc(void *userData, int index, float *co,
|
||||
bglVertex3fv(co);
|
||||
}
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
static void bbs_obmode_mesh_verts(Object *ob, DerivedMesh *dm, int offset)
|
||||
{
|
||||
struct {void* offset; struct MVert *mvert;} data;
|
||||
@ -6714,7 +6714,7 @@ static int bbs_mesh_solid_hide__setDrawOpts(void *userData, int index, int *UNUS
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
// must have called WM_set_framebuffer_index_color beforehand
|
||||
static int bbs_mesh_solid_hide2__setDrawOpts(void *userData, int index, int *UNUSED(drawSmooth_r))
|
||||
{
|
||||
|
@ -371,7 +371,7 @@ static void view3d_main_area_init(wmWindowManager *wm, ARegion *ar)
|
||||
keymap= WM_keymap_find(wm->defaultconf, "Face Mask", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
keymap= WM_keymap_find(wm->defaultconf, "Weight Paint Vertex Selection", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
|
@ -503,7 +503,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
|
||||
if(ob->mode & (OB_MODE_TEXTURE_PAINT|OB_MODE_VERTEX_PAINT)) {
|
||||
uiItemR(layout, &meshptr, "use_paint_mask", UI_ITEM_R_ICON_ONLY, "", ICON_NONE);
|
||||
} else {
|
||||
// Jason
|
||||
/* Radish */
|
||||
row= uiLayoutRow(layout, 1);
|
||||
uiItemR(row, &meshptr, "use_paint_mask", UI_ITEM_R_ICON_ONLY, "", ICON_NONE);
|
||||
uiItemR(row, &meshptr, "use_paint_mask_vertex", UI_ITEM_R_ICON_ONLY, "", ICON_NONE);
|
||||
|
@ -54,7 +54,7 @@
|
||||
#include "BLI_linklist.h"
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
// Jason--vertex box select
|
||||
/* Radish--vertex box select */
|
||||
#include "IMB_imbuf_types.h"
|
||||
#include "IMB_imbuf.h"
|
||||
#include "BKE_global.h"
|
||||
@ -203,7 +203,7 @@ static void EM_backbuf_checkAndSelectFaces(EditMesh *em, int select)
|
||||
}
|
||||
}
|
||||
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
/* object mode, EM_ prefix is confusing here, rename? */
|
||||
static void EM_backbuf_checkAndSelectVerts_obmode(Mesh *me, int select)
|
||||
{
|
||||
@ -254,7 +254,7 @@ static int view3d_selectable_data(bContext *C)
|
||||
if (ob->mode & OB_MODE_SCULPT) {
|
||||
return 0;
|
||||
}
|
||||
if (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT) && !paint_facesel_test(ob) && !paint_vertsel_test(ob)) {//Jason
|
||||
if (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT) && !paint_facesel_test(ob) && !paint_vertsel_test(ob)) {//Radish
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -749,7 +749,7 @@ static void do_lasso_select_meta(ViewContext *vc, int mcords[][2], short moves,
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
int do_paintvert_box_select(ViewContext *vc, rcti *rect, int select, int extend)
|
||||
{
|
||||
Mesh *me;
|
||||
@ -809,7 +809,7 @@ int do_paintvert_box_select(ViewContext *vc, rcti *rect, int select, int extend)
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
static void do_lasso_select_paintvert(ViewContext *vc, int mcords[][2], short moves, short extend, short select)
|
||||
{
|
||||
Object *ob= vc->obact;
|
||||
@ -1943,7 +1943,7 @@ void VIEW3D_OT_select_border(wmOperatorType *ot)
|
||||
/* rna */
|
||||
WM_operator_properties_gesture_border(ot, TRUE);
|
||||
}
|
||||
/*Jason*/
|
||||
/* Radish */
|
||||
/* much like facesel_face_pick()*/
|
||||
/* returns 0 if not found, otherwise 1 */
|
||||
static int vertsel_vert_pick(struct bContext *C, Mesh *me, const int mval[2], unsigned int *index, short rect)
|
||||
@ -1973,7 +1973,7 @@ static int vertsel_vert_pick(struct bContext *C, Mesh *me, const int mval[2], un
|
||||
|
||||
return 1;
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
/* mouse selection in weight paint */
|
||||
/* gets called via generic mouse select operator */
|
||||
int mouse_wp_select(bContext *C, const int mval[2], short extend, Object *obact, Mesh* me)
|
||||
@ -2039,7 +2039,7 @@ static int view3d_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
|
||||
return PE_mouse_particles(C, event->mval, extend);
|
||||
else if(obact && paint_facesel_test(obact))
|
||||
retval = paintface_mouse_select(C, obact, event->mval, extend);
|
||||
/*Jason*/
|
||||
/* Radish */
|
||||
else if (paint_vertsel_test(obact)) {
|
||||
retval = mouse_wp_select(C, event->mval, extend, obact, obact->data);
|
||||
} else {
|
||||
@ -2168,7 +2168,7 @@ static void paint_facesel_circle_select(ViewContext *vc, int select, const int m
|
||||
}
|
||||
}
|
||||
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
static void paint_vertsel_circle_select(ViewContext *vc, int select, const int mval[2], float rad)
|
||||
{
|
||||
Object *ob= vc->obact;
|
||||
@ -2440,7 +2440,7 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op)
|
||||
int select;
|
||||
|
||||
select= (gesture_mode==GESTURE_MODAL_SELECT);
|
||||
// Jason
|
||||
/* Radish */
|
||||
if( CTX_data_edit_object(C) || paint_facesel_test(obact) || paint_vertsel_test(obact) ||
|
||||
(obact && (obact->mode & (OB_MODE_PARTICLE_EDIT|OB_MODE_POSE))) )
|
||||
{
|
||||
@ -2460,7 +2460,7 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op)
|
||||
else if(paint_facesel_test(obact)) {
|
||||
paint_facesel_circle_select(&vc, select, mval, (float)radius);
|
||||
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obact->data);
|
||||
}/* Jason */
|
||||
}/* Radish */
|
||||
else if(paint_vertsel_test(obact)) {
|
||||
paint_vertsel_circle_select(&vc, select, mval, (float)radius);
|
||||
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obact->data);
|
||||
|
@ -125,7 +125,7 @@ typedef struct TFace {
|
||||
|
||||
#define ME_EDIT_PAINT_MASK (1 << 3)
|
||||
#define ME_EDIT_MIRROR_TOPO (1 << 4)
|
||||
#define ME_EDIT_VERT_SEL (1 << 5)// Jason
|
||||
#define ME_EDIT_VERT_SEL (1 << 5)/* Radish */
|
||||
|
||||
/* me->flag */
|
||||
/* #define ME_ISDONE 1 */
|
||||
|
@ -62,7 +62,7 @@ struct bGPdata;
|
||||
typedef struct bDeformGroup {
|
||||
struct bDeformGroup *next, *prev;
|
||||
char name[32];
|
||||
/* Jason was here: need this flag for locking weights */
|
||||
/* Radish: need this flag for locking weights */
|
||||
char flag, pad[7];
|
||||
} bDeformGroup;
|
||||
#define MAX_VGROUP_NAME 32
|
||||
|
@ -763,7 +763,7 @@ typedef struct ToolSettings {
|
||||
|
||||
char auto_normalize; /*auto normalizing mode in wpaint*/
|
||||
|
||||
//Jason
|
||||
//Radish
|
||||
char multipaint; /* paint multiple bones in wpaint */
|
||||
|
||||
short sculpt_paint_settings; /* user preferences for sculpt and paint */
|
||||
|
@ -90,7 +90,7 @@ void rna_Mesh_update_draw(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA
|
||||
}
|
||||
}
|
||||
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
void rna_Mesh_update_vertmask(Main *bmain, Scene *scene, PointerRNA *ptr)
|
||||
{
|
||||
Mesh* me = ptr->data;
|
||||
@ -99,7 +99,7 @@ void rna_Mesh_update_vertmask(Main *bmain, Scene *scene, PointerRNA *ptr)
|
||||
}
|
||||
rna_Mesh_update_draw(bmain, scene, ptr);
|
||||
}
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
void rna_Mesh_update_facemask(Main *bmain, Scene *scene, PointerRNA *ptr)
|
||||
{
|
||||
Mesh* me = ptr->data;
|
||||
@ -2095,7 +2095,7 @@ static void rna_def_mesh(BlenderRNA *brna)
|
||||
RNA_def_property_ui_icon(prop, ICON_FACESEL_HLT, 0);
|
||||
RNA_def_property_update(prop, 0, "rna_Mesh_update_facemask");
|
||||
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
prop= RNA_def_property(srna, "use_paint_mask_vertex", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, NULL, "editflag", ME_EDIT_VERT_SEL);
|
||||
RNA_def_property_ui_text(prop, "Vertex Selection", "Vertex selection masking for painting (weight paint only)");
|
||||
|
@ -1265,7 +1265,7 @@ static void rna_def_vertex_group(BlenderRNA *brna)
|
||||
RNA_def_struct_name_property(srna, prop);
|
||||
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_VertexGroup_name_set");
|
||||
RNA_def_property_update(prop, NC_GEOM|ND_DATA|NA_RENAME, "rna_Object_internal_update_data"); /* update data because modifiers may use [#24761] */
|
||||
/* Jason was here */
|
||||
/* Radish */
|
||||
prop= RNA_def_property(srna, "lock_weight", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_ui_text(prop, "", "Maintain the relative weights for the group");
|
||||
RNA_def_property_boolean_sdna(prop, NULL, "flag", 0);
|
||||
|
@ -1044,7 +1044,7 @@ static KeyingSet *rna_Scene_keying_set_new(Scene *sce, ReportList *reports, cons
|
||||
}
|
||||
}
|
||||
|
||||
/* Jason */
|
||||
/* Radish */
|
||||
|
||||
/* note: without this, when Multi-Paint is activated/deactivated, the colors
|
||||
* will not change right away when multiple bones are selected, this function
|
||||
|
Loading…
Reference in New Issue
Block a user