[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14306] trunk/blender/source/blender: function for getting object texspace settings, without dealing with curve/ mball/mesh separately.
Campbell Barton
ideasman42 at gmail.com
Tue Apr 1 13:14:34 CEST 2008
Revision: 14306
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14306
Author: campbellbarton
Date: 2008-04-01 13:14:34 +0200 (Tue, 01 Apr 2008)
Log Message:
-----------
function for getting object texspace settings, without dealing with curve/mball/mesh separately.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_object.h
trunk/blender/source/blender/blenkernel/intern/object.c
trunk/blender/source/blender/src/buttons_editing.c
trunk/blender/source/blender/src/transform_conversions.c
Modified: trunk/blender/source/blender/blenkernel/BKE_object.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_object.h 2008-04-01 11:08:48 UTC (rev 14305)
+++ trunk/blender/source/blender/blenkernel/BKE_object.h 2008-04-01 11:14:34 UTC (rev 14306)
@@ -115,7 +115,7 @@
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
Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c 2008-04-01 11:08:48 UTC (rev 14305)
+++ trunk/blender/source/blender/blenkernel/intern/object.c 2008-04-01 11:14:34 UTC (rev 14306)
@@ -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 @@
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;
+}
Modified: trunk/blender/source/blender/src/buttons_editing.c
===================================================================
--- trunk/blender/source/blender/src/buttons_editing.c 2008-04-01 11:08:48 UTC (rev 14305)
+++ trunk/blender/source/blender/src/buttons_editing.c 2008-04-01 11:14:34 UTC (rev 14306)
@@ -5412,12 +5412,8 @@
if ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL);
else return;
- id= ob->data;
uiSetButLock(object_data_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
-
- if(ob->type==OB_MESH) poin= &( ((Mesh *)ob->data)->texflag );
- else if(ob->type==OB_MBALL) poin= &( ((MetaBall *)ob->data)->texflag );
- else poin= &( ((Curve *)ob->data)->texflag );
+ give_obdata_texspace(ob, &poin, NULL, NULL, NULL);
uiDefButBitI(block, TOG, AUTOSPACE, B_AUTOTEX, "AutoTexSpace", 143,15,140,19, poin, 0, 0, 0, 0, "Adjusts active object's texture space automatically when transforming object");
sprintf(str,"%d Mat ", ob->totcol);
Modified: trunk/blender/source/blender/src/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/src/transform_conversions.c 2008-04-01 11:08:48 UTC (rev 14305)
+++ trunk/blender/source/blender/src/transform_conversions.c 2008-04-01 11:14:34 UTC (rev 14306)
@@ -284,6 +284,7 @@
TransData *td;
Object *ob;
ID *id;
+ int *texflag;
ob= OBACT;
@@ -311,27 +312,9 @@
Mat3Ortho(td->axismtx);
Mat3Inv(td->smtx, td->mtx);
- if( GS(id->name)==ID_ME) {
- Mesh *me= ob->data;
- me->texflag &= ~AUTOSPACE;
- td->loc= me->loc;
- td->ext->rot= me->rot;
- td->ext->size= me->size;
+ if (give_obdata_texspace(ob, &texflag, &td->loc, &td->ext->size, &td->ext->rot)) {
+ *texflag &= ~AUTOSPACE;
}
- else if( GS(id->name)==ID_CU) {
- Curve *cu= ob->data;
- cu->texflag &= ~CU_AUTOSPACE;
- td->loc= cu->loc;
- td->ext->rot= cu->rot;
- td->ext->size= cu->size;
- }
- else if( GS(id->name)==ID_MB) {
- MetaBall *mb= ob->data;
- mb->texflag &= ~MB_AUTOSPACE;
- td->loc= mb->loc;
- td->ext->rot= mb->rot;
- td->ext->size= mb->size;
- }
VECCOPY(td->iloc, td->loc);
VECCOPY(td->ext->irot, td->ext->rot);
More information about the Bf-blender-cvs
mailing list