mirror of
https://github.com/bevyengine/bevy
synced 2024-11-22 20:53:53 +00:00
Add methods for calculating the size and postion of UI nodes (#7930)
Co-authored-by: François <mockersf@gmail.com>
This commit is contained in:
parent
e22572d9a3
commit
f554700108
1 changed files with 17 additions and 0 deletions
|
@ -7,6 +7,7 @@ use bevy_render::{
|
|||
color::Color,
|
||||
texture::{Image, DEFAULT_IMAGE_HANDLE},
|
||||
};
|
||||
use bevy_transform::prelude::GlobalTransform;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::ops::{Div, DivAssign, Mul, MulAssign};
|
||||
use thiserror::Error;
|
||||
|
@ -26,6 +27,22 @@ impl Node {
|
|||
pub fn size(&self) -> Vec2 {
|
||||
self.calculated_size
|
||||
}
|
||||
|
||||
/// Returns the logical pixel coordinates of the UI node, based on its `GlobalTransform`.
|
||||
#[inline]
|
||||
pub fn logical_rect(&self, transform: &GlobalTransform) -> Rect {
|
||||
Rect::from_center_size(transform.translation().truncate(), self.size())
|
||||
}
|
||||
|
||||
/// Returns the physical pixel coordinates of the UI node, based on its `GlobalTransform` and the scale factor.
|
||||
#[inline]
|
||||
pub fn physical_rect(&self, transform: &GlobalTransform, scale_factor: f32) -> Rect {
|
||||
let rect = self.logical_rect(transform);
|
||||
Rect {
|
||||
min: rect.min / scale_factor,
|
||||
max: rect.max / scale_factor,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Node {
|
||||
|
|
Loading…
Reference in a new issue