def exec_coupledsolve(self, *args): keyframes = self.global_extractor.get_n_keyframes(self.n_globals) n_keyframes = len(keyframes) interps = [] for name in self.curves.keys(): for dim in self.dimensions[name].keys(): if not self.dimensions[name][dim]: continue index = -1 if dim == "rx": index = 1 if dim == "ry": index = 2 if dim == "rz": index = 3 curve = [] for i in range(len(Motion.mocap["single"][name])): curve.append([Motion.mocap["single"][name].item(i, 0), Motion.mocap["single"][name].item(i, index)]) curve = np.array(curve) interps += global_fitting.coupled_solve( curve , keyframes , self.alpha , self.beta , 100) for i in range(len(interps)): seg = interps[i] if len(seg.curve) <= 3: interps[i] = interp_f.line(seg.curve, 100) self.interps = interps self.app.update() return interps
def exec_oneshot(self, *args): keyframes = self.global_extractor.get_n_keyframes(self.n_globals) n_keyframes = len(keyframes) interps = [] for name in self.curves.keys(): for dim in self.dimensions[name].keys(): if not self.dimensions[name][dim]: continue index = -1 if dim == "rx": index = 1 if dim == "ry": index = 2 if dim == "rz": index = 3 curve = [] for i in range(len(Motion.mocap["single"][name])): curve.append([Motion.mocap["single"][name].item(i, 0), Motion.mocap["single"][name].item(i, index)]) curve = np.array(curve) for i in range(1, n_keyframes): k1 = keyframes[i-1] k2 = keyframes[i] seg_curve = curve[k1:k2+1] interp = interp_f.unconstrained(seg_curve, 100) interps.append(interp) for i in range(len(interps)): seg = interps[i] if len(seg.curve) <= 3: interps[i] = interp_f.line(seg.curve, 100) self.interps = interps self.app.update() return interps
def coupled_solve(self, curve, keyframes): interps = global_fitting.coupled_solve( curve , keyframes , self.r_straight_tangents , self.r_small_tangents , Algorithm.interp_res) for i in range(len(interps)): seg = interps[i] if len(seg.curve) <= 3: interps[i] = interp_f.line(seg.curve, Algorithm.interp_res) return interps