- set default transform center to -0.5

This commit is contained in:
w.pomp committed 2026-10-21 20:04:00 +02:00
1 parent 5c580dc80f
commit dc1d5d8364
1 file changed
+23 -1
+23 -1
View File
@@ -410,7 +410,7 @@ impl<D: Dimension> Default for Transform<D> {
Self {
parameters,
dparameters: vec![0f64; ndim * ndim + ndim],
center: vec![0f64; ndim],
center: vec![-0.5; ndim],
shape: vec![0usize; ndim],
dimension: PhantomData,
}
@@ -997,6 +997,28 @@ impl<D: Dimension> Transform<D> {
dimension: Default::default(),
}
}
pub fn swap_axes(&self, a: usize, b: usize) -> Self {
let mut new = self.clone();
let n = self.ndim();
let mut m = (0..n).collect::<Vec<_>>();
(m[a], m[b]) = (m[b], m[a]);
for (i, j) in (0..n).zip(m) {
if i != j {
new.parameters[i + n * j] = self.parameters[j + n * i];
new.dparameters[i + n * j] = self.dparameters[j + n * i];
new.parameters[j + n * i] = self.parameters[i + n * j];
new.dparameters[j + n * i] = self.dparameters[i + n * j];
}
}
new.parameters[n + a] = self.parameters[n + b];
new.dparameters[n + a] = self.dparameters[n + b];
new.center[a] = self.center[b];
new.center[b] = self.center[a];
new.shape[a] = self.shape[b];
new.shape[b] = self.shape[a];
new
}
}
impl Transform<Ix2> {