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:
@@ -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];
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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) */
|
||||
|
@@ -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]);
|
||||
|
||||
|
@@ -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 */
|
||||
|
||||
|
@@ -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");
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user