From b5b7c75b5e0b06d736ab8e157e108983701a49ed Mon Sep 17 00:00:00 2001 From: Nitload Date: Thu, 3 Sep 2026 00:13:04 +0800 Subject: [PATCH] before merge from remote --- .editorconfig | 12 -- .../Numeric/Graphics/Vec3.cs | 50 ++--- typst_temp/main.pdf | Bin 62767 -> 0 bytes typst_temp/main.typ | 32 ---- typst_temp/template.typ | 172 ------------------ 5 files changed, 27 insertions(+), 239 deletions(-) delete mode 100644 .editorconfig delete mode 100644 typst_temp/main.pdf delete mode 100644 typst_temp/main.typ delete mode 100644 typst_temp/template.typ diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 3ea7454f..00000000 --- a/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -[*] -end_of_line = lf -charset = utf-8 -insert_final_newline = true -trim_trailing_whitespace = true - -[*.{bat,cmd,ps1}] -end_of_line = crlf - -[*.cs] -# CS1591: 缺少对公共可见类型或成员的 XML 注释 -dotnet_diagnostic.CS1591.severity = suggestion \ No newline at end of file diff --git a/src/StgSharp.Mathematics/Numeric/Graphics/Vec3.cs b/src/StgSharp.Mathematics/Numeric/Graphics/Vec3.cs index 0fe65e06..fab4ca5e 100644 --- a/src/StgSharp.Mathematics/Numeric/Graphics/Vec3.cs +++ b/src/StgSharp.Mathematics/Numeric/Graphics/Vec3.cs @@ -15,6 +15,32 @@ namespace StgSharp.Mathematics.Numeric.Graphics public static class Vec3 { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Vec3 ConvertToDouble(Vec3 source) + { + return FromVector256Unsafe(Vector256.ConvertToDouble(source.AsVector256Safe())); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Vec3 ConvertToDouble(Vec3 source) + { + return FromVector256Unsafe(Vector256.ConvertToDouble(source.AsVector256Safe())); + } + + #region cast + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Vec3 ConvertToSingle(Vec3 source) + { + return FromVector128Unsafe(Vector128.ConvertToSingle(source.AsVector128Safe())); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Vec3 ConvertToSingle(Vec3 source) + { + return FromVector128Unsafe(Vector128.ConvertToSingle(source.AsVector128Safe())); + } + public static bool IsParallel(Vec3 left, Vec3 right) where T: unmanaged,INumber { return Cross(left, right).Equals(T.Zero); @@ -64,29 +90,7 @@ namespace StgSharp.Mathematics.Numeric.Graphics return Unsafe.As, Vec3>(ref source); } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vec3 ConvertToSingle(Vec3 source) - { - return FromVector128Unsafe(Vector128.ConvertToSingle(source.AsVector128Safe())); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vec3 ConvertToSingle(Vec3 source) - { - return FromVector128Unsafe(Vector128.ConvertToSingle(source.AsVector128Safe())); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vec3 ConvertToDouble(Vec3 source) - { - return FromVector256Unsafe(Vector256.ConvertToDouble(source.AsVector256Safe())); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Vec3 ConvertToDouble(Vec3 source) - { - return FromVector256Unsafe(Vector256.ConvertToDouble(source.AsVector256Safe())); - } +#ednregion #region cross diff --git a/typst_temp/main.pdf b/typst_temp/main.pdf deleted file mode 100644 index 470dd7f88f72a6a6bc2a26bc1774f60cf002efaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62767 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 diff --git a/typst_temp/main.typ b/typst_temp/main.typ deleted file mode 100644 index f91f2253..00000000 --- a/typst_temp/main.typ +++ /dev/null @@ -1,32 +0,0 @@ -#import "template.typ": cover, conf - -// ===== 封面 ===== -// 字段均可选,自动排版:留空的字段会自动跳过。 -#cover( - title: "Very长的文档标题示", - title-en: "Very Long Document Title Example", - subtitle: "副标题 Subtitle", - date: "2026 年 6 月", -) - -// ===== 正文 ===== -#show: conf.with(number-pages: true) - -= 第一章 引言 - -这是正文示例。正文中文使用宋体,English text uses Times New Roman by default。 -段落首行自动缩进两字符,两端对齐。 - -== 1.1 小节 - -行内代码示例:`let x = 1`,以及代码块: - -```rust -fn main() { - println!("Hello, Typst!"); -} -``` - -= 第二章 结论 - -这里是结论部分的内容。 diff --git a/typst_temp/template.typ b/typst_temp/template.typ deleted file mode 100644 index 96cbbba1..00000000 --- a/typst_temp/template.typ +++ /dev/null @@ -1,172 +0,0 @@ -// ============================================================ -// A4 文档模板 -// 封面:页边距 0,中文黑体 / 英文 Source Code Pro -// 正文:上下 3.5cm,左右 2cm,中文宋体 / 英文 Times New Roman -// 代码块:Source Code Pro -// ============================================================ - -// ---- 字体配置(可按需修改)---- -#let cover-cjk = "SimHei" // 封面中文:黑体 -#let cover-latin = "Source Code Pro" // 封面英文 -#let body-cjk = "SimSun" // 正文中文:宋体 -#let body-latin = "Times New Roman" // 正文英文:新罗马 -#let mono-font = "Source Code Pro" // 代码块 - -// ---- 封面网格系统 ---- -// 坐标系:左上角为原点,x 向右、y 向下;坐标记为 (x, y) 即 (列, 行)。 -// 1 单位 = 1.2cm,一个单位方块为边长 1.5cm 的正方形。 -#let unit = 1.2cm -#let sky = rgb("#4FC3F7") // 天蓝色 -#let ochre = rgb("#C9A24B") // 土黄色 - -// 在网格 (x, y) 处放置内容(以页面左上角为基准) -#let cell(x, y, body) = place(top + left, dx: x * unit, dy: y * unit, body) - -// 实心单位正方形 -#let sq(x, y, color) = cell(x, y, rect(width: unit, height: unit, fill: color, stroke: none)) - -// 单位等腰直角三角形,corner 指定直角所在角: -// "tl" 左上 / "tr" 右上 / "bl" 左下 / "br" 右下 -#let tri(x, y, corner, color) = cell(x, y, { - let pts = if corner == "tr" { ((0pt, 0pt), (unit, 0pt), (unit, unit)) } - else if corner == "tl" { ((0pt, 0pt), (unit, 0pt), (0pt, unit)) } - else if corner == "bl" { ((0pt, 0pt), (0pt, unit), (unit, unit)) } - else { ((unit, 0pt), (unit, unit), (0pt, unit)) } - polygon(fill: color, stroke: none, ..pts) -}) - -// 单元格字母字号(NITLOAD 与主标题共用,保证视觉一致) -#let glyph-size = 30pt - -// 在单位格内居中放置一个字母 -#let glyph(x, y, ch, color) = cell(x, y, box( - width: unit, height: unit, inset: 0pt, - align(center + horizon, text(font: cover-cjk, size: glyph-size, weight: "medium", fill: color)[#ch]), -)) - -// ---- 封面 ---- -// 所有字段均可选,留空则自动跳过,实现自动排版。 -#let cover( - title: none, // 主标题(中文) - title-en: none, // 主标题(英文,Source Code Pro 自行排版) - subtitle: none, // 副标题 - logo: none, // 图片路径,如 image("logo.png") - author: none, // 作者(可为单个字符串或数组) - info: (:), // 附加信息字典,如 (学号: "123", 指导教师: "张三") - date: none, // 日期 - fill: white, // 封面背景色 - decorate: true, // 是否绘制天蓝/土黄网格装饰色块 -) = { - // 封面页:页边距为 0 - set page( - paper: "a4", - margin: 0pt, - fill: fill, - header: none, - footer: none, - ) - set text(font: (cover-latin, cover-cjk), lang: "zh") - - // 网格装饰:NITLOAD 标识(坐标 (x, y) = (列, 行))。 - if decorate { - // 天蓝色实心单位正方形 - // 土黄色实心单位正方形 - sq(0, 0, sky); sq(1, 0, sky); sq(2, 0, ochre) - sq(0, 1, sky); sq(2, 1, sky) - sq(0, 2, sky); sq(2, 2, sky) - sq(0, 3, sky); sq(2, 3, sky) - sq(0, 4, sky); sq(2, 4, sky) - sq(0, 5, sky); sq(2, 5, sky) - - // NITLOAD 竖排字样(列 x=1, 行 y=0..6),N 为土黄,其余天蓝 - let letters = ("N", "I", "T", "L", "O", "A", "D") - for (i, ch) in letters.enumerate() { - glyph(1, i, ch, if i == 0 { ochre } else { sky }) - } - - // 主标题:中文逐字对齐网格,英文居中于单元格行。 - // 第 1 列到右缘的整格数 = 中文每行字数。 - let title-cols = calc.floor((21cm - 1 * unit) / unit) - let title-width = 21cm - 1 * unit - let cs = if type(title) == str { title.clusters() } else { () } - - // 中文逐字对齐网格;混排西文字母按 2/3 格宽打包,预留整数格。 - // 中文视觉重心偏大,整体右移 0.1 格、下移 0.2 格 - let cn-dx = 0.1 * unit - let cn-dy = 0.2 * unit - let is-narrow = c => str.to-unicode(c.codepoints().first()) < 0x2E80 - // 分段:连续西文合为一段,其余每字一段 - let segs = () - let run = "" - for ch in cs { - if is-narrow(ch) { run += ch } - else { - if run != "" { segs.push(run); run = "" } - segs.push(ch) - } - } - if run != "" { segs.push(run) } - - // 逐段放置:CJK 占 1 格,西文段占 ceil(字数 * 1/2) 格,溢出换行 - let cur = 0 - let row = 0 - for seg in segs { - let w = if is-narrow(seg.first()) { calc.ceil(seg.len() * 1 / 2) } else { 1 } - if cur + w > title-cols { cur = 0; row += 1 } - let col = 1 + cur - place(top + left, dx: col * unit + cn-dx, dy: (7 + row) * unit + cn-dy, - box(width: w * unit, height: unit, inset: 0pt, align(center + horizon, - text(font: (cover-cjk, cover-latin), size: glyph-size, fill: black)[#seg]))) - cur += w - } - let cn-rows = if segs.len() == 0 { 0 } else { row + 1 } - - // 英文:左对齐于中文下方;多行时行距对齐网格(行距 = unit),左/上边距相等。 - // 英文行数需测量,故把依赖行数的笔画/三角形一并放入 context。 - context { - let en-rows = 0 - if title-en != none { - let en1 = text(font: (cover-latin, cover-cjk), size: glyph-size, fill: black)[#title-en] - let lh = measure(en1).height - let pad = (unit - lh) / 2 - let inner = { - set par(leading: unit - lh) - en1 - } - let h = measure(box(width: title-width - pad, inner)).height - en-rows = calc.max(1, int(calc.round((h - lh) / unit)) + 1) - cell(1, 7 + cn-rows, box(width: title-width, inset: (left: pad, top: pad), inner)) - } - let title-rows = cn-rows + en-rows - // 左侧一笔向下延伸至主标题下端,三角形收尾;右侧保持原样 - for r in range(6, 6 + title-rows) { sq(0, r, sky) } - tri(0, 6 + title-rows, "tr", sky) - } - tri(2, 6, "tl", sky) - } - - pagebreak(weak: true) -} - -// ---- 正文配置 ---- -#let conf( - number-pages: true, // 是否显示页码 - doc, -) = { - set page( - paper: "a4", - margin: (top: 3.5cm, bottom: 3.5cm, left: 2cm, right: 2cm), - numbering: if number-pages { "1" } else { none }, - number-align: center, - ) - set text(font: (body-latin, body-cjk), lang: "zh", size: 12pt) - set par(justify: true, leading: 1em, first-line-indent: (amount: 2em, all: true)) - - // 标题字体:中文黑体,英文 Source Code Pro - show heading: set text(font: (cover-latin, cover-cjk)) - - // 代码块与行内代码:Source Code Pro - show raw: set text(font: mono-font) - - doc -}