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);
|
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);
|
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);
|
WM_keymap_add_item(keymap, "POSE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
|
||||||
/*clear pose*/
|
/*clear pose*/
|
||||||
WM_keymap_add_item(keymap, "POSE_OT_rot_clear", RKEY, KM_PRESS, KM_ALT, 0);
|
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);
|
Object *ob= CTX_data_active_object(C);
|
||||||
bArmature *arm= ob->data;
|
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,
|
bone_looper(ob, arm->bonebase.first, NULL,
|
||||||
hide_unselected_pose_bone);
|
hide_unselected_pose_bone);
|
||||||
else
|
else
|
||||||
@@ -4719,7 +4719,7 @@ static int pose_hide_exec(bContext *C, wmOperator *op)
|
|||||||
void POSE_OT_hide(wmOperatorType *ot)
|
void POSE_OT_hide(wmOperatorType *ot)
|
||||||
{
|
{
|
||||||
/* identifiers */
|
/* identifiers */
|
||||||
ot->name= "Hide Selection";
|
ot->name= "Hide Selected";
|
||||||
ot->idname= "POSE_OT_hide";
|
ot->idname= "POSE_OT_hide";
|
||||||
|
|
||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
@@ -4730,7 +4730,7 @@ void POSE_OT_hide(wmOperatorType *ot)
|
|||||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||||
|
|
||||||
/* props */
|
/* 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)
|
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)
|
void POSE_OT_reveal(wmOperatorType *ot)
|
||||||
{
|
{
|
||||||
/* identifiers */
|
/* identifiers */
|
||||||
ot->name= "Reveil Selection";
|
ot->name= "Reveal Selected";
|
||||||
ot->idname= "POSE_OT_reveal";
|
ot->idname= "POSE_OT_reveal";
|
||||||
|
|
||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
@@ -4773,9 +4773,6 @@ void POSE_OT_reveal(wmOperatorType *ot)
|
|||||||
|
|
||||||
/* flags */
|
/* flags */
|
||||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||||
|
|
||||||
/* props */
|
|
||||||
RNA_def_boolean(ot->srna, "invert", 0, "Invert", "");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************* RENAMING DISASTERS ************ */
|
/* ************* RENAMING DISASTERS ************ */
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ void ED_armature_enter_posemode(bContext *C, Base *base)
|
|||||||
ob->flag |= OB_POSEMODE;
|
ob->flag |= OB_POSEMODE;
|
||||||
base->flag= ob->flag;
|
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;
|
break;
|
||||||
default:
|
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_reveal", HKEY, KM_PRESS, KM_ALT, 0);
|
||||||
WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, KM_ALT|KM_CTRL, 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);
|
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;
|
Nurb *nu;
|
||||||
BPoint *bp;
|
BPoint *bp;
|
||||||
BezTriple *bezt;
|
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) {
|
for(nu= editnurb->first; nu; nu= nu->next) {
|
||||||
if((nu->type & 7)==CU_BEZIER) {
|
if((nu->type & 7)==CU_BEZIER) {
|
||||||
@@ -1668,7 +1668,7 @@ static int hide_exec(bContext *C, wmOperator *op)
|
|||||||
void CURVE_OT_hide(wmOperatorType *ot)
|
void CURVE_OT_hide(wmOperatorType *ot)
|
||||||
{
|
{
|
||||||
/* identifiers */
|
/* identifiers */
|
||||||
ot->name= "Hide Selection";
|
ot->name= "Hide Selected";
|
||||||
ot->idname= "CURVE_OT_hide";
|
ot->idname= "CURVE_OT_hide";
|
||||||
|
|
||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
@@ -1679,7 +1679,7 @@ void CURVE_OT_hide(wmOperatorType *ot)
|
|||||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||||
|
|
||||||
/* props */
|
/* 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 *********************/
|
/********************** reveal operator *********************/
|
||||||
|
|||||||
@@ -27,8 +27,8 @@
|
|||||||
* ***** END GPL LICENSE BLOCK *****
|
* ***** END GPL LICENSE BLOCK *****
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef ED_EDITPARTICLE_H
|
#ifndef ED_PARTICLE_H
|
||||||
#define ED_EDITPARTICLE_H
|
#define ED_PARTICLE_H
|
||||||
|
|
||||||
struct Object;
|
struct Object;
|
||||||
struct ParticleSystem;
|
struct ParticleSystem;
|
||||||
@@ -36,18 +36,19 @@ struct ParticleEditSettings;
|
|||||||
struct RadialControl;
|
struct RadialControl;
|
||||||
struct ViewContext;
|
struct ViewContext;
|
||||||
struct rcti;
|
struct rcti;
|
||||||
|
struct wmWindowManager;
|
||||||
|
|
||||||
/* particle edit mode */
|
/* particle edit mode */
|
||||||
void PE_set_particle_edit(struct Scene *scene);
|
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_free_particle_edit(struct ParticleSystem *psys);
|
||||||
|
|
||||||
void PE_change_act(void *ob_v, void *act_v);
|
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);
|
int PE_can_edit(struct ParticleSystem *psys);
|
||||||
|
|
||||||
/* access */
|
/* 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);
|
short PE_get_current_num(struct Object *ob);
|
||||||
int PE_minmax(struct Scene *scene, float *min, float *max);
|
int PE_minmax(struct Scene *scene, float *min, float *max);
|
||||||
void PE_get_colors(char sel[4], char nosel[4]);
|
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_select_more(void);
|
||||||
|
|
||||||
void PE_mouse_particles(void);
|
void PE_mouse_particles(void);
|
||||||
void PE_borderselect(struct ViewContext *vc, struct rcti *rect, int select);
|
void PE_border_select(struct ViewContext *vc, struct rcti *rect, int select);
|
||||||
void PE_selectionCB(short selecting, struct Object *editobj, short *mval, float rad);
|
void PE_circle_select(struct ViewContext *vc, int selecting, short *mval, float rad);
|
||||||
void PE_do_lasso_select(struct ViewContext *, short mcords[][2], short moves, short select);
|
void PE_lasso_select(struct ViewContext *vc, short mcords[][2], short moves, short select);
|
||||||
|
|
||||||
/* tools */
|
/* tools */
|
||||||
void PE_hide(int mode);
|
void PE_hide(int mode);
|
||||||
void PE_rekey(void);
|
void PE_rekey(void);
|
||||||
void PE_subdivide(Object *ob);
|
void PE_subdivide(Object *ob);
|
||||||
int PE_brush_particles(void);
|
int PE_brush_particles(void);
|
||||||
void PE_delete_particle(void);
|
|
||||||
void PE_remove_doubles(void);
|
void PE_remove_doubles(void);
|
||||||
void PE_mirror_x(Scene *scene, int tagged);
|
|
||||||
void PE_selectbrush_menu(Scene *scene);
|
void PE_selectbrush_menu(Scene *scene);
|
||||||
void PE_remove_doubles(void);
|
void PE_remove_doubles(void);
|
||||||
void PE_radialcontrol_start(const int mode);
|
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_step(Scene *scene, int step);
|
||||||
void PE_undo(Scene *scene);
|
void PE_undo(Scene *scene);
|
||||||
void PE_redo(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 View3D;
|
||||||
struct RegionView3D;
|
struct RegionView3D;
|
||||||
struct ViewContext;
|
struct ViewContext;
|
||||||
|
struct bglMats;
|
||||||
struct BPoint;
|
struct BPoint;
|
||||||
struct Nurb;
|
struct Nurb;
|
||||||
struct BezTriple;
|
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_operator_needs_opengl(const struct bContext *C);
|
||||||
void view3d_get_view_aligned_coordinate(struct ViewContext *vc, float *fp, short mval[2]);
|
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_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 */
|
/* XXX should move to arithb.c */
|
||||||
int edge_inside_circle(short centx, short centy, short rad, short x1, short y1, short x2, short y2);
|
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);
|
Object *obedit= CTX_data_edit_object(C);
|
||||||
EditMesh *em= ((Mesh *)obedit->data)->edit_mesh;
|
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);
|
WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit);
|
||||||
return OPERATOR_FINISHED;
|
return OPERATOR_FINISHED;
|
||||||
@@ -2651,7 +2651,7 @@ void MESH_OT_hide(wmOperatorType *ot)
|
|||||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||||
|
|
||||||
/* props */
|
/* 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)
|
void EM_reveal_mesh(EditMesh *em)
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ void ED_keymap_mesh(wmWindowManager *wm)
|
|||||||
|
|
||||||
/* hide */
|
/* hide */
|
||||||
WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, 0, 0);
|
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);
|
WM_keymap_add_item(keymap, "MESH_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
|
||||||
|
|
||||||
/* tools */
|
/* tools */
|
||||||
|
|||||||
@@ -112,7 +112,7 @@
|
|||||||
#include "ED_anim_api.h"
|
#include "ED_anim_api.h"
|
||||||
#include "ED_armature.h"
|
#include "ED_armature.h"
|
||||||
#include "ED_curve.h"
|
#include "ED_curve.h"
|
||||||
#include "ED_editparticle.h"
|
#include "ED_particle.h"
|
||||||
#include "ED_mesh.h"
|
#include "ED_mesh.h"
|
||||||
#include "ED_object.h"
|
#include "ED_object.h"
|
||||||
#include "ED_screen.h"
|
#include "ED_screen.h"
|
||||||
@@ -6366,15 +6366,8 @@ void texspace_edit(Scene *scene, View3D *v3d)
|
|||||||
|
|
||||||
void mirrormenu(void)
|
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 initTransform(TFM_MIRROR, CTX_NO_PET);
|
||||||
// XXX Transform();
|
// XXX Transform();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void hookmenu(Scene *scene, View3D *v3d)
|
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)
|
/**** Operator for applying a stroke (various attributes including mouse path)
|
||||||
using the current brush. ****/
|
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)
|
static float unproject_brush_radius(SculptSession *ss, float offset)
|
||||||
{
|
{
|
||||||
float brush_edge[3];
|
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);
|
view3d_set_viewcontext(C, &cache->vc);
|
||||||
|
|
||||||
cache->mats = MEM_callocN(sizeof(bglMats), "sculpt bglMats");
|
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);
|
sculpt_update_mesh_elements(C);
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
#include "ED_mesh.h"
|
#include "ED_mesh.h"
|
||||||
#include "ED_markers.h"
|
#include "ED_markers.h"
|
||||||
#include "ED_object.h"
|
#include "ED_object.h"
|
||||||
|
#include "ED_particle.h"
|
||||||
#include "ED_sculpt.h"
|
#include "ED_sculpt.h"
|
||||||
#include "ED_screen.h"
|
#include "ED_screen.h"
|
||||||
#include "ED_space_api.h"
|
#include "ED_space_api.h"
|
||||||
@@ -83,6 +84,7 @@ void ED_spacetypes_init(void)
|
|||||||
ED_operatortypes_sculpt();
|
ED_operatortypes_sculpt();
|
||||||
ED_operatortypes_uvedit();
|
ED_operatortypes_uvedit();
|
||||||
ED_operatortypes_paint();
|
ED_operatortypes_paint();
|
||||||
|
ED_operatortypes_particle();
|
||||||
ED_operatortypes_curve();
|
ED_operatortypes_curve();
|
||||||
ED_operatortypes_armature();
|
ED_operatortypes_armature();
|
||||||
ED_marker_operatortypes();
|
ED_marker_operatortypes();
|
||||||
@@ -111,6 +113,7 @@ void ED_spacetypes_keymap(wmWindowManager *wm)
|
|||||||
ED_keymap_uvedit(wm);
|
ED_keymap_uvedit(wm);
|
||||||
ED_keymap_curve(wm);
|
ED_keymap_curve(wm);
|
||||||
ED_keymap_armature(wm);
|
ED_keymap_armature(wm);
|
||||||
|
ED_keymap_particle(wm);
|
||||||
ED_marker_keymap(wm);
|
ED_marker_keymap(wm);
|
||||||
|
|
||||||
UI_view2d_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)
|
static void image_uvs_showhidemenu(bContext *C, uiMenuItem *head, void *arg_unused)
|
||||||
{
|
{
|
||||||
uiMenuItemO(head, 0, "UV_OT_show_hidden");
|
uiMenuItemO(head, 0, "UV_OT_reveal");
|
||||||
uiMenuItemO(head, 0, "UV_OT_hide_selected");
|
uiMenuItemO(head, 0, "UV_OT_hide");
|
||||||
uiMenuItemO(head, 0, "UV_OT_hide_deselected");
|
uiMenuItemBooleanO(head, "Hide Unselected", 0, "UV_OT_hide", "unselected", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void image_uvs_transformmenu(bContext *C, uiMenuItem *head, void *arg_unused)
|
static void image_uvs_transformmenu(bContext *C, uiMenuItem *head, void *arg_unused)
|
||||||
|
|||||||
@@ -98,7 +98,7 @@
|
|||||||
#include "GPU_material.h"
|
#include "GPU_material.h"
|
||||||
#include "GPU_extensions.h"
|
#include "GPU_extensions.h"
|
||||||
|
|
||||||
#include "ED_editparticle.h"
|
#include "ED_particle.h"
|
||||||
#include "ED_mesh.h"
|
#include "ED_mesh.h"
|
||||||
#include "ED_types.h"
|
#include "ED_types.h"
|
||||||
#include "ED_util.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);
|
draw_new_particle_system(scene, v3d, rv3d, base, psys, dt);
|
||||||
|
|
||||||
if(G.f & G_PARTICLEEDIT && ob==OBACT) {
|
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))
|
if(psys && !scene->obedit && psys_in_edit_mode(scene, psys))
|
||||||
draw_particle_edit(scene, v3d, rv3d, ob, psys, dt);
|
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);
|
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||||
else
|
else
|
||||||
WM_event_remove_keymap_handler(&ar->handlers, keymap);
|
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... */
|
/* editfont keymap swallows all... */
|
||||||
keymap= WM_keymap_listbase(wm, "Font", 0, 0);
|
keymap= WM_keymap_listbase(wm, "Font", 0, 0);
|
||||||
if(stype==NS_EDITMODE_TEXT)
|
if(stype==NS_EDITMODE_TEXT)
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
|
|
||||||
#include "ED_armature.h"
|
#include "ED_armature.h"
|
||||||
#include "ED_curve.h"
|
#include "ED_curve.h"
|
||||||
#include "ED_editparticle.h"
|
#include "ED_particle.h"
|
||||||
#include "ED_keyframing.h"
|
#include "ED_keyframing.h"
|
||||||
#include "ED_mesh.h"
|
#include "ED_mesh.h"
|
||||||
#include "ED_object.h"
|
#include "ED_object.h"
|
||||||
|
|||||||
@@ -70,7 +70,7 @@
|
|||||||
#include "RNA_access.h"
|
#include "RNA_access.h"
|
||||||
#include "RNA_define.h"
|
#include "RNA_define.h"
|
||||||
|
|
||||||
#include "ED_editparticle.h"
|
#include "ED_particle.h"
|
||||||
#include "ED_space_api.h"
|
#include "ED_space_api.h"
|
||||||
#include "ED_screen.h"
|
#include "ED_screen.h"
|
||||||
#include "ED_types.h"
|
#include "ED_types.h"
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
#include "BKE_utildefines.h" /* for VECCOPY */
|
#include "BKE_utildefines.h" /* for VECCOPY */
|
||||||
|
|
||||||
#include "ED_armature.h"
|
#include "ED_armature.h"
|
||||||
#include "ED_editparticle.h"
|
#include "ED_particle.h"
|
||||||
#include "ED_object.h"
|
#include "ED_object.h"
|
||||||
#include "ED_mesh.h"
|
#include "ED_mesh.h"
|
||||||
#include "ED_util.h"
|
#include "ED_util.h"
|
||||||
@@ -149,9 +149,8 @@ void ED_view3d_exit_paint_modes(bContext *C)
|
|||||||
|
|
||||||
if(G.f & G_SCULPTMODE)
|
if(G.f & G_SCULPTMODE)
|
||||||
WM_operator_name_call(C, "SCULPT_OT_sculptmode_toggle", WM_OP_EXEC_REGION_WIN, NULL);
|
WM_operator_name_call(C, "SCULPT_OT_sculptmode_toggle", WM_OP_EXEC_REGION_WIN, NULL);
|
||||||
|
if(G.f & G_PARTICLEEDIT)
|
||||||
// if(G.f & G_TEXTUREPAINT) set_texturepaint();
|
WM_operator_name_call(C, "PARTICLE_OT_particle_edit_toggle", WM_OP_EXEC_REGION_WIN, NULL);
|
||||||
if(G.f & G_PARTICLEEDIT) PE_set_particle_edit(CTX_data_scene(C));
|
|
||||||
|
|
||||||
G.f &= ~(G_VERTEXPAINT+G_TEXTUREPAINT+G_WEIGHTPAINT+G_SCULPTMODE+G_PARTICLEEDIT);
|
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, "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 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);
|
uiBlockSetDirection(block, UI_RIGHT);
|
||||||
uiTextBoundsBlock(block, 60);
|
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, "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 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);
|
uiBlockSetDirection(block, UI_RIGHT);
|
||||||
uiTextBoundsBlock(block, 60);
|
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_reveal");
|
||||||
uiMenuItemO(head, 0, "CURVE_OT_hide");
|
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)
|
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 */
|
case 11: /* hide selected control points */
|
||||||
hide_mball(0);
|
hide_mball(0);
|
||||||
break;
|
break;
|
||||||
case 12: /* hide deselected control points */
|
case 12: /* hide selected control points */
|
||||||
hide_mball(1);
|
hide_mball(1);
|
||||||
break;
|
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, "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 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);
|
uiBlockSetDirection(block, UI_RIGHT);
|
||||||
uiTextBoundsBlock(block, 60);
|
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, "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 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);
|
uiBlockSetDirection(block, UI_RIGHT);
|
||||||
uiTextBoundsBlock(block, 60);
|
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, "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 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);
|
uiBlockSetDirection(block, UI_RIGHT);
|
||||||
uiTextBoundsBlock(block, 60);
|
uiTextBoundsBlock(block, 60);
|
||||||
@@ -4693,195 +4692,61 @@ static uiBlock *view3d_faceselmenu(bContext *C, ARegion *ar, void *arg_unused)
|
|||||||
return block;
|
return block;
|
||||||
}
|
}
|
||||||
|
|
||||||
void do_view3d_select_particlemenu(bContext *C, void *arg, int event)
|
static void view3d_select_particlemenu(bContext *C, uiMenuItem *head, void *arg_unused)
|
||||||
{
|
|
||||||
|
|
||||||
/* 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)
|
|
||||||
{
|
{
|
||||||
Scene *scene= CTX_data_scene(C);
|
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);
|
uiMenuItemO(head, 0, "VIEW3D_OT_borderselect");
|
||||||
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, "");
|
|
||||||
|
|
||||||
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, "");
|
uiMenuSeparator(head);
|
||||||
|
|
||||||
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, "");
|
|
||||||
|
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Remove Doubles|W, 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
uiMenuItemO(head, 0, "PARTICLE_OT_de_select_all");
|
||||||
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_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)
|
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, "");
|
uiMenuItemO(head, 0, "PARTICLE_OT_subdivide"); // |W, 2
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Rekey|W, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
uiMenuItemO(head, 0, "PARTICLE_OT_rekey"); // |W, 1
|
||||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
|
||||||
|
|
||||||
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) {
|
uiMenuLevel(head, "Show/Hide Particles", view3d_particle_showhidemenu);
|
||||||
uiBlockSetDirection(block, UI_DOWN);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
uiBlockSetDirection(block, UI_TOP);
|
|
||||||
uiBlockFlipOrder(block);
|
|
||||||
}
|
|
||||||
|
|
||||||
uiTextBoundsBlock(block, 50);
|
|
||||||
|
|
||||||
return block;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static char *view3d_modeselect_pup(Scene *scene)
|
static char *view3d_modeselect_pup(Scene *scene)
|
||||||
{
|
{
|
||||||
Object *ob= OBACT;
|
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);
|
ED_view3d_exit_paint_modes(C);
|
||||||
if(obedit) ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR); /* exit editmode and undo */
|
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;
|
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)) {
|
} 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, "");
|
uiDefBut(block, LABEL,0,"", xco, 0, xmax, 20, 0, 0, 0, 0, 0, "");
|
||||||
} else if (G.f & G_PARTICLEEDIT) {
|
} 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 {
|
} else {
|
||||||
|
|
||||||
if (ob && (ob->flag & OB_POSEMODE))
|
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) {
|
else if(G.f & G_PARTICLEEDIT) {
|
||||||
xmax= GetButStringLength("Particle");
|
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;
|
xco+= xmax;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -76,7 +76,7 @@
|
|||||||
|
|
||||||
#include "ED_armature.h"
|
#include "ED_armature.h"
|
||||||
#include "ED_curve.h"
|
#include "ED_curve.h"
|
||||||
#include "ED_editparticle.h"
|
#include "ED_particle.h"
|
||||||
#include "ED_mesh.h"
|
#include "ED_mesh.h"
|
||||||
#include "ED_object.h"
|
#include "ED_object.h"
|
||||||
#include "ED_screen.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 ********************* */
|
/* ********************** view3d_select: selection manipulations ********************* */
|
||||||
|
|
||||||
/* XXX to solve *************** */
|
/* 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_VERTEXPAINT|G_TEXTUREPAINT|G_WEIGHTPAINT))
|
||||||
;
|
;
|
||||||
else if(G.f & G_PARTICLEEDIT)
|
else if(G.f & G_PARTICLEEDIT)
|
||||||
PE_do_lasso_select(vc, mcords, moves, select);
|
PE_lasso_select(vc, mcords, moves, select);
|
||||||
else
|
else
|
||||||
do_lasso_select_objects(vc, mcords, moves, select);
|
do_lasso_select_objects(vc, mcords, moves, select);
|
||||||
}
|
}
|
||||||
@@ -1329,7 +1349,7 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op)
|
|||||||
return OPERATOR_FINISHED;
|
return OPERATOR_FINISHED;
|
||||||
}
|
}
|
||||||
else if(obedit==NULL && (G.f & G_PARTICLEEDIT)) {
|
else if(obedit==NULL && (G.f & G_PARTICLEEDIT)) {
|
||||||
PE_borderselect(&vc, &rect, (val==LEFTMOUSE));
|
PE_border_select(&vc, &rect, (val==LEFTMOUSE));
|
||||||
return OPERATOR_FINISHED;
|
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 y= RNA_int_get(op->ptr, "y");
|
||||||
int radius= RNA_int_get(op->ptr, "radius");
|
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;
|
ViewContext vc;
|
||||||
short mval[2], selecting;
|
short mval[2], selecting;
|
||||||
|
|
||||||
@@ -1775,7 +1795,11 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op)
|
|||||||
mval[0]= x;
|
mval[0]= x;
|
||||||
mval[1]= y;
|
mval[1]= y;
|
||||||
selecting= LEFTMOUSE==RNA_int_get(op->ptr, "event_type"); // XXX solve
|
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 {
|
else {
|
||||||
Base *base;
|
Base *base;
|
||||||
|
|||||||
@@ -121,7 +121,7 @@
|
|||||||
|
|
||||||
#include "ED_anim_api.h"
|
#include "ED_anim_api.h"
|
||||||
#include "ED_armature.h"
|
#include "ED_armature.h"
|
||||||
#include "ED_editparticle.h"
|
#include "ED_particle.h"
|
||||||
#include "ED_image.h"
|
#include "ED_image.h"
|
||||||
#include "ED_keyframing.h"
|
#include "ED_keyframing.h"
|
||||||
#include "ED_keyframes_edit.h"
|
#include "ED_keyframes_edit.h"
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
#include "BKE_utildefines.h"
|
#include "BKE_utildefines.h"
|
||||||
|
|
||||||
#include "ED_armature.h"
|
#include "ED_armature.h"
|
||||||
#include "ED_editparticle.h"
|
#include "ED_particle.h"
|
||||||
#include "ED_curve.h"
|
#include "ED_curve.h"
|
||||||
#include "ED_mesh.h"
|
#include "ED_mesh.h"
|
||||||
#include "ED_object.h"
|
#include "ED_object.h"
|
||||||
@@ -191,7 +191,7 @@ void ED_undo_menu(bContext *C)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(G.f & G_PARTICLEEDIT)
|
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) {
|
else if(U.uiflag & USER_GLOBALUNDO) {
|
||||||
char *menu= BKE_undo_menu_string();
|
char *menu= BKE_undo_menu_string();
|
||||||
if(menu) {
|
if(menu) {
|
||||||
|
|||||||
@@ -2513,7 +2513,7 @@ void UV_OT_snap_selection(wmOperatorType *ot)
|
|||||||
static EnumPropertyItem target_items[] = {
|
static EnumPropertyItem target_items[] = {
|
||||||
{0, "PIXELS", "Pixels", ""},
|
{0, "PIXELS", "Pixels", ""},
|
||||||
{1, "CURSOR", "Cursor", ""},
|
{1, "CURSOR", "Cursor", ""},
|
||||||
{2, "ADJACENT_DESELECTED", "Adjacent Deselected", ""},
|
{2, "ADJACENT_UNSELECTED", "Adjacent Unselected", ""},
|
||||||
{0, NULL, NULL, NULL}};
|
{0, NULL, NULL, NULL}};
|
||||||
|
|
||||||
/* identifiers */
|
/* identifiers */
|
||||||
@@ -2633,7 +2633,7 @@ static int hide_exec(bContext *C, wmOperator *op)
|
|||||||
EditMesh *em= ((Mesh*)obedit->data)->edit_mesh;
|
EditMesh *em= ((Mesh*)obedit->data)->edit_mesh;
|
||||||
EditFace *efa;
|
EditFace *efa;
|
||||||
MTFace *tf;
|
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) {
|
if(scene->toolsettings->uv_flag & UV_SYNC_SELECTION) {
|
||||||
EM_hide_mesh(em, swap);
|
EM_hide_mesh(em, swap);
|
||||||
@@ -2748,33 +2748,24 @@ static int hide_exec(bContext *C, wmOperator *op)
|
|||||||
return OPERATOR_FINISHED;
|
return OPERATOR_FINISHED;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UV_OT_hide_selected(wmOperatorType *ot)
|
void UV_OT_hide(wmOperatorType *ot)
|
||||||
{
|
{
|
||||||
/* identifiers */
|
/* identifiers */
|
||||||
ot->name= "Hide Selected";
|
ot->name= "Hide Selected";
|
||||||
ot->idname= "UV_OT_hide_selected";
|
ot->idname= "UV_OT_hide";
|
||||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||||
|
|
||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
ot->exec= hide_exec;
|
ot->exec= hide_exec;
|
||||||
ot->poll= ED_operator_uvedit;
|
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)
|
/****************** reveal operator ******************/
|
||||||
{
|
|
||||||
/* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************** show hidden operator ******************/
|
static int reveal_exec(bContext *C, wmOperator *op)
|
||||||
|
|
||||||
static int show_hidden_exec(bContext *C, wmOperator *op)
|
|
||||||
{
|
{
|
||||||
SpaceImage *sima= (SpaceImage*)CTX_wm_space_data(C);
|
SpaceImage *sima= (SpaceImage*)CTX_wm_space_data(C);
|
||||||
Scene *scene= CTX_data_scene(C);
|
Scene *scene= CTX_data_scene(C);
|
||||||
@@ -2885,22 +2876,21 @@ static int show_hidden_exec(bContext *C, wmOperator *op)
|
|||||||
return OPERATOR_FINISHED;
|
return OPERATOR_FINISHED;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UV_OT_show_hidden(wmOperatorType *ot)
|
void UV_OT_reveal(wmOperatorType *ot)
|
||||||
{
|
{
|
||||||
/* identifiers */
|
/* identifiers */
|
||||||
ot->name= "Show Hidden";
|
ot->name= "Reveal Hidden";
|
||||||
ot->idname= "UV_OT_show_hidden";
|
ot->idname= "UV_OT_reveal";
|
||||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||||
|
|
||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
ot->exec= show_hidden_exec;
|
ot->exec= reveal_exec;
|
||||||
ot->poll= ED_operator_uvedit;
|
ot->poll= ED_operator_uvedit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************** set 3d cursor operator ********************/
|
/******************** 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);
|
ARegion *ar= CTX_wm_region(C);
|
||||||
float location[2];
|
float location[2];
|
||||||
@@ -2914,7 +2904,7 @@ static int set_3d_cursor_exec(bContext *C, wmOperator *op)
|
|||||||
return OPERATOR_FINISHED;
|
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);
|
ARegion *ar= CTX_wm_region(C);
|
||||||
int x, y;
|
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]);
|
UI_view2d_region_to_view(&ar->v2d, x, y, &location[0], &location[1]);
|
||||||
RNA_float_set_array(op->ptr, "location", location);
|
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 */
|
/* identifiers */
|
||||||
ot->name= "Set 3D Cursor";
|
ot->name= "Set 3D Cursor";
|
||||||
ot->idname= "UV_OT_set_3d_cursor";
|
ot->idname= "UV_OT_set_2d_cursor";
|
||||||
|
|
||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
ot->exec= set_3d_cursor_exec;
|
ot->exec= set_2d_cursor_exec;
|
||||||
ot->invoke= set_3d_cursor_invoke;
|
ot->invoke= set_2d_cursor_invoke;
|
||||||
ot->poll= ED_operator_uvedit;
|
ot->poll= ED_operator_uvedit;
|
||||||
|
|
||||||
/* flags */
|
/* flags */
|
||||||
@@ -3045,11 +3035,10 @@ void ED_operatortypes_uvedit(void)
|
|||||||
WM_operatortype_append(UV_OT_sphere_project);
|
WM_operatortype_append(UV_OT_sphere_project);
|
||||||
WM_operatortype_append(UV_OT_unwrap);
|
WM_operatortype_append(UV_OT_unwrap);
|
||||||
|
|
||||||
WM_operatortype_append(UV_OT_show_hidden);
|
WM_operatortype_append(UV_OT_reveal);
|
||||||
WM_operatortype_append(UV_OT_hide_selected);
|
WM_operatortype_append(UV_OT_hide);
|
||||||
WM_operatortype_append(UV_OT_hide_deselected);
|
|
||||||
|
|
||||||
WM_operatortype_append(UV_OT_set_3d_cursor);
|
WM_operatortype_append(UV_OT_set_2d_cursor);
|
||||||
WM_operatortype_append(UV_OT_set_tile);
|
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);
|
WM_keymap_add_item(keymap, "UV_OT_average_islands_scale", AKEY, KM_PRESS, KM_CTRL, 0);
|
||||||
|
|
||||||
/* hide */
|
/* hide */
|
||||||
WM_keymap_add_item(keymap, "UV_OT_hide_selected", HKEY, KM_PRESS, 0, 0);
|
WM_keymap_add_item(keymap, "UV_OT_hide", HKEY, KM_PRESS, 0, 0);
|
||||||
WM_keymap_add_item(keymap, "UV_OT_hide_deselected", HKEY, KM_PRESS, KM_SHIFT, 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_show_hidden", HKEY, KM_PRESS, KM_ALT, 0);
|
WM_keymap_add_item(keymap, "UV_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
|
||||||
|
|
||||||
/* cursor */
|
/* 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);
|
WM_keymap_add_item(keymap, "UV_OT_set_tile", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
|
||||||
|
|
||||||
transform_keymap_for_space(wm, keymap, SPACE_IMAGE);
|
transform_keymap_for_space(wm, keymap, SPACE_IMAGE);
|
||||||
|
|||||||
@@ -218,7 +218,8 @@ typedef struct wmNotifier {
|
|||||||
#define NS_EDITMODE_MBALL (6<<8)
|
#define NS_EDITMODE_MBALL (6<<8)
|
||||||
#define NS_EDITMODE_LATTICE (7<<8)
|
#define NS_EDITMODE_LATTICE (7<<8)
|
||||||
#define NS_EDITMODE_ARMATURE (8<<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 */
|
/* action classification */
|
||||||
|
|||||||
Reference in New Issue
Block a user