@@ -218,15 +218,14 @@ impl SampledMethod {
218
218
/// informed by "Averaging Quaternions" from F. Landis Markley, Yang Cheng, John
219
219
/// L. Crassidis, Yaakov Oshman
220
220
/// https://www.acsu.buffalo.edu/%7Ejohnc/ave_quat07.pdf
221
- fn avg_b_to_a_offset ( & self , offset : TransformD ) -> TransformD {
222
- let mut verts = Vector3 :: zeros ( ) ;
221
+ fn avg_b_to_a_offset ( & self ) -> TransformD {
222
+ let mut vecs = Vector3 :: zeros ( ) ;
223
223
let mut quats = Matrix4 :: zeros ( ) ;
224
224
225
225
for samp in self . samples . iter ( ) {
226
- //TODO:validate
227
- let delta = ( offset * samp. b ) . inverse ( ) * samp. a ;
226
+ let delta = samp. b . inverse ( ) * samp. a ;
228
227
229
- verts += delta. origin ;
228
+ vecs += delta. origin ;
230
229
231
230
let mut q = UnitQuaternion :: from_rotation_matrix ( & delta. basis ) ;
232
231
if q. w < 0.0 {
@@ -237,7 +236,7 @@ impl SampledMethod {
237
236
quats += v * v. adjoint ( ) ;
238
237
}
239
238
240
- let out_pos = verts . scale ( 1.0 / self . samples . len ( ) as f64 ) ;
239
+ let out_pos = vecs . scale ( 1.0 / self . samples . len ( ) as f64 ) ;
241
240
242
241
let eigen = quats. symmetric_eigen ( ) ;
243
242
let e0 = eigen. eigenvectors . column ( 0 ) ;
@@ -306,7 +305,7 @@ impl Calibrator for SampledMethod {
306
305
dst_origin. set_offset ( ( offset * dst_root) . into ( ) ) ?;
307
306
308
307
if self . maintain {
309
- let offset = self . avg_b_to_a_offset ( offset ) ;
308
+ let offset = self . avg_b_to_a_offset ( ) ;
310
309
311
310
match data. save_calibration ( self . src_dev , self . dst_dev , offset, OffsetType :: Device ) {
312
311
Ok ( _) => log:: info!(
0 commit comments