Table of Contents

Class ManipulationTransformCalculator

Namespace
GridPlacement.GDScript
Assembly
MoonBark.GridPlacement.GDScript.dll

ManipulationTransformCalculator - Pure logic component for manipulation transform calculations.\n\nResponsibilities: - Calculate final transforms for placed objects after manipulation - Preserve flip semantics (negative scale values) during transform application - Provide testable, isolated transform logic separate from system dependencies\n\nThis component contains NO dependencies on: - Scene tree - Signals - State management - Input handling\n\nAll methods are pure functions that take inputs and return outputs.

class ManipulationTransformCalculator extends RefCounted
ManipulationTransformCalculator

Properties

final_position

var final_position: Vector2 = manipulation_parent.global_position

accumulated_rotation

var accumulated_rotation: float = manipulation_parent.rotation

accumulated_scale

var accumulated_scale: Vector2 = manipulation_parent.scale

issues

var issues: Array[String] = []

scale

var scale: Vector2 = transforms["scale"]

pos

var pos: Vector2 = transforms["position"]

rot

var rot: float = transforms["rotation"]

scale

var scale: Vector2 = transforms["scale"]

differences

var differences: Dictionary = {}

pos_diff

var pos_diff: Vector2 = expected["position"] - actual["position"]

rot_diff

var rot_diff: float = expected["rotation"] - actual["rotation"]

scale_diff

var scale_diff: Vector2 = expected["scale"] - actual["scale"]

Methods

calculate_final_transform

static func calculate_final_transform(preview_root: Node2D, manipulation_parent: Node2D) -> Dictionary:

Parameters

preview_root
manipulation_parent

Returns

validate_transform_preservation

static func validate_transform_preservation(calculated_transforms: Dictionary) -> Dictionary:

Parameters

calculated_transforms

Returns

format_transforms_debug

static func format_transforms_debug(transforms: Dictionary) -> String:

Parameters

transforms

Returns

extract_transform_components

static func extract_transform_components(transform: Transform2D) -> Dictionary:

Parameters

transform

Returns

compare_transforms

static func compare_transforms( expected: Dictionary,