khora_data/ecs/components/serializable/
transform.rs

1// Copyright 2025 eraflo
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15//! Serializable representation of Transform component.
16
17use bincode::{Decode, Encode};
18use khora_core::math::{Quaternion, Vec3};
19use serde::{Deserialize, Serialize};
20
21/// Serializable representation of a `Transform` component.
22#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize, Encode, Decode)]
23pub struct SerializableTransform {
24    /// Position of the entity in 3D space.
25    pub translation: Vec3,
26    /// Rotation of the entity in 3D space.
27    pub rotation: Quaternion,
28    /// Scale of the entity in 3D space.
29    pub scale: Vec3,
30}