Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Letwory <nathan@letworyinteractive.com>2010-10-31 04:18:26 +0300
committerNathan Letwory <nathan@letworyinteractive.com>2010-10-31 04:18:26 +0300
commit73f21f20b789ed1474274b0d27778eede4108569 (patch)
treeb2e309aa70a249bb536ace095d8fd7cd30431cb6
parentbae43df4ec359fb08a9ae45feb44eb5d24a4e5f8 (diff)
Lock to Cursor
Patch by Dan Eicher. In 3dview properties you can enable this. Rotating view then uses cursor as pivot point. Note that with this option enabled just relocating the 3d cursor also changes the 3dview. Sebastian König: "Now the 3d cursor is actually useful" (sitting next to me while applying patch at bconf hostel)
-rw-r--r--release/scripts/ui/space_view3d.py2
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c5
-rw-r--r--source/blender/makesdna/DNA_view3d_types.h2
-rw-r--r--source/blender/makesrna/intern/rna_space.c5
4 files changed, 13 insertions, 1 deletions
diff --git a/release/scripts/ui/space_view3d.py b/release/scripts/ui/space_view3d.py
index f7238364142..2cc05cb5e2d 100644
--- a/release/scripts/ui/space_view3d.py
+++ b/release/scripts/ui/space_view3d.py
@@ -1951,6 +1951,8 @@ class VIEW3D_PT_view3d_properties(bpy.types.Panel):
col.prop(view, "lock_object", text="")
if view.lock_object and view.lock_object.type == 'ARMATURE':
col.prop_search(view, "lock_bone", view.lock_object.data, "bones", text="")
+ elif not view.lock_object:
+ col.prop(view, "lock_cursor", text="Lock to Cursor")
col = layout.column(align=True)
col.label(text="Clip:")
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index 6cbce905f33..f876e420d89 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -1205,6 +1205,11 @@ void setviewmatrixview3d(Scene *scene, View3D *v3d, RegionView3D *rv3d)
}
translate_m4( rv3d->viewmat,-vec[0], -vec[1], -vec[2]);
}
+ else if (v3d->ob_centre_cursor) {
+ float vec[3];
+ copy_v3_v3(vec, give_cursor(scene, v3d));
+ translate_m4(rv3d->viewmat, -vec[0], -vec[1], -vec[2]);
+ }
else translate_m4( rv3d->viewmat,rv3d->ofs[0], rv3d->ofs[1], rv3d->ofs[2]);
}
}
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index 9de5ad198a6..307e111abe6 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -160,7 +160,7 @@ typedef struct View3D {
* The drawing mode for the 3d display. Set to OB_WIRE, OB_SOLID,
* OB_SHADED or OB_TEXTURE */
short drawtype;
- short pad2;
+ short ob_centre_cursor; /* optional bool for 3d cursor to define center */
short scenelock, around, pad3;
short flag, flag2;
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 70ccd4f8a6e..8d807d0cc8c 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -1016,6 +1016,11 @@ static void rna_def_space_view3d(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Lock Bone", "3D View center is locked to this bone's position");
RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+ prop= RNA_def_property(srna, "lock_cursor", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "ob_centre_cursor", 1);
+ RNA_def_property_ui_text(prop, "Lock Bone", "3D View center is locked to the cursor's position");
+ RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
prop= RNA_def_property(srna, "viewport_shade", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "drawtype");
RNA_def_property_enum_items(prop, viewport_shade_items);