extends Resource class_name SummerDayCanvasState signal fill_transform_changed(fill_transform) signal canvas_transform_changed(canvas_transform) signal view_transform_changed(view_transform) var rect_size: Vector2 var fill_transform := Transform2D.IDENTITY var canvas_transform := Transform2D.IDENTITY var view_transform := Transform2D.IDENTITY # fill_transform * canvas_transform func _init(): connect("fill_transform_changed", self, "_update_view_transformation") connect("canvas_transform_changed", self, "_update_view_transformation") func update_fill_transform(scene): if scene == null: fill_transform = Transform2D.IDENTITY else: var aspect_ratio = scene.aspect_ratio.x / scene.aspect_ratio.y var size_ratio = rect_size.x / rect_size.y var scale var translation = Vector2.ZERO if aspect_ratio <= size_ratio: scale = rect_size.y print(rect_size.y) translation.x = rect_size.x * 0.5 - aspect_ratio * scale * 0.5 print(rect_size.x * 0.5) print(aspect_ratio * scale * 0.5) print(translation) else: scale = rect_size.x / aspect_ratio translation.y = rect_size.y * 0.5 - scale * 0.5 fill_transform = Transform2D.IDENTITY.scaled(Vector2(scale, scale)) fill_transform = fill_transform.translated(translation) fill_transform = Transform2D( Vector2(scale, 0.0), Vector2(0.0, scale), translation ) print(fill_transform) emit_signal("fill_transform_changed", fill_transform) func _update_view_transformation(transform): print("DoWeReach?") view_transform = fill_transform * canvas_transform emit_signal("view_transform_changed", view_transform)