[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28842] trunk/blender/source/blender/ makesrna/intern/rna_space.c: rna property RegionView3d.perspective - ORTHO/ PERSP/CAMERA
Campbell Barton
ideasman42 at gmail.com
Tue May 18 23:01:22 CEST 2010
Revision: 28842
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28842
Author: campbellbarton
Date: 2010-05-18 23:01:22 +0200 (Tue, 18 May 2010)
Log Message:
-----------
rna property RegionView3d.perspective - ORTHO/PERSP/CAMERA
useful for setting the camera view from python
Modified Paths:
--------------
trunk/blender/source/blender/makesrna/intern/rna_space.c
Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_space.c 2010-05-18 17:19:02 UTC (rev 28841)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c 2010-05-18 21:01:22 UTC (rev 28842)
@@ -338,6 +338,30 @@
ED_view3d_quadview_update(sa, ar);
}
+static void rna_RegionView3D_prespective_set(PointerRNA *ptr, const int value)
+{
+ RegionView3D *rv3d= (RegionView3D *)(ptr->data);
+
+ if(value==RV3D_CAMOB) {
+ bScreen *sc= (bScreen*)ptr->id.data;
+ Scene *scene= (Scene *)sc->scene;
+ ScrArea *sa;
+ ARegion *ar;
+ View3D *v3d;
+
+ rna_area_region_from_regiondata(ptr, &sa, &ar);
+ v3d = sa->spacedata.first; // XXX, could be not the first!
+ if(v3d->camera==NULL) {
+ if(scene->camera==NULL)
+ return; /* cant set camera */
+
+ v3d->camera= scene->camera;
+ }
+ }
+
+ rv3d->persp= value;
+}
+
/* Space Image Editor */
static PointerRNA rna_SpaceImageEditor_uvedit_get(PointerRNA *ptr)
@@ -921,7 +945,13 @@
{V3D_CENTROID, "MEDIAN_POINT", ICON_ROTATECENTER, "Median Point", ""},
{V3D_ACTIVE, "ACTIVE_ELEMENT", ICON_ROTACTIVE, "Active Element", ""},
{0, NULL, 0, NULL, NULL}};
-
+
+ static EnumPropertyItem rv3d_persp_items[] = {
+ {RV3D_PERSP, "PERSP", 0, "Perspective", ""},
+ {RV3D_ORTHO, "ORTHO", 0, "Orthographic", ""},
+ {RV3D_CAMOB, "CAMERA", 0, "Camera", ""},
+ {0, NULL, 0, NULL, NULL}};
+
srna= RNA_def_struct(brna, "SpaceView3D", "Space");
RNA_def_struct_sdna(srna, "View3D");
RNA_def_struct_ui_text(srna, "3D View Space", "3D View space data");
@@ -1168,6 +1198,13 @@
RNA_def_property_clear_flag(prop, PROP_EDITABLE); // XXX: for now, it's too risky for users to do this
RNA_def_property_multi_array(prop, 2, matrix_dimsize);
RNA_def_property_ui_text(prop, "View Matrix", "Current view matrix of the 3D region");
+
+ prop= RNA_def_property(srna, "perspective", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "persp");
+ RNA_def_property_enum_items(prop, rv3d_persp_items);
+ RNA_def_property_enum_funcs(prop, NULL, "rna_RegionView3D_prespective_set", NULL);
+ RNA_def_property_ui_text(prop, "Perspective", "View Perspective");
+ RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
}
static void rna_def_space_buttons(BlenderRNA *brna)
More information about the Bf-blender-cvs
mailing list