| 8 | |
| 9 | namespace WireProfileHelper { |
| 10 | MatrixFr rotate_loop_2D(const MatrixFr& loop, const VectorF& dir) { |
| 11 | const Float angle = atan2(-dir[0], dir[1]); |
| 12 | Eigen::Rotation2D<Float> rotation(angle); |
| 13 | return (rotation.toRotationMatrix() * loop.transpose()).transpose(); |
| 14 | } |
| 15 | |
| 16 | MatrixFr rotate_loop_3D(const MatrixFr& loop, const VectorF& dir) { |
| 17 | const Vector3F X(1, 0, 0); |