From c64a866838cfe4a0b53f91d648194ee02d37c274 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Henrique?= Date: Thu, 10 Sep 2026 21:03:52 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20integrado=20o=20c=C3=A1lculo=20e=20a=20?= =?UTF-8?q?aplica=C3=A7=C3=A3o=20verificada=20do=20Crop=20na=20Adju?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - integrado o cálculo e a aplicação verificada do Crop na Adjustment Layer do zoom Resumo: - 1 arquivos alterados - 0 novos - 1 modificados - 0 removidos 1 file changed, 15 insertions(+) Arquivos: - code/engine/aplicar_montagem_incremental_prototipo.py --- .../aplicar_montagem_incremental_prototipo.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/code/engine/aplicar_montagem_incremental_prototipo.py b/code/engine/aplicar_montagem_incremental_prototipo.py index a240912..4ea48c9 100644 --- a/code/engine/aplicar_montagem_incremental_prototipo.py +++ b/code/engine/aplicar_montagem_incremental_prototipo.py @@ -127,6 +127,21 @@ def executar(caminho_do_plano: Path) -> dict[str, object]: }, ) resultado["adjustment_layer"] = camada + escala = float(alvo.get("params", {}).get("scale", 1.0)) if isinstance(alvo.get("params"), dict) else 1.0 + if escala <= 0: + raise ErroDeMontagemIncremental("A escala do zoom precisa ser maior que zero.") + recorte = max(0.0, min(49.0, 50.0 * (1.0 - (1.0 / escala)))) + resultado["crop"] = cliente.chamar( + "crop_clip", + { + "node_id": str(camada["nodeId"]), + "left": recorte, + "right": recorte, + "top": recorte, + "bottom": recorte, + "zoom": True, + }, + ) return {"ok": True, "plano_incremental": True, "resultado": resultado} finally: cliente.desconectar()