Support applying scale for font objects
This commit is contained in:
parent
e302105981
commit
e0c05a1e6a
@ -382,7 +382,7 @@ static int apply_objects_internal(bContext *C, ReportList *reports, bool apply_l
|
||||
/* first check if we can execute */
|
||||
CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects)
|
||||
{
|
||||
if (ELEM(ob->type, OB_MESH, OB_ARMATURE, OB_LATTICE, OB_MBALL, OB_CURVE, OB_SURF)) {
|
||||
if (ELEM(ob->type, OB_MESH, OB_ARMATURE, OB_LATTICE, OB_MBALL, OB_CURVE, OB_SURF, OB_FONT)) {
|
||||
ID *obdata = ob->data;
|
||||
if (ID_REAL_USERS(obdata) > 1) {
|
||||
BKE_reportf(reports, RPT_ERROR,
|
||||
@ -418,6 +418,15 @@ static int apply_objects_internal(bContext *C, ReportList *reports, bool apply_l
|
||||
changed = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (ob->type == OB_FONT) {
|
||||
if (apply_rot || apply_loc) {
|
||||
BKE_reportf(reports, RPT_ERROR,
|
||||
"Font's can only have scale applied: \"%s\"",
|
||||
ob->id.name + 2);
|
||||
changed = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
CTX_DATA_END;
|
||||
|
||||
@ -496,6 +505,22 @@ static int apply_objects_internal(bContext *C, ReportList *reports, bool apply_l
|
||||
scale = mat3_to_scale(rsmat);
|
||||
BKE_curve_transform_ex(cu, mat, true, scale);
|
||||
}
|
||||
else if (ob->type == OB_FONT) {
|
||||
Curve *cu = ob->data;
|
||||
int i;
|
||||
|
||||
scale = mat3_to_scale(rsmat);
|
||||
|
||||
for (i = 0; i < cu->totbox; i++) {
|
||||
TextBox *tb = &cu->tb[i];
|
||||
tb->x *= scale;
|
||||
tb->y *= scale;
|
||||
tb->w *= scale;
|
||||
tb->h *= scale;
|
||||
}
|
||||
|
||||
cu->fsize *= scale;
|
||||
}
|
||||
else if (ob->type == OB_CAMERA) {
|
||||
MovieClip *clip = BKE_object_movieclip_get(scene, ob, false);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user