- 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 {
|
Self {
|
||||||
parameters,
|
parameters,
|
||||||
dparameters: vec![0f64; ndim * ndim + ndim],
|
dparameters: vec![0f64; ndim * ndim + ndim],
|
||||||
center: vec![0f64; ndim],
|
center: vec![-0.5; ndim],
|
||||||
shape: vec![0usize; ndim],
|
shape: vec![0usize; ndim],
|
||||||
dimension: PhantomData,
|
dimension: PhantomData,
|
||||||
}
|
}
|
||||||
@@ -997,6 +997,28 @@ impl<D: Dimension> Transform<D> {
|
|||||||
dimension: Default::default(),
|
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> {
|
impl Transform<Ix2> {
|
||||||
|
|||||||
Reference in new issue
Block a user