{"id":"homography-apply","version":"1.0.0","description":"Apply an exact 2D homography to a homogeneous point or line, including points at infinity.","supported_operations":["apply homography to point","transform homogeneous line","map point at infinity","exact projective coordinate transform","apply planar perspective map","transform 2D projective entity"],"unsupported_operations":["raster image resampling","geographic coordinate conversion"],"semantics":["Canonical rationals are integers or reduced p/q strings with a positive denominator.","Homogeneous outputs are primitive integer tuples with first nonzero coordinate positive.","All arithmetic and predicates use exact BigInt cross-products; binary floating point and epsilon comparisons are never used.","Reference: Hartley & Zisserman, Multiple View Geometry, 2nd ed., Chapter 2."],"limits":{"max_input_bytes":8192,"max_rational_bytes":256,"max_output_bytes":8192,"max_tree_nodes":128},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["matrix","kind","coordinates"],"properties":{"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"}}},"kind":{"type":"string","enum":["point","line"]},"coordinates":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["kind","coordinates","classification","reference"],"properties":{"kind":{"type":"string","enum":["point","line"]},"coordinates":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"string","minLength":1,"maxLength":256,"pattern":"^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$"}},"classification":{"type":"string","enum":["finite","infinity","line"]},"reference":{"type":"string","const":"Hartley & Zisserman, Multiple View Geometry, 2nd ed., Chapter 2"}}},"examples":[{"input":{"matrix":[["1","0","0"],["0","1","0"],["0","0","1"]],"kind":"point","coordinates":["2","3","1"]},"output":{"kind":"point","coordinates":["2","3","1"],"classification":"finite","reference":"Hartley & Zisserman, Multiple View Geometry, 2nd ed., Chapter 2"}},{"input":{"matrix":[["1","0","0"],["0","1","0"],["0","0","1"]],"kind":"point","coordinates":["1","0","0"]},"output":{"kind":"point","coordinates":["1","0","0"],"classification":"infinity","reference":"Hartley & Zisserman, Multiple View Geometry, 2nd ed., Chapter 2"}}],"execute_url":"/v1/tools/homography-apply/versions/1.0.0/execute"}