| 130 | // ============================================== |
| 131 | |
| 132 | Dipole3D Terathon::Wedge(const RoundPoint3D& a, const RoundPoint3D& b) |
| 133 | { |
| 134 | return (Dipole3D(a.w * b.x - a.x * b.w, |
| 135 | a.w * b.y - a.y * b.w, |
| 136 | a.w * b.z - a.z * b.w, |
| 137 | |
| 138 | a.y * b.z - a.z * b.y, |
| 139 | a.z * b.x - a.x * b.z, |
| 140 | a.x * b.y - a.y * b.x, |
| 141 | |
| 142 | a.x * b.u - a.u * b.x, |
| 143 | a.y * b.u - a.u * b.y, |
| 144 | a.z * b.u - a.u * b.z, |
| 145 | a.w * b.u - a.u * b.w)); |
| 146 | } |
| 147 | |
| 148 | Line3D Terathon::Wedge(const FlatPoint3D& p, const RoundPoint3D& a) |
| 149 | { |