Sprint 29/30 — 지점부 격벽 + 거더 솟음
Sprint 29: Diaphragm (지점부 격벽). - SceneParams.show_diaphragms 토글 (default true). - 모든 지점(교대+교각) 에서 인접 거더 사이 RC 벽 배치: · 두께(span 방향): 300mm · 높이: girder_h (거더 soffit ~ top) · 폭: spacing - 250mm (web clearance 양쪽 125mm) · 지점 Z 기준 중앙 배치, skew 회전 동시 적용 - build_bridge_scene + build_selectable_scene 양쪽 구현. - COL_DIAPHRAGM 색상 추가 (concrete 계열). - UI: "격벽 (Diaphragm)" 체크박스. Sprint 30: Camber (거더 솟음). - SceneParams.camber_mid_mm (0~200mm, step 5mm) 추가. - apply_camber_mesh(mesh, z0, z1, mid_mm) 헬퍼: u = z - z0 ∈ [0, span], y_off = 4·mid·u·(span-u)/span² (포물선). 지점(u=0 또는 u=span) 에서는 0, 중앙 u=span/2 에서 최대 mid. - 거더·데크에 경간마다 독립 적용. 다경간 교량도 경간별 정확한 solog. - UI: "솟음 (mm)" 슬라이더. ProjectFile: show_diaphragms + camber_mid_mm 필드 (default 값으로 v2 호환). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -38,6 +38,12 @@ pub struct ProjectFile {
|
||||
/// Sprint 27: 경사각 [deg]
|
||||
#[serde(default)]
|
||||
pub skew_deg: f32,
|
||||
/// Sprint 29: 격벽 표시
|
||||
#[serde(default = "default_true")]
|
||||
pub show_diaphragms: bool,
|
||||
/// Sprint 30: 솟음(Camber) 중앙값 [mm]
|
||||
#[serde(default)]
|
||||
pub camber_mid_mm: f32,
|
||||
}
|
||||
|
||||
fn default_true() -> bool { true }
|
||||
@@ -69,6 +75,8 @@ impl ProjectFile {
|
||||
_ => "single".into(),
|
||||
},
|
||||
skew_deg: p.skew_deg,
|
||||
show_diaphragms: p.show_diaphragms,
|
||||
camber_mid_mm: p.camber_mid_mm,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,6 +101,8 @@ impl ProjectFile {
|
||||
_ => cimery_core::PierType::SingleColumn,
|
||||
},
|
||||
skew_deg: self.skew_deg,
|
||||
show_diaphragms: self.show_diaphragms,
|
||||
camber_mid_mm: self.camber_mid_mm,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user