open_dis_rust/common/
euler_angles.rs1use bytes::{Buf, BufMut, BytesMut};
8
9#[derive(Copy, Clone, Debug, Default)]
10pub struct EulerAngles {
12 pub psi: f32,
14 pub theta: f32,
16 pub phi: f32,
18}
19
20impl EulerAngles {
21 #[must_use]
22 #[allow(clippy::similar_names)]
23 pub fn new(psi: f32, theta: f32, phi: f32) -> Self {
24 EulerAngles { psi, theta, phi }
25 }
26
27 pub fn serialize(&self, buf: &mut BytesMut) {
28 buf.put_f32(self.psi);
29 buf.put_f32(self.theta);
30 buf.put_f32(self.phi);
31 }
32
33 pub fn decode(buf: &mut BytesMut) -> EulerAngles {
34 EulerAngles {
35 psi: buf.get_f32(),
36 theta: buf.get_f32(),
37 phi: buf.get_f32(),
38 }
39 }
40}