Function
axis_cost
(
problem,
m1: gp_Dir,
m2: gp_Dir,
T1_0,
R1_0,
T2_0,
R2_0,
T1,
R1,
T2,
R2,
val: Optional[float] = None,
scale: float = 1,
)
Source from the content-addressed store, hash-verified
| 360 | |
| 361 | |
| 362 | def axis_cost( |
| 363 | problem, |
| 364 | m1: gp_Dir, |
| 365 | m2: gp_Dir, |
| 366 | T1_0, |
| 367 | R1_0, |
| 368 | T2_0, |
| 369 | R2_0, |
| 370 | T1, |
| 371 | R1, |
| 372 | T2, |
| 373 | R2, |
| 374 | val: Optional[float] = None, |
| 375 | scale: float = 1, |
| 376 | ) -> float: |
| 377 | |
| 378 | val = pi if val is None else val |
| 379 | |
| 380 | m1_dm = ca.DM((m1.X(), m1.Y(), m1.Z())) |
| 381 | m2_dm = ca.DM((m2.X(), m2.Y(), m2.Z())) |
| 382 | |
| 383 | d1, d2 = (Rotate(m1_dm, R1_0 + R1), Rotate(m2_dm, R2_0 + R2)) |
| 384 | |
| 385 | if val == 0: |
| 386 | dummy = d1 - d2 |
| 387 | |
| 388 | return ca.sumsqr(dummy) |
| 389 | |
| 390 | elif val == pi: |
| 391 | dummy = d1 + d2 |
| 392 | |
| 393 | return ca.sumsqr(dummy) |
| 394 | |
| 395 | dummy = ca.dot(d1, d2) - ca.cos(val) |
| 396 | |
| 397 | return dummy ** 2 |
| 398 | |
| 399 | |
| 400 | def point_in_plane_cost( |
Callers
nothing calls this directly
Tested by
no test coverage detected