- set default transform center to -0.5
This commit is contained in:
1 parent
5c580dc80f
commit
dc1d5d8364
1 file changed
+23
-1
+23
-1
@@ -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> {
|
||||
|
||||
Reference in new issue
Block a user