Spaces:
Sleeping
Sleeping
| """ | |
| Simple 3D point dataclass (used by visualization and flow field). | |
| """ | |
| from __future__ import annotations | |
| from dataclasses import dataclass | |
| class Point3D: | |
| x: float | |
| y: float | |
| z: float | |
| timestamp: float = 0.0 | |
| def subtract(self, other: Point3D) -> Point3D: | |
| return Point3D(self.x - other.x, self.y - other.y, self.z - other.z, self.timestamp) | |
| def cross(self, other: Point3D) -> Point3D: | |
| return Point3D( | |
| self.y * other.z - self.z * other.y, | |
| self.z * other.x - self.x * other.z, | |
| self.x * other.y - self.y * other.x, | |
| self.timestamp, | |
| ) | |
| def length(self) -> float: | |
| return (self.x**2 + self.y**2 + self.z**2) ** 0.5 | |