{"id":"affine2d-apply","version":"1.0.0","description":"Apply one exact rational 2D affine map to bounded points or free vectors.","supported_operations":["apply affine transform to points","transform 2D rational coordinates","apply affine map to vectors","exact point coordinate transformation","batch affine coordinate mapping","distinguish point and vector transforms"],"unsupported_operations":["projective coordinate transforms","floating point geometry"],"semantics":["Points include translation; vectors do not.","Array order is preserved.","Rationals are canonical reduced strings."],"limits":{"max_input_bytes":65536,"max_rational_chars":256,"max_items":256,"max_output_bytes":65536},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["transform","kind","values"],"properties":{"transform":{"type":"object","additionalProperties":false,"required":["a","b","c","d","tx","ty"],"properties":{"a":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"},"b":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"},"c":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"},"d":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"},"tx":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"},"ty":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"}}},"kind":{"type":"string","enum":["point","vector"]},"values":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["x","y"],"properties":{"x":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"},"y":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"}}}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["kind","values","reference"],"properties":{"kind":{"type":"string","enum":["point","vector"]},"values":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["x","y"],"properties":{"x":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"},"y":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"}}}},"reference":{"type":"string","const":"Foley et al., Computer Graphics: Principles and Practice, affine transformations (2nd ed., 1990)"}}},"examples":[{"input":{"transform":{"a":"1","b":"0","c":"0","d":"1","tx":"2","ty":"-3"},"kind":"point","values":[{"x":"1","y":"1"}]},"output":{"kind":"point","values":[{"x":"3","y":"-2"}],"reference":"Foley et al., Computer Graphics: Principles and Practice, affine transformations (2nd ed., 1990)"}},{"input":{"transform":{"a":"1","b":"0","c":"0","d":"1","tx":"2","ty":"-3"},"kind":"vector","values":[{"x":"1","y":"1"}]},"output":{"kind":"vector","values":[{"x":"1","y":"1"}],"reference":"Foley et al., Computer Graphics: Principles and Practice, affine transformations (2nd ed., 1990)"}}],"execute_url":"/v1/tools/affine2d-apply/versions/1.0.0/execute"}