From 8ec4dee13ebcab5d52137b16e866751f7aad5580 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 10 Feb 2010 20:29:40 +0000 Subject: object bound box access from rna --- source/blender/makesrna/intern/rna_object.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'source') diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index cb0239eeadd..77449166874 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -996,6 +996,19 @@ static void rna_Object_modifier_remove(Object *object, bContext *C, ReportList * ED_object_modifier_remove(reports, CTX_data_scene(C), object, md); } +static void rna_Object_boundbox_get(PointerRNA *ptr, float *values) +{ + Object *ob= (Object*)ptr->id.data; + BoundBox *bb= object_get_boundbox(ob); + if(bb) { + memcpy(values, bb->vec, sizeof(bb->vec)); + } + else { + memset(values, -1.0f, sizeof(bb->vec)); + } + +} + #else static void rna_def_vertex_group(BlenderRNA *brna) @@ -1431,6 +1444,7 @@ static void rna_def_object(BlenderRNA *brna) static float default_quat[4] = {1,0,0,0}; /* default quaternion values */ static float default_axisAngle[4] = {0,0,1,0}; /* default axis-angle rotation values */ int matrix_dimsize[]= {4, 4}; + int boundbox_dimsize[]= {8, 3}; srna= RNA_def_struct(brna, "Object", "ID"); RNA_def_struct_ui_text(srna, "Object", "Object datablock defining an object in a scene.."); @@ -1470,6 +1484,13 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Selected", "Object selection state."); RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_select_update"); + /* for data access */ + prop= RNA_def_property(srna, "bound_box", PROP_FLOAT, PROP_NONE); + RNA_def_property_multi_array(prop, 2, boundbox_dimsize); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_float_funcs(prop, "rna_Object_boundbox_get", NULL, NULL); + RNA_def_property_ui_text(prop, "Bound Box", "Objects bound box in object-space coords"); + /* parent and track */ prop= RNA_def_property(srna, "parent", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_funcs(prop, NULL, "rna_Object_parent_set", NULL); -- cgit v1.2.3