Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bevyengine
GitHub Repository: bevyengine/bevy
Path: blob/main/crates/bevy_transform/src/traits.rs
6595 views
1
use bevy_math::{Affine3A, Isometry3d, Mat4, Vec3};
2
3
use crate::prelude::{GlobalTransform, Transform};
4
5
/// A trait for point transformation methods.
6
pub trait TransformPoint {
7
/// Transform a point.
8
fn transform_point(&self, point: impl Into<Vec3>) -> Vec3;
9
}
10
11
impl TransformPoint for Transform {
12
#[inline]
13
fn transform_point(&self, point: impl Into<Vec3>) -> Vec3 {
14
self.transform_point(point.into())
15
}
16
}
17
18
impl TransformPoint for GlobalTransform {
19
#[inline]
20
fn transform_point(&self, point: impl Into<Vec3>) -> Vec3 {
21
self.transform_point(point.into())
22
}
23
}
24
25
impl TransformPoint for Mat4 {
26
#[inline]
27
fn transform_point(&self, point: impl Into<Vec3>) -> Vec3 {
28
self.transform_point3(point.into())
29
}
30
}
31
32
impl TransformPoint for Affine3A {
33
#[inline]
34
fn transform_point(&self, point: impl Into<Vec3>) -> Vec3 {
35
self.transform_point3(point.into())
36
}
37
}
38
39
impl TransformPoint for Isometry3d {
40
#[inline]
41
fn transform_point(&self, point: impl Into<Vec3>) -> Vec3 {
42
self.transform_point(point.into()).into()
43
}
44
}
45
46