2.5: Particle Edit, work in progress commit.
* Still incomplete and some operators don't work, refresh issues, etc. * Made Hide/Reveal operators consistent for various modes.
This commit is contained in:
@@ -192,7 +192,7 @@ void ED_keymap_armature(wmWindowManager *wm)
|
||||
|
||||
WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, 0, 0);
|
||||
kmi= WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
RNA_boolean_set(kmi->ptr, "invert", 1);
|
||||
RNA_boolean_set(kmi->ptr, "unselected", 1);
|
||||
WM_keymap_add_item(keymap, "POSE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
|
||||
/*clear pose*/
|
||||
WM_keymap_add_item(keymap, "POSE_OT_rot_clear", RKEY, KM_PRESS, KM_ALT, 0);
|
||||
|
||||
@@ -4703,7 +4703,7 @@ static int pose_hide_exec(bContext *C, wmOperator *op)
|
||||
Object *ob= CTX_data_active_object(C);
|
||||
bArmature *arm= ob->data;
|
||||
|
||||
if(RNA_boolean_get(op->ptr, "invert"))
|
||||
if(RNA_boolean_get(op->ptr, "unselected"))
|
||||
bone_looper(ob, arm->bonebase.first, NULL,
|
||||
hide_unselected_pose_bone);
|
||||
else
|
||||
@@ -4719,7 +4719,7 @@ static int pose_hide_exec(bContext *C, wmOperator *op)
|
||||
void POSE_OT_hide(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name= "Hide Selection";
|
||||
ot->name= "Hide Selected";
|
||||
ot->idname= "POSE_OT_hide";
|
||||
|
||||
/* api callbacks */
|
||||
@@ -4730,7 +4730,7 @@ void POSE_OT_hide(wmOperatorType *ot)
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
|
||||
/* props */
|
||||
RNA_def_boolean(ot->srna, "invert", 0, "Invert", "");
|
||||
RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "");
|
||||
}
|
||||
|
||||
static int show_pose_bone(Object *ob, Bone *bone, void *ptr)
|
||||
@@ -4764,7 +4764,7 @@ static int pose_reveal_exec(bContext *C, wmOperator *op)
|
||||
void POSE_OT_reveal(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name= "Reveil Selection";
|
||||
ot->name= "Reveal Selected";
|
||||
ot->idname= "POSE_OT_reveal";
|
||||
|
||||
/* api callbacks */
|
||||
@@ -4773,9 +4773,6 @@ void POSE_OT_reveal(wmOperatorType *ot)
|
||||
|
||||
/* flags */
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
|
||||
/* props */
|
||||
RNA_def_boolean(ot->srna, "invert", 0, "Invert", "");
|
||||
}
|
||||
|
||||
/* ************* RENAMING DISASTERS ************ */
|
||||
|
||||
@@ -128,7 +128,7 @@ void ED_armature_enter_posemode(bContext *C, Base *base)
|
||||
ob->flag |= OB_POSEMODE;
|
||||
base->flag= ob->flag;
|
||||
|
||||
WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_POSEMODE, NULL);
|
||||
WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_MODE_POSE, NULL);
|
||||
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -237,7 +237,7 @@ void ED_keymap_curve(wmWindowManager *wm)
|
||||
|
||||
WM_keymap_add_item(keymap, "CURVE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
|
||||
WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, KM_ALT|KM_CTRL, 0);
|
||||
RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, KM_ALT|KM_SHIFT, 0)->ptr, "deselected", 1);
|
||||
RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, KM_ALT|KM_SHIFT, 0)->ptr, "unselected", 1);
|
||||
|
||||
WM_keymap_add_item(keymap, "CURVE_OT_specials_menu", WKEY, KM_PRESS, 0, 0);
|
||||
}
|
||||
|
||||
@@ -1618,7 +1618,7 @@ static int hide_exec(bContext *C, wmOperator *op)
|
||||
Nurb *nu;
|
||||
BPoint *bp;
|
||||
BezTriple *bezt;
|
||||
int a, sel, invert= RNA_boolean_get(op->ptr, "deselected");
|
||||
int a, sel, invert= RNA_boolean_get(op->ptr, "unselected");
|
||||
|
||||
for(nu= editnurb->first; nu; nu= nu->next) {
|
||||
if((nu->type & 7)==CU_BEZIER) {
|
||||
@@ -1668,7 +1668,7 @@ static int hide_exec(bContext *C, wmOperator *op)
|
||||
void CURVE_OT_hide(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name= "Hide Selection";
|
||||
ot->name= "Hide Selected";
|
||||
ot->idname= "CURVE_OT_hide";
|
||||
|
||||
/* api callbacks */
|
||||
@@ -1679,7 +1679,7 @@ void CURVE_OT_hide(wmOperatorType *ot)
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
|
||||
/* props */
|
||||
RNA_def_boolean(ot->srna, "deselected", 0, "Deselected", "Hide deselected rather than selected.");
|
||||
RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected.");
|
||||
}
|
||||
|
||||
/********************** reveal operator *********************/
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
#ifndef ED_EDITPARTICLE_H
|
||||
#define ED_EDITPARTICLE_H
|
||||
#ifndef ED_PARTICLE_H
|
||||
#define ED_PARTICLE_H
|
||||
|
||||
struct Object;
|
||||
struct ParticleSystem;
|
||||
@@ -36,18 +36,19 @@ struct ParticleEditSettings;
|
||||
struct RadialControl;
|
||||
struct ViewContext;
|
||||
struct rcti;
|
||||
struct wmWindowManager;
|
||||
|
||||
/* particle edit mode */
|
||||
void PE_set_particle_edit(struct Scene *scene);
|
||||
void PE_create_particle_edit(struct Object *ob, struct ParticleSystem *psys);
|
||||
void PE_create_particle_edit(struct Scene *scene, struct Object *ob, struct ParticleSystem *psys);
|
||||
void PE_free_particle_edit(struct ParticleSystem *psys);
|
||||
|
||||
void PE_change_act(void *ob_v, void *act_v);
|
||||
void PE_change_act_psys(struct Object *ob, struct ParticleSystem *psys);
|
||||
void PE_change_act_psys(struct Scene *scene, struct Object *ob, struct ParticleSystem *psys);
|
||||
int PE_can_edit(struct ParticleSystem *psys);
|
||||
|
||||
/* access */
|
||||
struct ParticleSystem *PE_get_current(struct Object *ob);
|
||||
struct ParticleSystem *PE_get_current(struct Scene *scene, struct Object *ob);
|
||||
short PE_get_current_num(struct Object *ob);
|
||||
int PE_minmax(struct Scene *scene, float *min, float *max);
|
||||
void PE_get_colors(char sel[4], char nosel[4]);
|
||||
@@ -69,18 +70,16 @@ void PE_select_less(void);
|
||||
void PE_select_more(void);
|
||||
|
||||
void PE_mouse_particles(void);
|
||||
void PE_borderselect(struct ViewContext *vc, struct rcti *rect, int select);
|
||||
void PE_selectionCB(short selecting, struct Object *editobj, short *mval, float rad);
|
||||
void PE_do_lasso_select(struct ViewContext *, short mcords[][2], short moves, short select);
|
||||
void PE_border_select(struct ViewContext *vc, struct rcti *rect, int select);
|
||||
void PE_circle_select(struct ViewContext *vc, int selecting, short *mval, float rad);
|
||||
void PE_lasso_select(struct ViewContext *vc, short mcords[][2], short moves, short select);
|
||||
|
||||
/* tools */
|
||||
void PE_hide(int mode);
|
||||
void PE_rekey(void);
|
||||
void PE_subdivide(Object *ob);
|
||||
int PE_brush_particles(void);
|
||||
void PE_delete_particle(void);
|
||||
void PE_remove_doubles(void);
|
||||
void PE_mirror_x(Scene *scene, int tagged);
|
||||
void PE_selectbrush_menu(Scene *scene);
|
||||
void PE_remove_doubles(void);
|
||||
void PE_radialcontrol_start(const int mode);
|
||||
@@ -90,7 +89,11 @@ void PE_undo_push(Scene *scene, char *str);
|
||||
void PE_undo_step(Scene *scene, int step);
|
||||
void PE_undo(Scene *scene);
|
||||
void PE_redo(Scene *scene);
|
||||
void PE_undo_menu(Scene *scene);
|
||||
void PE_undo_menu(Scene *scene, Object *ob);
|
||||
|
||||
#endif /* ED_EDITPARTICLE_H */
|
||||
/* operators */
|
||||
void ED_operatortypes_particle(void);
|
||||
void ED_keymap_particle(struct wmWindowManager *wm);
|
||||
|
||||
#endif /* ED_PARTICLE_H */
|
||||
|
||||
@@ -33,6 +33,7 @@ struct ARegion;
|
||||
struct View3D;
|
||||
struct RegionView3D;
|
||||
struct ViewContext;
|
||||
struct bglMats;
|
||||
struct BPoint;
|
||||
struct Nurb;
|
||||
struct BezTriple;
|
||||
@@ -122,6 +123,7 @@ void view3d_set_viewcontext(struct bContext *C, struct ViewContext *vc);
|
||||
void view3d_operator_needs_opengl(const struct bContext *C);
|
||||
void view3d_get_view_aligned_coordinate(struct ViewContext *vc, float *fp, short mval[2]);
|
||||
void view3d_get_object_project_mat(struct RegionView3D *v3d, struct Object *ob, float pmat[4][4], float vmat[4][4]);;
|
||||
void view3d_get_transformation(struct ViewContext *vc, struct Object *ob, struct bglMats *mats);
|
||||
|
||||
/* XXX should move to arithb.c */
|
||||
int edge_inside_circle(short centx, short centy, short rad, short x1, short y1, short x2, short y2);
|
||||
|
||||
@@ -2631,7 +2631,7 @@ static int hide_mesh_exec(bContext *C, wmOperator *op)
|
||||
Object *obedit= CTX_data_edit_object(C);
|
||||
EditMesh *em= ((Mesh *)obedit->data)->edit_mesh;
|
||||
|
||||
EM_hide_mesh(em, RNA_boolean_get(op->ptr, "invert"));
|
||||
EM_hide_mesh(em, RNA_boolean_get(op->ptr, "unselected"));
|
||||
|
||||
WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit);
|
||||
return OPERATOR_FINISHED;
|
||||
@@ -2651,7 +2651,7 @@ void MESH_OT_hide(wmOperatorType *ot)
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
|
||||
/* props */
|
||||
RNA_def_boolean(ot->srna, "invert", 0, "Invert", "Hide unselected rather than selected.");
|
||||
RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected.");
|
||||
}
|
||||
|
||||
void EM_reveal_mesh(EditMesh *em)
|
||||
|
||||
@@ -234,7 +234,7 @@ void ED_keymap_mesh(wmWindowManager *wm)
|
||||
|
||||
/* hide */
|
||||
WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, 0, 0);
|
||||
RNA_boolean_set(WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "invert", 1);
|
||||
RNA_boolean_set(WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "unselected", 1);
|
||||
WM_keymap_add_item(keymap, "MESH_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
|
||||
|
||||
/* tools */
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
#include "ED_anim_api.h"
|
||||
#include "ED_armature.h"
|
||||
#include "ED_curve.h"
|
||||
#include "ED_editparticle.h"
|
||||
#include "ED_particle.h"
|
||||
#include "ED_mesh.h"
|
||||
#include "ED_object.h"
|
||||
#include "ED_screen.h"
|
||||
@@ -6366,15 +6366,8 @@ void texspace_edit(Scene *scene, View3D *v3d)
|
||||
|
||||
void mirrormenu(void)
|
||||
{
|
||||
Scene *scene= NULL; // XXX
|
||||
|
||||
if(G.f & G_PARTICLEEDIT) {
|
||||
PE_mirror_x(scene, 0);
|
||||
}
|
||||
else {
|
||||
// XXX initTransform(TFM_MIRROR, CTX_NO_PET);
|
||||
// XXX Transform();
|
||||
}
|
||||
}
|
||||
|
||||
void hookmenu(Scene *scene, View3D *v3d)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1300,26 +1300,6 @@ static void SCULPT_OT_radial_control(wmOperatorType *ot)
|
||||
/**** Operator for applying a stroke (various attributes including mouse path)
|
||||
using the current brush. ****/
|
||||
|
||||
static void sculpt_load_mats(bglMats *mats, ViewContext *vc)
|
||||
{
|
||||
float cpy[4][4];
|
||||
int i, j;
|
||||
|
||||
Mat4MulMat4(cpy, vc->rv3d->viewmat, vc->obact->obmat);
|
||||
|
||||
for(i = 0; i < 4; ++i) {
|
||||
for(j = 0; j < 4; ++j) {
|
||||
mats->projection[i*4+j] = vc->rv3d->winmat[i][j];
|
||||
mats->modelview[i*4+j] = cpy[i][j];
|
||||
}
|
||||
}
|
||||
|
||||
mats->viewport[0] = vc->ar->winrct.xmin;
|
||||
mats->viewport[1] = vc->ar->winrct.ymin;
|
||||
mats->viewport[2] = vc->ar->winx;
|
||||
mats->viewport[3] = vc->ar->winy;
|
||||
}
|
||||
|
||||
static float unproject_brush_radius(SculptSession *ss, float offset)
|
||||
{
|
||||
float brush_edge[3];
|
||||
@@ -1363,7 +1343,7 @@ static void sculpt_update_cache_invariants(Sculpt *sd, bContext *C, wmOperator *
|
||||
view3d_set_viewcontext(C, &cache->vc);
|
||||
|
||||
cache->mats = MEM_callocN(sizeof(bglMats), "sculpt bglMats");
|
||||
sculpt_load_mats(cache->mats, &cache->vc);
|
||||
view3d_get_transformation(&cache->vc, cache->vc.obact, cache->mats);
|
||||
|
||||
sculpt_update_mesh_elements(C);
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "ED_mesh.h"
|
||||
#include "ED_markers.h"
|
||||
#include "ED_object.h"
|
||||
#include "ED_particle.h"
|
||||
#include "ED_sculpt.h"
|
||||
#include "ED_screen.h"
|
||||
#include "ED_space_api.h"
|
||||
@@ -83,6 +84,7 @@ void ED_spacetypes_init(void)
|
||||
ED_operatortypes_sculpt();
|
||||
ED_operatortypes_uvedit();
|
||||
ED_operatortypes_paint();
|
||||
ED_operatortypes_particle();
|
||||
ED_operatortypes_curve();
|
||||
ED_operatortypes_armature();
|
||||
ED_marker_operatortypes();
|
||||
@@ -111,6 +113,7 @@ void ED_spacetypes_keymap(wmWindowManager *wm)
|
||||
ED_keymap_uvedit(wm);
|
||||
ED_keymap_curve(wm);
|
||||
ED_keymap_armature(wm);
|
||||
ED_keymap_particle(wm);
|
||||
ED_marker_keymap(wm);
|
||||
|
||||
UI_view2d_keymap(wm);
|
||||
|
||||
@@ -261,9 +261,9 @@ static void image_imagemenu(bContext *C, uiMenuItem *head, void *arg_unused)
|
||||
|
||||
static void image_uvs_showhidemenu(bContext *C, uiMenuItem *head, void *arg_unused)
|
||||
{
|
||||
uiMenuItemO(head, 0, "UV_OT_show_hidden");
|
||||
uiMenuItemO(head, 0, "UV_OT_hide_selected");
|
||||
uiMenuItemO(head, 0, "UV_OT_hide_deselected");
|
||||
uiMenuItemO(head, 0, "UV_OT_reveal");
|
||||
uiMenuItemO(head, 0, "UV_OT_hide");
|
||||
uiMenuItemBooleanO(head, "Hide Unselected", 0, "UV_OT_hide", "unselected", 1);
|
||||
}
|
||||
|
||||
static void image_uvs_transformmenu(bContext *C, uiMenuItem *head, void *arg_unused)
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
#include "GPU_material.h"
|
||||
#include "GPU_extensions.h"
|
||||
|
||||
#include "ED_editparticle.h"
|
||||
#include "ED_particle.h"
|
||||
#include "ED_mesh.h"
|
||||
#include "ED_types.h"
|
||||
#include "ED_util.h"
|
||||
@@ -5086,7 +5086,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
|
||||
draw_new_particle_system(scene, v3d, rv3d, base, psys, dt);
|
||||
|
||||
if(G.f & G_PARTICLEEDIT && ob==OBACT) {
|
||||
psys= PE_get_current(ob);
|
||||
psys= PE_get_current(scene, ob);
|
||||
if(psys && !scene->obedit && psys_in_edit_mode(scene, psys))
|
||||
draw_particle_edit(scene, v3d, rv3d, ob, psys, dt);
|
||||
}
|
||||
|
||||
@@ -240,7 +240,13 @@ static void view3d_modal_keymaps(wmWindowManager *wm, ARegion *ar, int stype)
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
else
|
||||
WM_event_remove_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
|
||||
keymap= WM_keymap_listbase(wm, "Particle", 0, 0);
|
||||
if(stype==NS_MODE_PARTICLE)
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
else
|
||||
WM_event_remove_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
/* editfont keymap swallows all... */
|
||||
keymap= WM_keymap_listbase(wm, "Font", 0, 0);
|
||||
if(stype==NS_EDITMODE_TEXT)
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
|
||||
#include "ED_armature.h"
|
||||
#include "ED_curve.h"
|
||||
#include "ED_editparticle.h"
|
||||
#include "ED_particle.h"
|
||||
#include "ED_keyframing.h"
|
||||
#include "ED_mesh.h"
|
||||
#include "ED_object.h"
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
#include "RNA_access.h"
|
||||
#include "RNA_define.h"
|
||||
|
||||
#include "ED_editparticle.h"
|
||||
#include "ED_particle.h"
|
||||
#include "ED_space_api.h"
|
||||
#include "ED_screen.h"
|
||||
#include "ED_types.h"
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
#include "BKE_utildefines.h" /* for VECCOPY */
|
||||
|
||||
#include "ED_armature.h"
|
||||
#include "ED_editparticle.h"
|
||||
#include "ED_particle.h"
|
||||
#include "ED_object.h"
|
||||
#include "ED_mesh.h"
|
||||
#include "ED_util.h"
|
||||
@@ -149,9 +149,8 @@ void ED_view3d_exit_paint_modes(bContext *C)
|
||||
|
||||
if(G.f & G_SCULPTMODE)
|
||||
WM_operator_name_call(C, "SCULPT_OT_sculptmode_toggle", WM_OP_EXEC_REGION_WIN, NULL);
|
||||
|
||||
// if(G.f & G_TEXTUREPAINT) set_texturepaint();
|
||||
if(G.f & G_PARTICLEEDIT) PE_set_particle_edit(CTX_data_scene(C));
|
||||
if(G.f & G_PARTICLEEDIT)
|
||||
WM_operator_name_call(C, "PARTICLE_OT_particle_edit_toggle", WM_OP_EXEC_REGION_WIN, NULL);
|
||||
|
||||
G.f &= ~(G_VERTEXPAINT+G_TEXTUREPAINT+G_WEIGHTPAINT+G_SCULPTMODE+G_PARTICLEEDIT);
|
||||
}
|
||||
@@ -2487,7 +2486,7 @@ static uiBlock *view3d_edit_object_showhidemenu(bContext *C, ARegion *ar, void *
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden|Alt H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Unselected|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
@@ -3104,7 +3103,7 @@ static uiBlock *view3d_edit_mesh_showhidemenu(bContext *C, ARegion *ar, void *ar
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden|Alt H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Unselected|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
@@ -3322,7 +3321,7 @@ static void view3d_edit_curve_showhidemenu(bContext *C, uiMenuItem *head, void *
|
||||
{
|
||||
uiMenuItemO(head, 0, "CURVE_OT_reveal");
|
||||
uiMenuItemO(head, 0, "CURVE_OT_hide");
|
||||
uiMenuItemBooleanO(head, "Hide Deselected", 0, "CURVE_OT_hide", "deselected", 1);
|
||||
uiMenuItemBooleanO(head, "Hide Unselected", 0, "CURVE_OT_hide", "unselected", 1);
|
||||
}
|
||||
|
||||
static void view3d_edit_curvemenu(bContext *C, uiMenuItem *head, void *arg_unused)
|
||||
@@ -3379,7 +3378,7 @@ static void do_view3d_edit_mball_showhidemenu(bContext *C, void *arg, int event)
|
||||
case 11: /* hide selected control points */
|
||||
hide_mball(0);
|
||||
break;
|
||||
case 12: /* hide deselected control points */
|
||||
case 12: /* hide selected control points */
|
||||
hide_mball(1);
|
||||
break;
|
||||
}
|
||||
@@ -3396,7 +3395,7 @@ static uiBlock *view3d_edit_mball_showhidemenu(bContext *C, ARegion *ar, void *a
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden|Alt H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Unselected|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
@@ -3934,7 +3933,7 @@ static uiBlock *view3d_pose_armature_showhidemenu(bContext *C, ARegion *ar, void
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden|Alt H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Unselected|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
@@ -4638,7 +4637,7 @@ static uiBlock *view3d_facesel_showhidemenu(bContext *C, ARegion *ar, void *arg_
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden Faces|Alt H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected Faces|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected Faces|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Unselected Faces|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
@@ -4693,195 +4692,61 @@ static uiBlock *view3d_faceselmenu(bContext *C, ARegion *ar, void *arg_unused)
|
||||
return block;
|
||||
}
|
||||
|
||||
void do_view3d_select_particlemenu(bContext *C, void *arg, int event)
|
||||
{
|
||||
|
||||
/* events >= 6 are registered bpython scripts */
|
||||
#ifndef DISABLE_PYTHON
|
||||
// XXX if (event >= 6) BPY_menu_do_python(PYMENU_FACESELECT, event - 6);
|
||||
#endif
|
||||
switch(event) {
|
||||
case 0:
|
||||
// XXX PE_borderselect();
|
||||
break;
|
||||
case 1:
|
||||
PE_deselectall();
|
||||
break;
|
||||
case 2:
|
||||
PE_select_root();
|
||||
break;
|
||||
case 3:
|
||||
PE_select_tip();
|
||||
break;
|
||||
case 4:
|
||||
PE_select_more();
|
||||
break;
|
||||
case 5:
|
||||
PE_select_less();
|
||||
break;
|
||||
case 7:
|
||||
PE_select_linked();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static uiBlock *view3d_select_particlemenu(bContext *C, ARegion *ar, void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiBeginBlock(C, ar, "view3d_select_particlemenu", UI_EMBOSSP, UI_HELV);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_particlemenu, NULL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B",
|
||||
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "",
|
||||
0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A",
|
||||
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select Linked|L",
|
||||
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select Last|W, 4",
|
||||
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select First|W, 3",
|
||||
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "",
|
||||
0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "More|Ctrl NumPad +",
|
||||
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Less|Ctrl NumPad -",
|
||||
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
|
||||
|
||||
if(ar->alignment==RGN_ALIGN_TOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
void do_view3d_particle_showhidemenu(bContext *C, void *arg, int event)
|
||||
{
|
||||
|
||||
switch(event) {
|
||||
case 1: /* show hidden */
|
||||
PE_hide(0);
|
||||
break;
|
||||
case 2: /* hide selected */
|
||||
PE_hide(2);
|
||||
break;
|
||||
case 3: /* hide deselected */
|
||||
PE_hide(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static uiBlock *view3d_particle_showhidemenu(bContext *C, ARegion *ar, void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
block= uiBeginBlock(C, ar, "view3d_particle_showhidemenu", UI_EMBOSSP, UI_HELV);
|
||||
uiBlockSetButmFunc(block, do_view3d_particle_showhidemenu, NULL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden|Alt H",
|
||||
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected|H",
|
||||
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected|Shift H",
|
||||
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
void do_view3d_particlemenu(bContext *C, void *arg, int event)
|
||||
{
|
||||
#if 0
|
||||
Scene *scene= CTX_data_scene(C);
|
||||
ScrArea *sa= CTX_wm_area(C);
|
||||
View3D *v3d= sa->spacedata.first;
|
||||
ParticleEditSettings *pset= PE_settings();
|
||||
|
||||
switch(event) {
|
||||
case 1:
|
||||
add_blockhandler(sa, VIEW3D_HANDLER_OBJECT, UI_PNL_UNSTOW);
|
||||
break;
|
||||
case 2:
|
||||
if(button(&pset->totrekey, 2, 100, "Number of Keys:")==0) return;
|
||||
PE_rekey();
|
||||
break;
|
||||
case 3:
|
||||
PE_subdivide();
|
||||
break;
|
||||
case 4:
|
||||
PE_delete_particle();
|
||||
break;
|
||||
case 5:
|
||||
PE_mirror_x(0);
|
||||
break;
|
||||
case 6:
|
||||
pset->flag ^= PE_X_MIRROR;
|
||||
break;
|
||||
case 7:
|
||||
PE_remove_doubles();
|
||||
break;
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
uiBlock *view3d_particlemenu(bContext *C, ARegion *ar, void *arg_unused)
|
||||
static void view3d_select_particlemenu(bContext *C, uiMenuItem *head, void *arg_unused)
|
||||
{
|
||||
Scene *scene= CTX_data_scene(C);
|
||||
uiBlock *block;
|
||||
ParticleEditSettings *pset= PE_settings(scene);
|
||||
short yco= 0, menuwidth= 120;
|
||||
|
||||
block= uiBeginBlock(C, ar, "view3d_particlemenu", UI_EMBOSSP, UI_HELV);
|
||||
uiBlockSetButmFunc(block, do_view3d_particlemenu, NULL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "Particle Edit Properties|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiMenuItemO(head, 0, "VIEW3D_OT_borderselect");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, (pset->flag & PE_X_MIRROR)? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT, "X-Axis Mirror Editing", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Mirror|Ctrl M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiMenuSeparator(head);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Remove Doubles|W, 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete...|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_de_select_all");
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_select_linked");
|
||||
|
||||
if(scene->selectmode & SCE_SELECT_POINT) {
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_select_last"); // |W, 4
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_select_first"); // |W, 3
|
||||
}
|
||||
|
||||
uiMenuSeparator(head);
|
||||
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_select_more");
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_select_less");
|
||||
}
|
||||
|
||||
static void view3d_particle_showhidemenu(bContext *C, uiMenuItem *head, void *arg_unused)
|
||||
{
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_reveal");
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_hide");
|
||||
uiMenuItemBooleanO(head, "Hide Unselected", 0, "PARTICLE_OT_hide", "unselected", 1);
|
||||
}
|
||||
|
||||
static void view3d_particlemenu(bContext *C, uiMenuItem *head, void *arg_unused)
|
||||
{
|
||||
Scene *scene= CTX_data_scene(C);
|
||||
|
||||
// XXX uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "Particle Edit Properties|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
// add_blockhandler(sa, VIEW3D_HANDLER_OBJECT, UI_PNL_UNSTOW);
|
||||
// XXX uiMenuSeparator(head);
|
||||
//
|
||||
// XXX uiDefIconTextBut(block, BUTM, 1, (pset->flag & PE_X_MIRROR)? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT, "X-Axis Mirror Editing", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
// pset->flag ^= PE_X_MIRROR;
|
||||
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_mirror"); // |Ctrl M
|
||||
|
||||
uiMenuSeparator(head);
|
||||
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_remove_doubles"); // |W, 5
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_delete");
|
||||
if(scene->selectmode & SCE_SELECT_POINT)
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subdivide|W, 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Rekey|W, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_subdivide"); // |W, 2
|
||||
uiMenuItemO(head, 0, "PARTICLE_OT_rekey"); // |W, 1
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_particle_showhidemenu, NULL, ICON_RIGHTARROW_THIN, "Show/Hide Particles", 0, yco-=20, menuwidth, 19, "");
|
||||
uiMenuSeparator(head);
|
||||
|
||||
if(ar->alignment==RGN_ALIGN_TOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
|
||||
return block;
|
||||
uiMenuLevel(head, "Show/Hide Particles", view3d_particle_showhidemenu);
|
||||
}
|
||||
|
||||
|
||||
static char *view3d_modeselect_pup(Scene *scene)
|
||||
{
|
||||
Object *ob= OBACT;
|
||||
@@ -5127,7 +4992,7 @@ static void do_view3d_header_buttons(bContext *C, void *arg, int event)
|
||||
ED_view3d_exit_paint_modes(C);
|
||||
if(obedit) ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR); /* exit editmode and undo */
|
||||
|
||||
PE_set_particle_edit(scene);
|
||||
WM_operator_name_call(C, "PARTICLE_OT_particle_edit_toggle", WM_OP_EXEC_REGION_WIN, NULL);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -5295,7 +5160,7 @@ static void view3d_header_pulldowns(const bContext *C, uiBlock *block, Object *o
|
||||
} else if ((G.f & G_VERTEXPAINT) || (G.f & G_TEXTUREPAINT) || (G.f & G_WEIGHTPAINT)) {
|
||||
uiDefBut(block, LABEL,0,"", xco, 0, xmax, 20, 0, 0, 0, 0, 0, "");
|
||||
} else if (G.f & G_PARTICLEEDIT) {
|
||||
uiDefPulldownBut(block, view3d_select_particlemenu, NULL, "Select", xco,yco-2, xmax-3, 24, "");
|
||||
uiDefMenuBut(block, view3d_select_particlemenu, NULL, "Select", xco,yco-2, xmax-3, 24, "");
|
||||
} else {
|
||||
|
||||
if (ob && (ob->flag & OB_POSEMODE))
|
||||
@@ -5366,7 +5231,7 @@ static void view3d_header_pulldowns(const bContext *C, uiBlock *block, Object *o
|
||||
}
|
||||
else if(G.f & G_PARTICLEEDIT) {
|
||||
xmax= GetButStringLength("Particle");
|
||||
uiDefPulldownBut(block, view3d_particlemenu, NULL, "Particle", xco,yco-2, xmax-3, 24, "");
|
||||
uiDefMenuBut(block, view3d_particlemenu, NULL, "Particle", xco,yco-2, xmax-3, 24, "");
|
||||
xco+= xmax;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
|
||||
#include "ED_armature.h"
|
||||
#include "ED_curve.h"
|
||||
#include "ED_editparticle.h"
|
||||
#include "ED_particle.h"
|
||||
#include "ED_mesh.h"
|
||||
#include "ED_object.h"
|
||||
#include "ED_screen.h"
|
||||
@@ -121,6 +121,26 @@ void view3d_get_view_aligned_coordinate(ViewContext *vc, float *fp, short mval[2
|
||||
}
|
||||
}
|
||||
|
||||
void view3d_get_transformation(ViewContext *vc, Object *ob, bglMats *mats)
|
||||
{
|
||||
float cpy[4][4];
|
||||
int i, j;
|
||||
|
||||
Mat4MulMat4(cpy, vc->rv3d->viewmat, ob->obmat);
|
||||
|
||||
for(i = 0; i < 4; ++i) {
|
||||
for(j = 0; j < 4; ++j) {
|
||||
mats->projection[i*4+j] = vc->rv3d->winmat[i][j];
|
||||
mats->modelview[i*4+j] = cpy[i][j];
|
||||
}
|
||||
}
|
||||
|
||||
mats->viewport[0] = vc->ar->winrct.xmin;
|
||||
mats->viewport[1] = vc->ar->winrct.ymin;
|
||||
mats->viewport[2] = vc->ar->winx;
|
||||
mats->viewport[3] = vc->ar->winy;
|
||||
}
|
||||
|
||||
/* ********************** view3d_select: selection manipulations ********************* */
|
||||
|
||||
/* XXX to solve *************** */
|
||||
@@ -677,7 +697,7 @@ void view3d_lasso_select(ViewContext *vc, short mcords[][2], short moves, short
|
||||
else if(G.f & (G_VERTEXPAINT|G_TEXTUREPAINT|G_WEIGHTPAINT))
|
||||
;
|
||||
else if(G.f & G_PARTICLEEDIT)
|
||||
PE_do_lasso_select(vc, mcords, moves, select);
|
||||
PE_lasso_select(vc, mcords, moves, select);
|
||||
else
|
||||
do_lasso_select_objects(vc, mcords, moves, select);
|
||||
}
|
||||
@@ -1329,7 +1349,7 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op)
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
else if(obedit==NULL && (G.f & G_PARTICLEEDIT)) {
|
||||
PE_borderselect(&vc, &rect, (val==LEFTMOUSE));
|
||||
PE_border_select(&vc, &rect, (val==LEFTMOUSE));
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
@@ -1765,7 +1785,7 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op)
|
||||
int y= RNA_int_get(op->ptr, "y");
|
||||
int radius= RNA_int_get(op->ptr, "radius");
|
||||
|
||||
if(CTX_data_edit_object(C)) {
|
||||
if(CTX_data_edit_object(C) || (G.f & G_PARTICLEEDIT)) {
|
||||
ViewContext vc;
|
||||
short mval[2], selecting;
|
||||
|
||||
@@ -1775,7 +1795,11 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op)
|
||||
mval[0]= x;
|
||||
mval[1]= y;
|
||||
selecting= LEFTMOUSE==RNA_int_get(op->ptr, "event_type"); // XXX solve
|
||||
obedit_circle_select(&vc, selecting, mval, (float)radius);
|
||||
|
||||
if(CTX_data_edit_object(C))
|
||||
obedit_circle_select(&vc, selecting, mval, (float)radius);
|
||||
else
|
||||
PE_circle_select(&vc, selecting, mval, (float)radius);
|
||||
}
|
||||
else {
|
||||
Base *base;
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
|
||||
#include "ED_anim_api.h"
|
||||
#include "ED_armature.h"
|
||||
#include "ED_editparticle.h"
|
||||
#include "ED_particle.h"
|
||||
#include "ED_image.h"
|
||||
#include "ED_keyframing.h"
|
||||
#include "ED_keyframes_edit.h"
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
#include "BKE_utildefines.h"
|
||||
|
||||
#include "ED_armature.h"
|
||||
#include "ED_editparticle.h"
|
||||
#include "ED_particle.h"
|
||||
#include "ED_curve.h"
|
||||
#include "ED_mesh.h"
|
||||
#include "ED_object.h"
|
||||
@@ -191,7 +191,7 @@ void ED_undo_menu(bContext *C)
|
||||
}
|
||||
else {
|
||||
if(G.f & G_PARTICLEEDIT)
|
||||
PE_undo_menu(CTX_data_scene(C));
|
||||
PE_undo_menu(CTX_data_scene(C), CTX_data_active_object(C));
|
||||
else if(U.uiflag & USER_GLOBALUNDO) {
|
||||
char *menu= BKE_undo_menu_string();
|
||||
if(menu) {
|
||||
|
||||
@@ -2513,7 +2513,7 @@ void UV_OT_snap_selection(wmOperatorType *ot)
|
||||
static EnumPropertyItem target_items[] = {
|
||||
{0, "PIXELS", "Pixels", ""},
|
||||
{1, "CURSOR", "Cursor", ""},
|
||||
{2, "ADJACENT_DESELECTED", "Adjacent Deselected", ""},
|
||||
{2, "ADJACENT_UNSELECTED", "Adjacent Unselected", ""},
|
||||
{0, NULL, NULL, NULL}};
|
||||
|
||||
/* identifiers */
|
||||
@@ -2633,7 +2633,7 @@ static int hide_exec(bContext *C, wmOperator *op)
|
||||
EditMesh *em= ((Mesh*)obedit->data)->edit_mesh;
|
||||
EditFace *efa;
|
||||
MTFace *tf;
|
||||
int swap= (strcmp(op->idname, "UV_OT_hide_deselected") == 0);
|
||||
int swap= RNA_boolean_get(op->ptr, "unselected");
|
||||
|
||||
if(scene->toolsettings->uv_flag & UV_SYNC_SELECTION) {
|
||||
EM_hide_mesh(em, swap);
|
||||
@@ -2748,33 +2748,24 @@ static int hide_exec(bContext *C, wmOperator *op)
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
void UV_OT_hide_selected(wmOperatorType *ot)
|
||||
void UV_OT_hide(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name= "Hide Selected";
|
||||
ot->idname= "UV_OT_hide_selected";
|
||||
ot->idname= "UV_OT_hide";
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec= hide_exec;
|
||||
ot->poll= ED_operator_uvedit;
|
||||
|
||||
/* props */
|
||||
RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected.");
|
||||
}
|
||||
|
||||
void UV_OT_hide_deselected(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name= "Hide Deselected";
|
||||
ot->idname= "UV_OT_hide_deselected";
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec= hide_exec;
|
||||
ot->poll= ED_operator_uvedit;
|
||||
}
|
||||
/****************** reveal operator ******************/
|
||||
|
||||
/****************** show hidden operator ******************/
|
||||
|
||||
static int show_hidden_exec(bContext *C, wmOperator *op)
|
||||
static int reveal_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
SpaceImage *sima= (SpaceImage*)CTX_wm_space_data(C);
|
||||
Scene *scene= CTX_data_scene(C);
|
||||
@@ -2885,22 +2876,21 @@ static int show_hidden_exec(bContext *C, wmOperator *op)
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
void UV_OT_show_hidden(wmOperatorType *ot)
|
||||
void UV_OT_reveal(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name= "Show Hidden";
|
||||
ot->idname= "UV_OT_show_hidden";
|
||||
ot->name= "Reveal Hidden";
|
||||
ot->idname= "UV_OT_reveal";
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec= show_hidden_exec;
|
||||
ot->exec= reveal_exec;
|
||||
ot->poll= ED_operator_uvedit;
|
||||
}
|
||||
|
||||
|
||||
/******************** set 3d cursor operator ********************/
|
||||
|
||||
static int set_3d_cursor_exec(bContext *C, wmOperator *op)
|
||||
static int set_2d_cursor_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
ARegion *ar= CTX_wm_region(C);
|
||||
float location[2];
|
||||
@@ -2914,7 +2904,7 @@ static int set_3d_cursor_exec(bContext *C, wmOperator *op)
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
static int set_3d_cursor_invoke(bContext *C, wmOperator *op, wmEvent *event)
|
||||
static int set_2d_cursor_invoke(bContext *C, wmOperator *op, wmEvent *event)
|
||||
{
|
||||
ARegion *ar= CTX_wm_region(C);
|
||||
int x, y;
|
||||
@@ -2925,18 +2915,18 @@ static int set_3d_cursor_invoke(bContext *C, wmOperator *op, wmEvent *event)
|
||||
UI_view2d_region_to_view(&ar->v2d, x, y, &location[0], &location[1]);
|
||||
RNA_float_set_array(op->ptr, "location", location);
|
||||
|
||||
return set_3d_cursor_exec(C, op);
|
||||
return set_2d_cursor_exec(C, op);
|
||||
}
|
||||
|
||||
void UV_OT_set_3d_cursor(wmOperatorType *ot)
|
||||
void UV_OT_set_2d_cursor(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name= "Set 3D Cursor";
|
||||
ot->idname= "UV_OT_set_3d_cursor";
|
||||
ot->idname= "UV_OT_set_2d_cursor";
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec= set_3d_cursor_exec;
|
||||
ot->invoke= set_3d_cursor_invoke;
|
||||
ot->exec= set_2d_cursor_exec;
|
||||
ot->invoke= set_2d_cursor_invoke;
|
||||
ot->poll= ED_operator_uvedit;
|
||||
|
||||
/* flags */
|
||||
@@ -3045,11 +3035,10 @@ void ED_operatortypes_uvedit(void)
|
||||
WM_operatortype_append(UV_OT_sphere_project);
|
||||
WM_operatortype_append(UV_OT_unwrap);
|
||||
|
||||
WM_operatortype_append(UV_OT_show_hidden);
|
||||
WM_operatortype_append(UV_OT_hide_selected);
|
||||
WM_operatortype_append(UV_OT_hide_deselected);
|
||||
WM_operatortype_append(UV_OT_reveal);
|
||||
WM_operatortype_append(UV_OT_hide);
|
||||
|
||||
WM_operatortype_append(UV_OT_set_3d_cursor);
|
||||
WM_operatortype_append(UV_OT_set_2d_cursor);
|
||||
WM_operatortype_append(UV_OT_set_tile);
|
||||
}
|
||||
|
||||
@@ -3087,12 +3076,12 @@ void ED_keymap_uvedit(wmWindowManager *wm)
|
||||
WM_keymap_add_item(keymap, "UV_OT_average_islands_scale", AKEY, KM_PRESS, KM_CTRL, 0);
|
||||
|
||||
/* hide */
|
||||
WM_keymap_add_item(keymap, "UV_OT_hide_selected", HKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "UV_OT_hide_deselected", HKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
WM_keymap_add_item(keymap, "UV_OT_show_hidden", HKEY, KM_PRESS, KM_ALT, 0);
|
||||
WM_keymap_add_item(keymap, "UV_OT_hide", HKEY, KM_PRESS, 0, 0);
|
||||
RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "unselected", 1);
|
||||
WM_keymap_add_item(keymap, "UV_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
|
||||
|
||||
/* cursor */
|
||||
WM_keymap_add_item(keymap, "UV_OT_set_3d_cursor", ACTIONMOUSE, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "UV_OT_set_2d_cursor", ACTIONMOUSE, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "UV_OT_set_tile", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
|
||||
|
||||
transform_keymap_for_space(wm, keymap, SPACE_IMAGE);
|
||||
|
||||
@@ -218,7 +218,8 @@ typedef struct wmNotifier {
|
||||
#define NS_EDITMODE_MBALL (6<<8)
|
||||
#define NS_EDITMODE_LATTICE (7<<8)
|
||||
#define NS_EDITMODE_ARMATURE (8<<8)
|
||||
#define NS_POSEMODE (9<<8)
|
||||
#define NS_MODE_POSE (9<<8)
|
||||
#define NS_MODE_PARTICLE (10<<8)
|
||||
|
||||
|
||||
/* action classification */
|
||||
|
||||
Reference in New Issue
Block a user