- fixed Film Plugin (Tool) negative generation to have the black background in sync with the actual geometry when transformations are applied

- fixed Film Plugin (Tool) to have mirroring done only with reference 'center' regardless of what is selected in the UI
- in Film Plugin now multiple adjustments can be applied at the same time and correctly
This commit is contained in:
Marius
2021-06-19 15:44:40 +03:00
parent ba59e9ed58
commit 91bdcf674e
3 changed files with 26 additions and 17 deletions

View File

@@ -671,6 +671,7 @@ class Film(AppTool):
elif reference_point == 'bottomright':
ref_val = (xmax, ymin)
# Transform the box object geometry
transformed_box_geo = box_geo
if scale_factor_x and not scale_factor_y:
@@ -690,11 +691,11 @@ class Film(AppTool):
if mirror:
if mirror == 'x':
transformed_box_geo = affinity.scale(transformed_box_geo, 1.0, -1.0, origin=ref_val)
transformed_box_geo = affinity.scale(transformed_box_geo, 1.0, -1.0, origin='center')
if mirror == 'y':
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, 1.0, origin=ref_val)
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, 1.0, origin='center')
if mirror == 'both':
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, -1.0, origin=ref_val)
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, -1.0, origin='center')
bounds = transformed_box_geo.bounds
size = bounds[2] - bounds[0], bounds[3] - bounds[1]
@@ -703,7 +704,8 @@ class Film(AppTool):
scale_factor_x=scale_factor_x, scale_factor_y=scale_factor_y,
skew_factor_x=skew_factor_x, skew_factor_y=skew_factor_y,
mirror=mirror,
scale_reference=reference_point, skew_reference=reference_point
scale_reference=reference_point, skew_reference=reference_point,
mirror_reference='center'
)
uom = obj.units.lower()
@@ -967,11 +969,11 @@ class Film(AppTool):
if mirror:
if mirror == 'x':
transformed_box_geo = affinity.scale(transformed_box_geo, 1.0, -1.0, origin=ref_val)
transformed_box_geo = affinity.scale(transformed_box_geo, 1.0, -1.0, origin='center')
if mirror == 'y':
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, 1.0, origin=ref_val)
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, 1.0, origin='center')
if mirror == 'both':
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, -1.0, origin=ref_val)
transformed_box_geo = affinity.scale(transformed_box_geo, -1.0, -1.0, origin='center')
bounds = transformed_box_geo.bounds
size = bounds[2] - bounds[0], bounds[3] - bounds[1]
@@ -980,7 +982,8 @@ class Film(AppTool):
scale_factor_x=scale_factor_x, scale_factor_y=scale_factor_y,
skew_factor_x=skew_factor_x, skew_factor_y=skew_factor_y,
mirror=mirror,
scale_reference=reference_point, skew_reference=reference_point
scale_reference=reference_point, skew_reference=reference_point,
mirror_reference='center'
)
# Change the attributes of the exported SVG