From 40857f39c5567781c8e07d887bf2b0bfa1510b30 Mon Sep 17 00:00:00 2001 From: minsung Date: Tue, 14 Apr 2026 19:06:24 +0900 Subject: [PATCH] =?UTF-8?q?viewer:=20PureRustKernel=EB=A1=9C=20=EA=B5=90?= =?UTF-8?q?=EC=B2=B4=20=E2=80=94=20PSC-I=20=EB=8B=A8=EB=A9=B4=20=EB=A0=8C?= =?UTF-8?q?=EB=8D=94=20=ED=99=95=EC=9D=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit StubKernel(박스) → PureRustKernel(실제 PSC-I 14-vertex 스위프). 플랜지·웹·헌치 형상 정상 렌더 확인 (스크린샷). Co-Authored-By: Claude Opus 4.6 (1M context) --- cimery/crates/viewer/src/lib.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/cimery/crates/viewer/src/lib.rs b/cimery/crates/viewer/src/lib.rs index d5e6416..af0f16f 100644 --- a/cimery/crates/viewer/src/lib.rs +++ b/cimery/crates/viewer/src/lib.rs @@ -25,8 +25,8 @@ use winit::{ use wgpu::util::DeviceExt; use cimery_core::{MaterialGrade, SectionType}; use cimery_ir::{FeatureId, GirderIR, PscISectionParams, SectionParams}; -use cimery_kernel::{GeomKernel, StubKernel}; -use camera::{Camera, CameraUniform}; +use cimery_kernel::{GeomKernel, PureRustKernel}; +use camera::Camera; // ─── Vertex ─────────────────────────────────────────────────────────────────── @@ -148,7 +148,8 @@ impl RenderState { spacing: 0.0, material: MaterialGrade::C50, }; - let mesh = StubKernel.girder_mesh(&test_ir).expect("StubKernel mesh"); + // Sprint 3: replace PureRustKernel with OcctKernel (--features occt) + let mesh = PureRustKernel.girder_mesh(&test_ir).expect("PureRustKernel mesh"); let verts: Vec = mesh.vertices.iter().zip(mesh.normals.iter()) .map(|(p, n)| Vertex { position: *p, normal: *n }) @@ -376,7 +377,7 @@ impl Default for CimeryApp { impl ApplicationHandler for CimeryApp { fn resumed(&mut self, event_loop: &ActiveEventLoop) { let attrs = Window::default_attributes() - .with_title("cimery viewer [Sprint 2 — StubKernel]") + .with_title("cimery viewer [Sprint 2 — PSC-I PureRustKernel]") .with_inner_size(winit::dpi::LogicalSize::new(1280u32, 720u32)); let window = Arc::new( event_loop.create_window(attrs).expect("create window"),