Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Changelog

## [0.4.1] - 2026-09-06

### Fixed

- Fixed Rhino 3DM models loading layers and object counts but showing a blank viewport when Brep/Extrusion objects had no embedded Rhino render mesh.
- Updated the bundled SpatialViewer.3DMCore to 1.0.2 with semantic Brep and Extrusion fallback tessellation.
- Moved prepared 3DM render-scene construction off the WinUI UI thread so NURBS tessellation no longer freezes the window after loading.
- Replaced per-triangle Win2D CanvasGeometry creation with batched per-instance paths and bounded frame budgets.
- Added dark/light canvas contrast correction so black or near-black Rhino layer colors remain visible on dark backgrounds without mutating source colors.
- Bounded selection highlighting to avoid allocating very large edge hash sets for complex meshes.
- Mouse-wheel zoom now remains available regardless of the active Rhino navigation tool.

### Preserved

- CAD viewer rendering, CadCore runtime behavior, CAD toolbar/view controls, title bar, tabs, navigation, Projects, Favorites, and existing shell effects remain unchanged.


## [0.4.0] - 2026-09-06

### Added
Expand Down
16 changes: 16 additions & 0 deletions docs/RELEASE-NOTES-v0.4.1.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# SpatialViewer v0.4.1

[简体中文](RELEASE-NOTES-v0.4.1.md) | [日本語](RELEASE-NOTES-v0.4.1.ja.md) | English

v0.4.1 is a hotfix for the blank Rhino viewport and UI hangs found during v0.4 field testing.

## Fixes
- 3DMCore 1.0.2 now generates display meshes from semantic Brep and Extrusion geometry when Rhino render meshes are not stored in the file.
- Prepared 3DM render-scene/NURBS tessellation runs off the WinUI UI thread to prevent the window from becoming unresponsive after loading.
- Win2D rendering now batches triangles per Mesh instance instead of creating a CanvasGeometry for every triangle, with bounded fill/wire/curve/point frame budgets.
- Black and near-black Rhino layer colors receive display-only contrast correction on dark canvases without changing source model colors.
- Complex Mesh selection highlighting uses bounded batched wire drawing instead of allocating huge edge hash sets.
- Mouse-wheel zoom works regardless of the active Select/Orbit/Pan tool.

## Preserved
This hotfix does not modify the CAD rendering path, CadCore, CAD toolbar behavior, title bar, tabs, navigation, Projects, Favorites, or existing theme/shell effects.
16 changes: 16 additions & 0 deletions docs/RELEASE-NOTES-v0.4.1.ja.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# SpatialViewer v0.4.1

[简体中文](RELEASE-NOTES-v0.4.1.md) | 日本語 | [English](RELEASE-NOTES-v0.4.1.en.md)

v0.4.1 は v0.4 の実機確認で判明した Rhino の黒画面と応答停止を修正するホットフィックスです。

## 修正
- Rhino render mesh が保存されていない 3DM でも、3DMCore 1.0.2 が Brep / Extrusion のセマンティック形状から表示メッシュを生成します。
- 3DM render scene の NURBS テセレーションを WinUI UI スレッド外へ移し、読み込み後の「応答なし」を防止します。
- Win2D 描画を三角形ごとの CanvasGeometry 生成から Mesh instance 単位のバッチ描画へ変更し、1 フレームの描画量に上限を設けました。
- 暗いキャンバス上の黒・暗色 Rhino レイヤー色に表示用コントラスト補正を適用します。元のモデル色は変更しません。
- 複雑な Mesh の選択ハイライトを上限付きバッチ線画に変更しました。
- 選択/回転/パンのどのツールでもホイールズームを利用できます。

## 維持される機能
CAD ビューアー、CadCore、CAD ツールバー、タイトルバー、タブ、ナビゲーション、プロジェクト、お気に入り、テーマの既存動作は変更しません。
16 changes: 16 additions & 0 deletions docs/RELEASE-NOTES-v0.4.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# SpatialViewer v0.4.1

简体中文 | [日本語](RELEASE-NOTES-v0.4.1.ja.md) | [English](RELEASE-NOTES-v0.4.1.en.md)

v0.4.1 是针对 v0.4 实机验收中 Rhino 黑屏与未响应问题的热修。

## 修复
- 3DM 文件即使未保存 Rhino render mesh,Brep 与 Extrusion 也会由 3DMCore 1.0.2 从语义几何生成显示网格。
- 3DM render scene 的曲面离散移出 WinUI UI 线程,避免模型载入完成后窗口长时间“未响应”。
- Win2D 视口由逐三角创建 CanvasGeometry 改为按 Mesh instance 批量绘制,并设置单帧 fill / wire / curve / point 预算。
- 黑色或近黑 Rhino 图层颜色在黑色画布上自动做显示对比度修正,不修改原始模型颜色。
- 复杂 Mesh 的选择高亮改为有预算的批量线框,避免生成巨型边集合。
- 鼠标滚轮缩放不再受当前选择/旋转/平移工具限制。

## 保持不变
本热修不修改 CAD 看图链、CadCore、CAD 工具条及既有标题栏、标签页、导航、项目、收藏和主题效果。
10 changes: 5 additions & 5 deletions release/release.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@
"schemaVersion": 1,
"product": {
"name": "SpatialViewer",
"version": "0.4.0",
"packageVersion": "0.4.0.0"
"version": "0.4.1",
"packageVersion": "0.4.1.0"
},
"channels": {
"github": {
"publish": true
}
},
"title": {
"zh-CN": "SpatialViewer v0.4.0 Rhino 3DM 看图接入",
"ja-JP": "SpatialViewer v0.4.0 Rhino 3DM ビューア統合",
"en-US": "SpatialViewer v0.4.0 Rhino 3DM Viewer Integration"
"zh-CN": "SpatialViewer v0.4.1 Rhino 显示与响应性热修",
"ja-JP": "SpatialViewer v0.4.1 Rhino 表示・応答性ホットフィックス",
"en-US": "SpatialViewer v0.4.1 Rhino Rendering and Responsiveness Hotfix"
}
}
6 changes: 3 additions & 3 deletions src/SpatialViewer.App/AppVersionProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ namespace SpatialViewer.Product;

internal static class AppVersionProvider
{
public const string Version = "0.4.0";
public const string DisplayVersion = "v0.4.0";
public const string Version = "0.4.1";
public const string DisplayVersion = "v0.4.1";

public static Version GetCurrentVersion()
{
Expand All @@ -16,7 +16,7 @@ public static Version GetCurrentVersion()
}
catch (Exception) when (OperatingSystem.IsWindows())
{
var assemblyVersion = typeof(AppVersionProvider).Assembly.GetName().Version ?? new Version(0, 4, 0, 0);
var assemblyVersion = typeof(AppVersionProvider).Assembly.GetName().Version ?? new Version(0, 4, 1, 0);
return new Version(assemblyVersion.Major, assemblyVersion.Minor, Math.Max(0, assemblyVersion.Build), Math.Max(0, assemblyVersion.Revision));
}
}
Expand Down
Loading
Loading