MCPcopy Create free account
hub / github.com/Notgnoshi/generative / build_transform

Function build_transform

tools/transform.rs:110–154  ·  view source on GitHub ↗
(args: &CmdlineOptions, center: Coord)

Source from the content-addressed store, hash-verified

108}
109
110fn build_transform(args: &CmdlineOptions, center: Coord) -> AffineTransform {
111 let mut transform = AffineTransform::rotate(args.rotation, center);
112
113 if let Some(scale) = args.scale {
114 transform = transform.scaled(scale, scale, center);
115 }
116 match (args.scale_x, args.scale_y) {
117 (Some(x), Some(y)) => {
118 transform = transform.scaled(x, y, center);
119 }
120 (Some(x), None) => {
121 transform = transform.scaled(x, 1.0, center);
122 }
123 (None, Some(y)) => {
124 transform = transform.scaled(1.0, y, center);
125 }
126 (None, None) => {}
127 }
128 match (args.offset_x, args.offset_y) {
129 (Some(x), Some(y)) => {
130 transform = transform.translated(x, y);
131 }
132 (Some(x), None) => {
133 transform = transform.translated(x, 0.0);
134 }
135 (None, Some(y)) => {
136 transform = transform.translated(0.0, y);
137 }
138 (None, None) => {}
139 }
140 match (args.skew_x, args.skew_y) {
141 (Some(x), Some(y)) => {
142 transform = transform.skewed(x, y, center);
143 }
144 (Some(x), None) => {
145 transform = transform.skewed(x, 0.0, center);
146 }
147 (None, Some(y)) => {
148 transform = transform.skewed(0.0, y, center);
149 }
150 (None, None) => {}
151 }
152
153 transform
154}
155
156fn bounding_box(geometries: &[Geometry]) -> Rect {
157 // Calculate the center of the bounding box; needed to build the AffineTransform

Callers 1

affine_transformFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected