diff options
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_object.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 41 |
2 files changed, 42 insertions, 1 deletions
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 903ca7a66aa..5599acc1571 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -115,7 +115,7 @@ void solve_tracking (struct Object *ob, float targetmat[][4]); void object_handle_update(struct Object *ob); float give_timeoffset(struct Object *ob); - +int give_obdata_texspace(struct Object *ob, int **texflag, float **loc, float **size, float **rot); #ifdef __cplusplus } #endif diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 3f1515f146a..287708a8ed4 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -53,6 +53,8 @@ #include "DNA_lattice_types.h" #include "DNA_material_types.h" #include "DNA_mesh_types.h" +#include "DNA_meta_types.h" +#include "DNA_curve_types.h" #include "DNA_meshdata_types.h" #include "DNA_modifier_types.h" #include "DNA_nla_types.h" @@ -2288,3 +2290,42 @@ float give_timeoffset(Object *ob) { return ob->sf; } } + +int give_obdata_texspace(Object *ob, int **texflag, float **loc, float **size, float **rot) { + + if (ob->data==NULL) + return 0; + + switch (GS(((ID *)ob->data)->name)) { + case ID_ME: + { + Mesh *me= ob->data; + if (texflag) *texflag = &me->texflag; + if (loc) *loc = me->loc; + if (size) *size = me->size; + if (rot) *rot = me->rot; + break; + } + case ID_CU: + { + Curve *cu= ob->data; + if (texflag) *texflag = &cu->texflag; + if (loc) *loc = cu->loc; + if (size) *size = cu->size; + if (rot) *rot = cu->rot; + break; + } + case ID_MB: + { + MetaBall *mb= ob->data; + if (texflag) *texflag = &mb->texflag; + if (loc) *loc = mb->loc; + if (size) *size = mb->size; + if (rot) *rot = mb->rot; + break; + } + default: + return 0; + } + return 1; +} |