Skip to content

Commit

Permalink
[#46] Improve EyewearConfig
Browse files Browse the repository at this point in the history
  • Loading branch information
Orchaldir committed Nov 1, 2023
1 parent ebeb8ed commit 87a93c6
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 5 deletions.
8 changes: 5 additions & 3 deletions rpg_tools_rendering/src/rendering/config/equipment/eyewear.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use rpg_tools_core::model::equipment::appearance::eyewear::FrameType;
/// The rendering config of the [`eyewear`](rpg_tools_core::model::equipment::appearance::eyewear::Eyewear).
#[derive(Debug, PartialEq)]
pub struct EyewearConfig {
pub bridge_factor: f32,
pub radius_factor: f32,
pub thickness_horn: f32,
pub thickness_rimmed: f32,
Expand All @@ -14,11 +15,12 @@ impl EyewearConfig {
(eye_radius as f32 * self.radius_factor) as u32
}

pub fn get_bridge_thickness(&self, frame_type: FrameType) -> f32 {
match frame_type {
pub fn get_bridge_height(&self, width: u32, frame_type: FrameType) -> u32 {
let thickness = match frame_type {
FrameType::Rimless => self.thickness_wire,
_ => self.get_frame_thickness(frame_type),
}
};
(width as f32 * self.bridge_factor * thickness) as u32
}

pub fn get_frame_thickness(&self, frame_type: FrameType) -> f32 {
Expand Down
1 change: 1 addition & 0 deletions rpg_tools_rendering/src/rendering/config/example.rs
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ pub fn create_config() -> RenderConfig {
},
},
eyewear: EyewearConfig {
bridge_factor: 0.1,
radius_factor: 1.4,
thickness_horn: 5.0,
thickness_rimmed: 3.0,
Expand Down
3 changes: 1 addition & 2 deletions rpg_tools_rendering/src/rendering/equipment/eyewear.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@ fn render_bridge(
radius: u32,
) {
let width = left.calculate_distance(right) as u32 - 2 * radius;
let height =
(width as f32 * 0.1 * config.eyewear.get_bridge_thickness(style.frame_type)) as u32;
let height = config.eyewear.get_bridge_height(width, style.frame_type);
let center = left.add(*right).div(2.0);
let aabb = AABB::with_center(center, Size2d::new(width, height));
let options = RenderOptions::no_line(WebColor::from_color(style.frame_color));
Expand Down

0 comments on commit 87a93c6

Please sign in to comment.