checking for V3D_LOCAL was duplicated in transform.c, and both checks not quite correct.
- When checking edimode, make sure its mesh editmode. - Graph editor supports this option but wasn't being checked.
This commit is contained in:
@@ -152,8 +152,7 @@ def edge_face_count_dict(mesh):
|
|||||||
faces using each edge.
|
faces using each edge.
|
||||||
:rtype: dict
|
:rtype: dict
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#face_edge_keys = [face.edge_keys for face in ]
|
|
||||||
face_edge_count = {}
|
face_edge_count = {}
|
||||||
loops = mesh.loops
|
loops = mesh.loops
|
||||||
edges = mesh.edges
|
edges = mesh.edges
|
||||||
|
|||||||
@@ -104,6 +104,16 @@ static int doVertSlide(TransInfo *t, float perc);
|
|||||||
static void drawEdgeSlide(const struct bContext *C, TransInfo *t);
|
static void drawEdgeSlide(const struct bContext *C, TransInfo *t);
|
||||||
static void drawVertSlide(const struct bContext *C, TransInfo *t);
|
static void drawVertSlide(const struct bContext *C, TransInfo *t);
|
||||||
|
|
||||||
|
static bool transdata_check_local_center(TransInfo *t)
|
||||||
|
{
|
||||||
|
return ((t->around == V3D_LOCAL) && (
|
||||||
|
(t->flag & (T_OBJECT | T_POSE)) ||
|
||||||
|
(t->obedit && t->obedit->type == OB_MESH && (t->settings->selectmode & (SCE_SELECT_EDGE | SCE_SELECT_FACE))) ||
|
||||||
|
(t->obedit && t->obedit->type == OB_ARMATURE) ||
|
||||||
|
(t->spacetype == SPACE_IPO))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/* ************************** SPACE DEPENDANT CODE **************************** */
|
/* ************************** SPACE DEPENDANT CODE **************************** */
|
||||||
|
|
||||||
void setTransformViewMatrices(TransInfo *t)
|
void setTransformViewMatrices(TransInfo *t)
|
||||||
@@ -3005,12 +3015,7 @@ static void ElementResize(TransInfo *t, TransData *td, float mat[3][3])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* local constraint shouldn't alter center */
|
/* local constraint shouldn't alter center */
|
||||||
if ((t->around == V3D_LOCAL) &&
|
if (transdata_check_local_center(t)) {
|
||||||
( (t->flag & (T_OBJECT | T_POSE)) ||
|
|
||||||
((t->flag & T_EDIT) && (t->settings->selectmode & (SCE_SELECT_EDGE | SCE_SELECT_FACE))) ||
|
|
||||||
(t->obedit && t->obedit->type == OB_ARMATURE))
|
|
||||||
)
|
|
||||||
{
|
|
||||||
copy_v3_v3(center, td->center);
|
copy_v3_v3(center, td->center);
|
||||||
}
|
}
|
||||||
else if (t->options & CTX_MOVIECLIP) {
|
else if (t->options & CTX_MOVIECLIP) {
|
||||||
@@ -3387,20 +3392,16 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
|
|||||||
{
|
{
|
||||||
float vec[3], totmat[3][3], smat[3][3];
|
float vec[3], totmat[3][3], smat[3][3];
|
||||||
float eul[3], fmat[3][3], quat[4];
|
float eul[3], fmat[3][3], quat[4];
|
||||||
float *center = t->center;
|
const float *center;
|
||||||
|
|
||||||
/* local constraint shouldn't alter center */
|
/* local constraint shouldn't alter center */
|
||||||
if (around == V3D_LOCAL) {
|
if (transdata_check_local_center(t) ||
|
||||||
if ( (t->flag & (T_OBJECT | T_POSE)) ||
|
((around == V3D_LOCAL) && (t->options & CTX_MOVIECLIP)))
|
||||||
(t->settings->selectmode & (SCE_SELECT_EDGE | SCE_SELECT_FACE)) ||
|
{
|
||||||
(t->obedit && t->obedit->type == OB_ARMATURE))
|
center = td->center;
|
||||||
{
|
}
|
||||||
center = td->center;
|
else {
|
||||||
}
|
center = t->center;
|
||||||
|
|
||||||
if (t->options & CTX_MOVIECLIP) {
|
|
||||||
center = td->center;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t->flag & T_POINTS) {
|
if (t->flag & T_POINTS) {
|
||||||
|
|||||||
@@ -2548,7 +2548,7 @@ static void rna_def_space_graph(BlenderRNA *brna)
|
|||||||
{0, NULL, 0, NULL, NULL}
|
{0, NULL, 0, NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* this is basically the same as the one for the 3D-View, but with some entries ommitted */
|
/* this is basically the same as the one for the 3D-View, but with some entries omitted */
|
||||||
static EnumPropertyItem gpivot_items[] = {
|
static EnumPropertyItem gpivot_items[] = {
|
||||||
{V3D_CENTER, "BOUNDING_BOX_CENTER", ICON_ROTATE, "Bounding Box Center", ""},
|
{V3D_CENTER, "BOUNDING_BOX_CENTER", ICON_ROTATE, "Bounding Box Center", ""},
|
||||||
{V3D_CURSOR, "CURSOR", ICON_CURSOR, "2D Cursor", ""},
|
{V3D_CURSOR, "CURSOR", ICON_CURSOR, "2D Cursor", ""},
|
||||||
|
|||||||
Reference in New Issue
Block a user