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:
authorCampbell Barton <ideasman42@gmail.com>2008-04-01 15:14:34 +0400
committerCampbell Barton <ideasman42@gmail.com>2008-04-01 15:14:34 +0400
commit7d6e7c716fcea69cacb74132efbae27133345f57 (patch)
tree196ad280462129bbf9fe55912455482bc5a17b1b /source/blender/blenkernel
parent22149c95ba5e3f885b9609b0cf60f54a13c481d5 (diff)
function for getting object texspace settings, without dealing with curve/mball/mesh separately.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/BKE_object.h2
-rw-r--r--source/blender/blenkernel/intern/object.c41
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;
+}