add a new object member to store the dsize, since with my recent commit broke forward compatibility. now the new values are copied into 'dscale' and existing ones remain.

this is annoying since now we have dsize and dscale, will look into a way to deprecate struct members next.
This commit is contained in:
2011-12-04 03:35:54 +00:00
parent d15c5e51a1
commit 3fdc28b736
12 changed files with 36 additions and 32 deletions

View File

@@ -128,7 +128,7 @@ void object_tfm_restore(struct Object *ob, void *obtfm_pt);
typedef struct ObjectTfmProtectedChannels {
float loc[3], dloc[3];
float size[3], dsize[3];
float size[3], dscale[3];
float rot[3], drot[3];
float quat[4], dquat[4];
float rotAxis[3], drotAxis[3];

View File

@@ -462,7 +462,7 @@ void end_latt_deform(Object *ob)
so we store in latmat transform from path coord inside object
*/
typedef struct {
float dmin[3], dmax[3], dsize, dloc[3];
float dmin[3], dmax[3], dscale, dloc[3];
float curvespace[4][4], objectspace[4][4], objectspace3[3][3];
int no_rot_axis;
} CurveDeform;

View File

@@ -120,7 +120,7 @@ void clear_workob(Object *workob)
memset(workob, 0, sizeof(Object));
workob->size[0]= workob->size[1]= workob->size[2]= 1.0f;
workob->dsize[0]= workob->dsize[1]= workob->dsize[2]= 1.0f;
workob->dscale[0]= workob->dscale[1]= workob->dscale[2]= 1.0f;
workob->rotmode= ROT_MODE_EUL;
}
@@ -775,7 +775,7 @@ Object *add_only_object(int type, const char *name)
ob->col[3]= 1.0;
ob->size[0]= ob->size[1]= ob->size[2]= 1.0;
ob->dsize[0]= ob->dsize[1]= ob->dsize[2]= 1.0;
ob->dscale[0]= ob->dscale[1]= ob->dscale[2]= 1.0;
/* objects should default to having Euler XYZ rotations,
* but rotations default to quaternions
@@ -1443,7 +1443,7 @@ void object_make_proxy(Object *ob, Object *target, Object *gob)
void object_scale_to_mat3(Object *ob, float mat[][3])
{
float vec[3];
mul_v3_v3v3(vec, ob->size, ob->dsize);
mul_v3_v3v3(vec, ob->size, ob->dscale);
size_to_mat3( mat,vec);
}
@@ -1529,7 +1529,7 @@ void object_tfm_protected_backup(const Object *ob,
TFMCPY3D(loc);
TFMCPY3D(dloc);
TFMCPY3D(size);
TFMCPY3D(dsize);
TFMCPY3D(dscale);
TFMCPY3D(rot);
TFMCPY3D(drot);
TFMCPY4D(quat);
@@ -1559,7 +1559,7 @@ void object_tfm_protected_restore(Object *ob,
if (protectflag & (OB_LOCK_SCALEX<<i)) {
ob->size[i]= obtfm->size[i];
ob->dsize[i]= obtfm->dsize[i];
ob->dscale[i]= obtfm->dscale[i];
}
if (protectflag & (OB_LOCK_ROTX<<i)) {
@@ -1606,9 +1606,9 @@ void object_apply_mat4(Object *ob, float mat[][4], const short use_compat, const
sub_v3_v3(ob->loc, ob->dloc);
if (ob->dsize[0] != 0.0f) ob->size[0] /= ob->dsize[0];
if (ob->dsize[1] != 0.0f) ob->size[1] /= ob->dsize[1];
if (ob->dsize[2] != 0.0f) ob->size[2] /= ob->dsize[2];
if (ob->dscale[0] != 0.0f) ob->size[0] /= ob->dscale[0];
if (ob->dscale[1] != 0.0f) ob->size[1] /= ob->dscale[1];
if (ob->dscale[2] != 0.0f) ob->size[2] /= ob->dscale[2];
/* object_mat3_to_rot handles delta rotations */
}
@@ -2417,7 +2417,7 @@ void BKE_scene_foreach_display_point(
/* copied from DNA_object_types.h */
typedef struct ObTfmBack {
float loc[3], dloc[3], orig[3];
float size[3], dsize[3]; /* scale and delta scale */
float size[3], dscale[3]; /* scale and delta scale */
float rot[3], drot[3]; /* euler rotation */
float quat[4], dquat[4]; /* quaternion rotation */
float rotAxis[3], drotAxis[3]; /* axis angle rotation - axis part */
@@ -2435,7 +2435,7 @@ void *object_tfm_backup(Object *ob)
copy_v3_v3(obtfm->dloc, ob->dloc);
copy_v3_v3(obtfm->orig, ob->orig);
copy_v3_v3(obtfm->size, ob->size);
copy_v3_v3(obtfm->dsize, ob->dsize);
copy_v3_v3(obtfm->dscale, ob->dscale);
copy_v3_v3(obtfm->rot, ob->rot);
copy_v3_v3(obtfm->drot, ob->drot);
copy_qt_qt(obtfm->quat, ob->quat);
@@ -2459,7 +2459,7 @@ void object_tfm_restore(Object *ob, void *obtfm_pt)
copy_v3_v3(ob->dloc, obtfm->dloc);
copy_v3_v3(ob->orig, obtfm->orig);
copy_v3_v3(ob->size, obtfm->size);
copy_v3_v3(ob->dsize, obtfm->dsize);
copy_v3_v3(ob->dscale, obtfm->dscale);
copy_v3_v3(ob->rot, obtfm->rot);
copy_v3_v3(ob->drot, obtfm->drot);
copy_qt_qt(ob->quat, obtfm->quat);

View File

@@ -1121,18 +1121,18 @@ void blend_m3_m3m3(float out[][3], float dst[][3], float src[][3], const float s
{
float srot[3][3], drot[3][3];
float squat[4], dquat[4], fquat[4];
float ssize[3], dsize[3], fsize[3];
float sscale[3], dscale[3], fsize[3];
float rmat[3][3], smat[3][3];
mat3_to_rot_size(drot, dsize, dst);
mat3_to_rot_size(srot, ssize, src);
mat3_to_rot_size(drot, dscale, dst);
mat3_to_rot_size(srot, sscale, src);
mat3_to_quat(dquat, drot);
mat3_to_quat(squat, srot);
/* do blending */
interp_qt_qtqt(fquat, dquat, squat, srcweight);
interp_v3_v3v3(fsize, dsize, ssize, srcweight);
interp_v3_v3v3(fsize, dscale, sscale, srcweight);
/* compose new matrix */
quat_to_mat3(rmat,fquat);
@@ -1145,10 +1145,10 @@ void blend_m4_m4m4(float out[][4], float dst[][4], float src[][4], const float s
float sloc[3], dloc[3], floc[3];
float srot[3][3], drot[3][3];
float squat[4], dquat[4], fquat[4];
float ssize[3], dsize[3], fsize[3];
float sscale[3], dscale[3], fsize[3];
mat4_to_loc_rot_size(dloc, drot, dsize, dst);
mat4_to_loc_rot_size(sloc, srot, ssize, src);
mat4_to_loc_rot_size(dloc, drot, dscale, dst);
mat4_to_loc_rot_size(sloc, srot, sscale, src);
mat3_to_quat(dquat, drot);
mat3_to_quat(squat, srot);
@@ -1156,7 +1156,7 @@ void blend_m4_m4m4(float out[][4], float dst[][4], float src[][4], const float s
/* do blending */
interp_v3_v3v3(floc, dloc, sloc, srcweight);
interp_qt_qtqt(fquat, dquat, squat, srcweight);
interp_v3_v3v3(fsize, dsize, ssize, srcweight);
interp_v3_v3v3(fsize, dscale, sscale, srcweight);
/* compose new matrix */
loc_quat_size_to_mat4(out, floc, fquat, fsize);

View File

@@ -12617,10 +12617,10 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
if ( (ob->dsize[i] == 0.0f) || /* simple case, user never touched dsize */
(ob->size[i] == 0.0f)) /* cant scale the dsize to give a non zero result, so fallback to 1.0f */
{
ob->dsize[i]= 1.0f;
ob->dscale[i]= 1.0f;
}
else {
ob->size[i]= (ob->size[i] + ob->dsize[i]) / ob->size[i];
ob->dscale[i]= (ob->size[i] + ob->dsize[i]) / ob->size[i];
}
}
}

View File

@@ -1142,7 +1142,7 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event)
}
else if(event==3) { /* size */
copy_v3_v3(base->object->size, ob->size);
copy_v3_v3(base->object->dsize, ob->dsize);
copy_v3_v3(base->object->dscale, ob->dscale);
}
else if(event==4) { /* drawtype */
base->object->dt= ob->dt;

View File

@@ -188,15 +188,15 @@ static void object_clear_scale(Object *ob)
{
/* clear scale factors which are not locked */
if ((ob->protectflag & OB_LOCK_SCALEX)==0) {
ob->dsize[0]= 1.0f;
ob->dscale[0]= 1.0f;
ob->size[0]= 1.0f;
}
if ((ob->protectflag & OB_LOCK_SCALEY)==0) {
ob->dsize[1]= 1.0f;
ob->dscale[1]= 1.0f;
ob->size[1]= 1.0f;
}
if ((ob->protectflag & OB_LOCK_SCALEZ)==0) {
ob->dsize[2]= 1.0f;
ob->dscale[2]= 1.0f;
ob->size[2]= 1.0f;
}
}

View File

@@ -130,7 +130,7 @@ typedef struct TransDataExtension {
// float drotAngle; /* Initial object drotAngle, TODO: not yet implimented */
// float drotAxis[3]; /* Initial object drotAxis, TODO: not yet implimented */
float dquat[4]; /* Initial object dquat */
float dsize[3]; /* Initial object dsize */
float dscale[3]; /* Initial object dscale */
float *rot; /* Rotation of the data to transform (Faculative) */
float irot[3]; /* Initial rotation */
float *quat; /* Rotation quaternion of the data to transform (Faculative) */

View File

@@ -4314,7 +4314,7 @@ static void ObjectToTransData(TransInfo *t, TransData *td, Object *ob)
td->ext->size = ob->size;
copy_v3_v3(td->ext->isize, ob->size);
copy_v3_v3(td->ext->dsize, ob->dsize);
copy_v3_v3(td->ext->dscale, ob->dscale);
copy_v3_v3(td->center, ob->obmat[3]);

View File

@@ -140,7 +140,9 @@ typedef struct Object {
/* rot en drot have to be together! (transform('r' en 's')) */
float loc[3], dloc[3], orig[3];
float size[3], dsize[3]; /* scale and delta scale */
float size[3]; /* scale infact */
float dsize[3]; /* DEPRECATED, 2.60 and older only */
float dscale[3]; /* ack!, changing */
float rot[3], drot[3]; /* euler rotation */
float quat[4], dquat[4]; /* quaternion rotation */
float rotAxis[3], drotAxis[3]; /* axis angle rotation - axis part */
@@ -158,6 +160,8 @@ typedef struct Object {
unsigned int lay; /* copy of Base's layer in the scene */
int pad6;
short flag; /* copy of Base */
short colbits; /* deprecated */

View File

@@ -2071,7 +2071,7 @@ static void rna_def_object(BlenderRNA *brna)
#endif
prop= RNA_def_property(srna, "delta_scale", PROP_FLOAT, PROP_XYZ);
RNA_def_property_float_sdna(prop, NULL, "dsize");
RNA_def_property_float_sdna(prop, NULL, "dscale");
RNA_def_property_ui_text(prop, "Delta Scale", "Extra scaling added to the scale of the object");
RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");

View File

@@ -2391,7 +2391,7 @@ static void do_displacement(Render *re, ObjectRen *obr, float mat[][4], float im
/* Object Size with parenting */
obt=obr->ob;
while(obt){
mul_v3_v3v3(temp, obt->size, obt->dsize);
mul_v3_v3v3(temp, obt->size, obt->dscale);
scale[0]*=temp[0]; scale[1]*=temp[1]; scale[2]*=temp[2];
obt=obt->parent;
}