pub struct LaserPoint {
pub x: f32,
pub y: f32,
pub r: u16,
pub g: u16,
pub b: u16,
pub intensity: u16,
}Expand description
A DAC-agnostic laser point with full-precision f32 coordinates.
Coordinates are normalized:
- x: -1.0 (left) to 1.0 (right)
- y: -1.0 (bottom) to 1.0 (top)
Colors are 16-bit (0-65535) to support high-resolution DACs. DACs with lower resolution (8-bit) will downscale automatically.
This allows each DAC to convert to its native format:
- Helios: 12-bit unsigned (0-4095), inverted
- EtherDream: 16-bit signed (-32768 to 32767)
Fields§
§x: f32X coordinate, -1.0 to 1.0
y: f32Y coordinate, -1.0 to 1.0
r: u16Red channel (0-65535)
g: u16Green channel (0-65535)
b: u16Blue channel (0-65535)
intensity: u16Intensity (0-65535)
Implementations§
Trait Implementations§
Source§impl Clone for LaserPoint
impl Clone for LaserPoint
Source§fn clone(&self) -> LaserPoint
fn clone(&self) -> LaserPoint
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LaserPoint
impl Debug for LaserPoint
Source§impl Default for LaserPoint
impl Default for LaserPoint
Source§fn default() -> LaserPoint
fn default() -> LaserPoint
Source§impl From<&LaserPoint> for DacPoint
impl From<&LaserPoint> for DacPoint
Source§fn from(p: &LaserPoint) -> Self
fn from(p: &LaserPoint) -> Self
Convert a LaserPoint to an Ether Dream DacPoint.
LaserPoint uses f32 coordinates (-1.0 to 1.0) and u16 colors (0-65535). Ether Dream uses i16 signed coordinates and u16 colors (direct mapping). Coordinates are inverted to match hardware orientation.
Source§impl From<&LaserPoint> for Point
impl From<&LaserPoint> for Point
Source§fn from(p: &LaserPoint) -> Self
fn from(p: &LaserPoint) -> Self
Convert a LaserPoint to a Helios Point.
LaserPoint uses f32 coordinates (-1.0 to 1.0) and u16 colors (0-65535).
Helios uses u16 12-bit coordinates (0-4095) with inverted axes and u8 colors.
Source§impl From<&LaserPoint> for Point
impl From<&LaserPoint> for Point
Source§fn from(p: &LaserPoint) -> Self
fn from(p: &LaserPoint) -> Self
Convert a LaserPoint to a LaserCube WiFi Point.
LaserPoint uses f32 coordinates (-1.0 to 1.0) and u16 colors (0-65535). LaserCube WiFi uses 12-bit coordinates (0-4095) with inverted Y axis and non-inverted X axis (X is mirrored relative to other backends), and 12-bit colors.
Source§impl From<&LaserPoint> for PointXyrgbi
impl From<&LaserPoint> for PointXyrgbi
Source§fn from(p: &LaserPoint) -> Self
fn from(p: &LaserPoint) -> Self
Convert a LaserPoint to an IDN PointXyrgbi.
LaserPoint uses f32 coordinates (-1.0 to 1.0) and u16 colors (0-65535). IDN PointXyrgbi uses i16 signed coordinates (-32768 to 32767) and u8 colors. Coordinates are inverted to match hardware orientation.
Source§impl From<&LaserPoint> for Sample
impl From<&LaserPoint> for Sample
Source§fn from(p: &LaserPoint) -> Self
fn from(p: &LaserPoint) -> Self
Convert a LaserPoint to a LaserCube USB Sample.
LaserPoint uses f32 coordinates (-1.0 to 1.0) and u16 colors (0-65535). LaserCube USB uses 12-bit unsigned coordinates (0-4095) and u8 colors.
Source§impl PartialEq for LaserPoint
impl PartialEq for LaserPoint
Source§fn eq(&self, other: &LaserPoint) -> bool
fn eq(&self, other: &LaserPoint) -> bool
self and other values to be equal, and is used by ==.