Compare commits

...

173 Commits

Author SHA1 Message Date
wuyize 16fbdd5afd Fix: SSAO计算时使用了错误的法向量 2024-04-11 22:42:33 +08:00
wuyize 7bee8eb5dc 实现SSAO 2024-04-02 17:21:29 +08:00
wuyize 865f2be548 更新README 2024-03-18 12:31:11 +08:00
wuyize 6eb9fcc753 更新README 2024-03-14 17:29:30 +08:00
wuyize 9ff0a3b45c Fix: 打开新模型时旧模型存在残留 2024-03-14 16:21:11 +08:00
wuyize d968b585fb Renderer性能优化 2024-02-26 22:07:04 +08:00
wuyize fc75668c68 实现FXAA 2024-02-25 19:51:39 +08:00
wuyize bc118b0a20 重构绘制部分 2024-02-23 23:43:22 +08:00
wuyize b15ddc0ecb upgrade glm 2024-02-23 16:28:56 +08:00
wuyize 567510cbb5 Fix: 中文贴图不加载 2024-01-14 15:06:57 +08:00
wuyize 34524a4319 相机远近平面随模型自适应,方向键上下调整相机移动速度 2024-01-08 15:43:48 +08:00
wuyize 20114158be Fix: 场景渲染画面不动 2023-10-25 17:09:42 +08:00
wuyize 71588dc72c 加入素材库 2023-10-15 16:31:53 +08:00
wuyize b7dc0f75fa FIx: 取消合并崩溃 2023-08-19 22:22:12 +08:00
wuyize df71b04e4c 在项目菜单中增加替换材质功能 2023-08-18 17:53:33 +08:00
wuyize b465b90195 Fix: 导入circle崩溃 2023-08-05 16:47:19 +08:00
karlis f4e09a5bc6 实现文件硬合并功能 2023-05-03 12:17:26 +08:00
wuyize fb85447a2f Fix: 导出设置图像大小输入框Bug 2023-04-25 15:03:17 +08:00
wuyize dad2c1fa59 添加导出PNG的功能 2023-04-25 14:49:26 +08:00
wuyize fbc08b30fb 添加图标 2023-04-22 11:13:29 +08:00
wuyize 107366b94d 更改了环境贴图文件名 2023-04-22 10:59:05 +08:00
wuyize 645797f8f5 添加调整主光源强度的滑动条,场景渲染中四个滑动条分别对应光强、光Pitch角、光Yaw角、曝光 2023-04-22 10:54:35 +08:00
wuyize 00b04fc33c 调整了新建所用json的位置 2023-04-15 20:28:32 +08:00
wuyize c0db3d1936 Fix: 场景渲染未读取粗糙度 2023-04-15 15:35:59 +08:00
wuyize 9f90622c6b 支持批量导入svg 2023-04-10 19:29:30 +08:00
wuyize ee0bc1094e Fix: 图层重命名后未刷新图层列表 2023-04-10 19:17:06 +08:00
wuyize 32b541d927 实现场景渲染界面双击纹理列表项跳转编辑界面打开 2023-04-09 00:06:20 +08:00
wuyize 1e341a8ea5 EditorWidget添加handleOpenPaintingFile接口,待实现 2023-04-08 21:23:01 +08:00
wuyize 9cc5466abc 场景渲染增加纹理列表 2023-04-08 21:07:10 +08:00
wuyize 4be720a677 Fix: 打开没有纹理坐标的模型导致崩溃 2023-04-08 17:13:14 +08:00
wuyize f0ac3bf4f7 完善Release配置 2023-04-08 13:52:05 +08:00
wuyize 798dfddce8 PaintingUtil添加背景金属度、粗糙度的读取 2023-04-08 13:21:15 +08:00
wuyize cdf9ec3c9c bug fix 2023-04-05 20:52:27 +08:00
wuyize fb107870c2 Fix: 渲染错误 2023-04-05 13:00:56 +08:00
yang.yongquan b249eff8f4 增加了获得最大线宽的函数 2023-04-05 10:33:36 +08:00
wuyize 262eb0e19f bug fix 2023-04-04 15:51:38 +08:00
karlis dfcad45b8c 添加金属度和粗糙度设置 2023-04-03 19:37:09 +08:00
ArgonarioD 0d5c513523 [editor] 将项目设置放到了菜单栏中 | #4 2023-03-31 17:44:31 +08:00
yang.yongquan 8230a98d58 修复了无法读取line的bug 2023-03-30 23:31:27 +08:00
yang.yongquan 4360fad504 修复了一个线宽比例计算的bug 2023-03-29 18:54:56 +08:00
yang.yongquan f9e316c547 修复宽度变化的bug (待测试) 2023-03-29 17:05:02 +08:00
wuyize ae77ffdbdb Fix: 画布改变后显示错误 2023-03-29 15:04:17 +08:00
wuyize 38336aa944 更新MaterialStyle::decoded 2023-03-29 12:31:21 +08:00
wuyize 5013538e16 更新MaterialStyle::decoded 2023-03-28 22:22:41 +08:00
ArgonarioD bb7c30a896 [editor/style] 修改了style相关的GUI
* 为LayerStyleDialog提供最大大小和滚动条 | #30
* 为StrokeElementLayerStyle适配变宽样式 | #33
2023-03-28 19:51:35 +08:00
wuyize 1295e2255a 补充了样式部分的注释 2023-03-28 15:02:31 +08:00
wuyize 3090f24235 使宽度平滑过渡,并更新了对应的测试用例TestGradientWidth 2023-03-27 19:26:05 +08:00
karlis a0d45085dd 修改引用Element的Layer的styles类型为ALL | #32 2023-03-27 15:06:53 +08:00
karlis 4471bb3f79 添加【提升/下放】限制,暂定为pre-release | #22 2023-03-27 14:49:21 +08:00
karlis c81c7d69d4 Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-27 13:24:30 +08:00
karlis f6ebe58322 添加了更改画布大小的功能 | #3 2023-03-27 13:24:22 +08:00
wuyize e0813ba364 PaitingUtil读取画布大小 2023-03-27 13:08:58 +08:00
wuyize 5ac322fb30 初步实现变宽样式 2023-03-26 22:18:03 +08:00
wuyize edb529e7da Fix: painting.comp渲染错误 2023-03-26 16:15:26 +08:00
karlis 2f776d1fdc Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-24 13:59:09 +08:00
karlis bbe0d49fc4 优化LayerInfo的输入体验 | #29 2023-03-24 13:59:07 +08:00
wuyize 2345cd6758 Fix:曲线锐角连接时渲染错误 2023-03-24 13:42:16 +08:00
ArgonarioD 7667525287 [style] 修改了LayerStyle相关的很多东西
* 实现了复制和粘贴
* 实现了LayerStyleContainer的<<运算符
* 重构了LayerContainerListWidget的信号结构
* 使LayerStyleContainer的一些接口的表现更符合新需求
* 让style继承的基本覆盖逻辑变得正确了
* Fix: LayerContainerListWidget的操作对象不及时改变
2023-03-24 00:47:55 +08:00
wuyize dc4de8823e Fix: MaterialStyle::decoded错误 2023-03-24 00:02:35 +08:00
wuyize b2e49dae17 提供变宽样式的接口,未实现 2023-03-23 23:17:53 +08:00
karlis a3d39b32e5 添加了所有Layer的styles成员 2023-03-23 22:36:22 +08:00
wuyize a55a38385e Fix: GraphicElement中pixelRatio的计算 2023-03-23 20:28:19 +08:00
karlis 5d5ea2307f 添加单向渲染逻辑和内存强制回收措施 2023-03-23 16:17:01 +08:00
karlis aa9743d4e7 修正创建LeafLayer引用组合元素后,无法析构的问题 2023-03-23 15:59:33 +08:00
ArgonarioD 214fa0f82f [editor] 修改了style相关的一些东西 #30
* 将LayerStyleContainer的覆盖运算符从<<改为了 |
 * 调整了LayerContainerListWidget的UI
 * fix: 移除描边时可能导致空指针异常
2023-03-23 15:02:44 +08:00
karlis 483afb9fb4 修正flip拼写错误的问题 2023-03-23 11:57:28 +08:00
ArgonarioD 2f9b988dac [editor] 为LayerStyleContainer重载了<<运算符 | #30 2023-03-23 01:44:28 +08:00
karlis ba4be72918 bug fix 2023-03-22 22:47:37 +08:00
karlis b739f4506b 修正BoundRect显示巨大化的问题 2023-03-22 20:37:09 +08:00
karlis 578fd5da8e 修正图元更改后列表不正确的问题 2023-03-22 20:17:43 +08:00
karlis f175e50b7b merge 2023-03-22 19:59:42 +08:00
karlis beee94ebe0 图元预览改为懒加载;添加帧缓存;修改图元预览渲染机制;固定渲染倍率* 2023-03-22 19:58:17 +08:00
ArgonarioD 62d887aa07 [editor] 将图层的旋转角度限制在了(-360, 360) | #27 2023-03-22 17:01:09 +08:00
wuyize 512181f6a3 Fix: painting.comp中zIndex计算错误,PaintingUtil包围盒计算错误 2023-03-22 16:58:28 +08:00
wuyize 60c7695545 Fix: PreviewWindow显示不完整 | #26 2023-03-22 14:54:52 +08:00
karlis 7e0e07292f merge 2023-03-22 14:46:59 +08:00
karlis b2f37cc4eb Experimental:添加了【图层提升/下放功能】 2023-03-22 14:45:43 +08:00
karlis 0b63e8e737 Experimental:添加了【图层提升/下放功能】 2023-03-22 13:55:06 +08:00
yang.yongquan 56777c1f00 增加zIndex,减少重复contour的生成 2023-03-22 13:02:43 +08:00
ArgonarioD 2e7d20d0d7 [editor] style接入新的UI实现 | #10 2023-03-22 00:09:44 +08:00
karlis 3edca0287b Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-21 22:58:58 +08:00
karlis d1aeb28b97 添加ALT+↑↓切换Layer顺序的快捷功能 2023-03-21 22:58:42 +08:00
wuyize 492f0a12d7 Fix: Painting背景材质以及zIndex改为小的在上层 2023-03-21 22:30:19 +08:00
wuyize 88dc039fe8 Fix: PaintingUtil中root矩阵计算错误 2023-03-21 19:11:54 +08:00
karlis c77114b7f3 Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-21 15:19:13 +08:00
karlis 2b5598a81e 完成除样式外新ui接入 | #10 2023-03-21 15:18:57 +08:00
wuyize 3a693de9fe 为FluentMenu提供更完善的封装类型FluentMenuButton | #24 2023-03-21 15:15:41 +08:00
karlis 291d112d11 Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-21 14:35:40 +08:00
karlis fff1ce3424 Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-21 14:35:37 +08:00
karlis 9057500da8 Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-21 14:25:12 +08:00
karlis 4d16b47edd merge 2023-03-21 14:25:04 +08:00
karlis 5fbf46faf2 merge 2023-03-21 14:13:41 +08:00
karlis 16671ae71f 添加Element渲染缓存 2023-03-21 14:11:47 +08:00
yang.yongquan 182284c60f Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-21 13:57:20 +08:00
yang.yongquan 93537954a9 Fix: 选择文件时未对“未选择”的情况做处理 | #19 2023-03-21 13:57:16 +08:00
wuyize d3cf84f479 Fix: style宽度转换问题 2023-03-21 13:55:46 +08:00
ArgonarioD 2581624388 添加了证明markdown 2023-03-21 13:50:27 +08:00
wuyize 35e7648206 FIX: setWindow参数设置错误 2023-03-21 12:24:42 +08:00
yang.yongquan 793402e3c5 增加了originPath以便transform操作 2023-03-21 10:23:11 +08:00
wuyize a84c8cb752 Fix: StrokeEndType::kClosed渲染不正确 2023-03-20 23:25:38 +08:00
ArgonarioD e39eb15f03 Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-20 22:49:00 +08:00
ArgonarioD cee26188e1 [editor] 增加了“图层信息”的.ui实现 | #10 2023-03-20 22:48:41 +08:00
karlis 826a8d3e2e Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-20 22:27:04 +08:00
karlis 769effe49c FIX: 修正文件路径逻辑 2023-03-20 22:26:38 +08:00
wuyize a07bf3bced 优化包围盒计算 2023-03-20 21:51:04 +08:00
karlis b944572204 添加项目信息管理器 2023-03-20 21:12:23 +08:00
ArgonarioD d55b49e119 [editor/style] fix: stroke对于空描边的错误显示 2023-03-20 21:10:01 +08:00
karlis 0543a02dfb Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-20 20:16:30 +08:00
karlis e6571faf8c FIX | #20 2023-03-20 20:16:15 +08:00
ArgonarioD bf71d17b5d [editor/style] 适配了新的StrokeEndType | #18
* [stroke] 适配了新添加的StrokeEndType::kClosed
 * [stroke] 对接了Renderer方面提供的新接口
2023-03-20 19:58:02 +08:00
ArgonarioD 4b2776d429 [editor/style] 优化了Stroke的添加交互 | #17 2023-03-20 19:03:15 +08:00
karlis 831541ff36 Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-20 18:04:01 +08:00
karlis 6a1c64a426 添加Ctrl+左键快捷缩放,C+S+左键等比缩放 2023-03-20 18:03:54 +08:00
wuyize ae641bb87c 增加了StrokeEndType::kClosed 2023-03-20 17:52:57 +08:00
karlis f25f2d2a81 实现高亮选中Layer 2023-03-20 17:35:33 +08:00
karlis 8a34f57251 实现显示/隐藏图层功能 | #16 2023-03-20 15:52:27 +08:00
karlis f06fbbaef6 FIX: 暂时修复修改图层属性导致的crash 2023-03-20 14:44:36 +08:00
ArgonarioD 855dd2e075 [editor] 修复了一些会导致warning的问题 | #15
* 添加了ColorHelper
 * LayerStyleDialog重复setLayer导致的warning
 * QColorDialog::getColor时由于Qt的bug未正确设置大小导致的warning
2023-03-20 02:48:52 +08:00
wuyize b6e79ee6de 实现通过json文件构造Painting 2023-03-20 00:26:50 +08:00
karlis b3bbf6c1be 重写刷新信号及逻辑 2023-03-19 16:07:35 +08:00
karlis 8bf6835c23 添加LayerWrapper接口 2023-03-19 15:48:42 +08:00
karlis 3904ff0b61 添加删除逻辑检测 | #9 2023-03-19 15:40:50 +08:00
ArgonarioD 587c09115a [editor/style] 初始化区分封闭与非封闭图元 | #12
* LayerStyleContainer的构造函数添加了isClosedElement参数
2023-03-19 14:43:25 +08:00
ArgonarioD 66cde802ec 为GraphicElement添加了isClosed接口 | #11 2023-03-19 14:12:44 +08:00
ArgonarioD 4c95d6e362 微调了筛选器 2023-03-19 13:29:52 +08:00
wuyize 12b62bf039 Fix: element.comp填充样式渲染错误 |#13 2023-03-19 12:19:10 +08:00
ArgonarioD 0e62672b58 [editor/style] 实现了FillElementLayerStyle | #2 2023-03-19 01:27:42 +08:00
karlis 69422ba96a Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-18 23:10:34 +08:00
karlis 3d8420f617 优化图层列表显示效果 | #7 2023-03-18 23:10:16 +08:00
yang.yongquan e48954175d Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-18 20:30:31 +08:00
yang.yongquan 3c2eada43f 添加了获得线宽的函数 2023-03-18 20:26:07 +08:00
karlis 6494c2b9af Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-18 20:20:25 +08:00
wuyize fd1baf42f6 Renderer图元变换改用矩阵 2023-03-18 20:17:12 +08:00
karlis aeead9d22e 添加创建时递归约束 2023-03-18 20:12:43 +08:00
karlis 84bddf4447 Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-18 16:26:51 +08:00
wuyize 31f2c1be8f 打开模型时卸载现有模型 2023-03-18 12:18:38 +08:00
ArgonarioD c15e8c3a5b [style] 重新设计了LayerStyle在Layer中的存储形式
新增了LayerStyleContainer类,修改了相关代码
修改了部分bad smells
2023-03-18 03:51:47 +08:00
karlis 24f8daf1fd 菜单优化 2023-03-17 17:14:09 +08:00
karlis 9e4cdb3a63 添加项目名称和背景颜色字段 2023-03-17 14:14:07 +08:00
wuyize 6a09bdd32c FIX: GraphicElement中pixelRatio计算错误 2023-03-17 12:29:31 +08:00
wuyize 2569b07233 Renderer部分Painting支持设置背景颜色 2023-03-17 11:54:43 +08:00
ArgonarioD 81bb1b4b86 [editor/style] 完成StrokeStyle的序列化和反序列化
[stroke] 取消创建StrokeStyle时的初值
2023-03-16 20:22:03 +08:00
wuyize 4ff5406acc FIX: qt-material-widgets资源未加载 2023-03-16 19:29:38 +08:00
karlis 6d554ab265 Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-16 14:51:43 +08:00
karlis a9fb9197e6 删除冗余计算,重写预览逻辑,修复BoundRect,添加预览刷新触发 2023-03-16 14:51:28 +08:00
wuyize 15a41d61a5 实现MaterialStyle的decoded方法 2023-03-16 14:48:28 +08:00
ArgonarioD 03a06ce426 [editor/style] 进一步完善StrokeStyle相关
[stroke] 初步完成StrokeStyle序列化
[editor/util] 新增JsonUtil
[stroke] 完成添加单层描边功能
[stroke] 完成设置控件
[stroke] 将StrokeStyleListView修改为了StrokeStyleWidget
2023-03-16 02:13:25 +08:00
wuyize 78c24ad373 FIX: painting渲染bug 2023-03-15 22:43:51 +08:00
karlis 627b947738 Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-15 21:10:19 +08:00
karlis 8903419799 修复了zt黄色的问题 2023-03-15 21:10:05 +08:00
karlis 70d5973a90 修复了yyq黄色的问题 2023-03-15 21:04:21 +08:00
karlis 6c86403c4a Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-15 20:22:26 +08:00
karlis b9c8624dae Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-15 20:22:17 +08:00
karlis 153f6bdd8e Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-15 20:10:18 +08:00
karlis c234c0e9b3 实现element导入,添加滚动条,修复空白打开 2023-03-15 20:10:14 +08:00
wuyize 3abc0d9bcd 初步完成json到Painting的转换 2023-03-15 19:24:33 +08:00
yang.yongquan 5d88ddf0ca 增加图片刷新的槽函数 2023-03-15 17:37:12 +08:00
karlis fa91d80b70 完善Element序列化 2023-03-15 16:36:46 +08:00
karlis 3b87644e21 修改了PixelPath 2023-03-15 16:16:59 +08:00
ArgonarioD 073f68e360 初步实现了编辑器中的StrokeStyle
[style/stroke] 实现了行删除
[style/stroke] 基本稳定了strokeStyle的修改
[paint] 令drawElement时会应用style
[style] 修改了LayerStyle
[editor] 新增了ColorPicker类和StrokeStyleListView类
2023-03-15 11:43:16 +08:00
yang.yongquan 73e63f3817 merge 2023-03-15 11:25:14 +08:00
yang.yongquan d47d94d044 增加了对于Painting的转换,没有考虑线宽的情况 2023-03-15 11:23:26 +08:00
wuyize 57d6de47f8 Fix: painting.comp bug 2023-03-15 11:23:21 +08:00
wuyize c6a4d79888 补充了StrokeEndType 2023-03-15 00:09:30 +08:00
wuyize 4ec58dbb8b FIX: 多样式不生效 2023-03-14 23:39:56 +08:00
wuyize cf3dd43a4a Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-14 22:44:43 +08:00
wuyize 62b9c2b026 FIX: style的bug 2023-03-14 22:44:23 +08:00
karlis 97097fcc3a 修改旋转判定,添加style渲染接口 2023-03-14 15:36:19 +08:00
karlis f2ceca724a Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-14 15:14:28 +08:00
karlis eab8d7aeec Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-14 15:14:25 +08:00
karlis dc7a793d3a Merge branch 'main' of http://101.34.228.45:3000/BigC/ArchitectureColoredPainting 2023-03-14 15:03:03 +08:00
karlis 684c28dafd bug fix 2023-03-14 15:02:49 +08:00
karlis 72f0f78e64 bug fix 2023-03-14 14:53:36 +08:00
699 changed files with 61625 additions and 29657 deletions

2
.gitignore vendored
View File

@ -362,3 +362,5 @@ MigrationBackup/
# Fody - auto-generated XML schema # Fody - auto-generated XML schema
FodyWeavers.xsd FodyWeavers.xsd
/UnitTest/Qt.x64.runsettings /UnitTest/Qt.x64.runsettings
/ArchitectureColoredPainting/ClassDiagram.cd
/ArchitectureColoredPainting/res/Shaders/Fxaa3_11.glsl

View File

@ -32,12 +32,12 @@
</ImportGroup> </ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" Label="QtSettings"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" Label="QtSettings">
<QtInstall>5.15.2_msvc2019_64</QtInstall> <QtInstall>5.15.2_msvc2019_64</QtInstall>
<QtModules>core;xml;gui;svg;widgets;core-private;gui-private;widgets-private</QtModules> <QtModules>core;xml;gui;svg;widgets;concurrent;core-private;gui-private;widgets-private</QtModules>
<QtBuildConfig>debug</QtBuildConfig> <QtBuildConfig>debug</QtBuildConfig>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="QtSettings"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="QtSettings">
<QtInstall>5.15.2_msvc2019_64</QtInstall> <QtInstall>5.15.2_msvc2019_64</QtInstall>
<QtModules>core;gui;widgets</QtModules> <QtModules>core;xml;gui;svg;widgets;concurrent;core-private;gui-private;widgets-private</QtModules>
<QtBuildConfig>release</QtBuildConfig> <QtBuildConfig>release</QtBuildConfig>
</PropertyGroup> </PropertyGroup>
<Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')"> <Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
@ -61,9 +61,14 @@
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile> <ClCompile>
<LanguageStandard>stdcpp17</LanguageStandard> <LanguageStandard>stdcpp20</LanguageStandard>
<AdditionalIncludeDirectories>$(SolutionDir)QGoodWindow;%(AdditionalIncludeDirectories);$(Qt_INCLUDEPATH_)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)include;$(SolutionDir)ArchitectureColoredPainting\src\Editor\RightBar;$(SolutionDir)ArchitectureColoredPainting\src\Editor\;$(SolutionDir)FramelessHelper\include;$(SolutionDir)FramelessHelper\qmake\inc\core;$(SolutionDir)FramelessHelper\include\FramelessHelper\Core;$(SolutionDir)qt-material-widgets\components;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<PreprocessorDefinitions>FRAMELESSHELPER_WIDGETS_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<Link>
<AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
@ -72,6 +77,7 @@
<PreprocessorDefinitions>FRAMELESSHELPER_WIDGETS_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>FRAMELESSHELPER_WIDGETS_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>Level1</WarningLevel> <WarningLevel>Level1</WarningLevel>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<TreatSpecificWarningsAsErrors>4715;</TreatSpecificWarningsAsErrors>
</ClCompile> </ClCompile>
<Link> <Link>
<AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
@ -104,6 +110,17 @@
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\Editor\Properties\MaterialReplaceDialog.cpp" />
<ClCompile Include="src\Editor\util\JsonMerger.cpp" />
<ClCompile Include="src\Editor\Properties\ProjectPropertyWidget.cpp" />
<ClCompile Include="src\Editor\Properties\ProjectPropertyDialog.cpp" />
<ClCompile Include="src\Editor\Properties\CanvasPropertyWidget.cpp" />
<ClCompile Include="src\Editor\Properties\PropertyWidget.cpp" />
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerContainerListWidget.cpp" />
<ClCompile Include="src\Editor\DataManager\ProjectDataManager.cpp" />
<ClCompile Include="src\Editor\EditorWidgetComponent\FillStyleWidget.cpp" />
<ClCompile Include="src\Editor\RightBar\EditorSettingWidget.cpp" />
<ClCompile Include="src\Editor\EditorWidgetComponent\ColorPicker.cpp" />
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.cpp" /> <ClCompile Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.cpp" />
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.cpp" /> <ClCompile Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.cpp" />
<ClCompile Include="src\Editor\EditorWidget.cpp" /> <ClCompile Include="src\Editor\EditorWidget.cpp" />
@ -123,8 +140,11 @@
<ClCompile Include="src\Editor\util\PainterPathUtil.cpp" /> <ClCompile Include="src\Editor\util\PainterPathUtil.cpp" />
<ClCompile Include="src\Editor\util\PaintingUtil.cpp" /> <ClCompile Include="src\Editor\util\PaintingUtil.cpp" />
<ClCompile Include="src\Editor\util\SvgFileLoader.cpp" /> <ClCompile Include="src\Editor\util\SvgFileLoader.cpp" />
<ClCompile Include="src\FlowLayout.cpp" />
<ClCompile Include="src\FluentMenu.cpp" /> <ClCompile Include="src\FluentMenu.cpp" />
<ClCompile Include="src\FluentMenuButton.cpp" />
<ClCompile Include="src\gl.c" /> <ClCompile Include="src\gl.c" />
<ClCompile Include="src\Library\LibraryWidget.cpp" />
<ClCompile Include="src\main.cpp" /> <ClCompile Include="src\main.cpp" />
<ClCompile Include="src\MainWindow.cpp" /> <ClCompile Include="src\MainWindow.cpp" />
<ClCompile Include="src\NavigationBarWidget.cpp" /> <ClCompile Include="src\NavigationBarWidget.cpp" />
@ -146,15 +166,23 @@
<ClCompile Include="src\Renderer\Painting\Painting.cpp" /> <ClCompile Include="src\Renderer\Painting\Painting.cpp" />
<ClCompile Include="src\Renderer\PaintingMesh.cpp" /> <ClCompile Include="src\Renderer\PaintingMesh.cpp" />
<ClCompile Include="src\Renderer\Preview\ElementRenderer.cpp" /> <ClCompile Include="src\Renderer\Preview\ElementRenderer.cpp" />
<ClCompile Include="src\Renderer\Preview\PaintingRenderer.cpp" />
<ClCompile Include="src\Renderer\RendererGLWidget.cpp" /> <ClCompile Include="src\Renderer\RendererGLWidget.cpp" />
<ClCompile Include="src\Renderer\RendererWidget.cpp" /> <ClCompile Include="src\Renderer\RendererWidget.cpp" />
<ClCompile Include="src\Renderer\Painting\ShortCutTree.cpp" /> <ClCompile Include="src\Renderer\Painting\ShortCutTree.cpp" />
<ClCompile Include="src\Renderer\Painting\StraightLine.cpp" /> <ClCompile Include="src\Renderer\Painting\StraightLine.cpp" />
<ClCompile Include="src\Renderer\RenderPass.cpp" />
<ClCompile Include="src\Renderer\Shader.cpp" />
<ClCompile Include="src\Renderer\VirtualTextureManager.cpp" /> <ClCompile Include="src\Renderer\VirtualTextureManager.cpp" />
<ClCompile Include="src\SvgParser.cpp" /> <ClCompile Include="src\SvgParser.cpp" />
<ClCompile Include="src\Editor\EditorWidgetComponent\StrokeStyleWidget.cpp" />
<QtUic Include="EditorLayerInfoWidget.ui" />
<QtUic Include="EditorSettingWidget.ui" />
<QtUic Include="EditorWidget.ui" /> <QtUic Include="EditorWidget.ui" />
<QtUic Include="EditorWidgetItem.ui" /> <QtUic Include="EditorWidgetItem.ui" />
<QtUic Include="LibraryWidget.ui" />
<QtUic Include="MainWindow.ui" /> <QtUic Include="MainWindow.ui" />
<QtUic Include="PaintingItem.ui" />
<QtUic Include="RendererWidget.ui" /> <QtUic Include="RendererWidget.ui" />
<QtUic Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.ui" /> <QtUic Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.ui" />
</ItemGroup> </ItemGroup>
@ -179,21 +207,42 @@
<None Include="res\Shaders\painting.comp" /> <None Include="res\Shaders\painting.comp" />
<None Include="res\Shaders\painting.frag" /> <None Include="res\Shaders\painting.frag" />
<None Include="res\Shaders\painting.vert" /> <None Include="res\Shaders\painting.vert" />
<None Include="res\Shaders\painting_shadow.frag" />
<None Include="res\Shaders\shader.frag" /> <None Include="res\Shaders\shader.frag" />
<None Include="res\Shaders\shader.vert" /> <None Include="res\Shaders\shader.vert" />
<None Include="res\Shaders\shadow_mapping.comp" /> <None Include="res\Shaders\shadow_mapping.comp" />
<None Include="res\Shaders\skybox.frag" /> <None Include="res\Shaders\skybox.frag" />
<None Include="res\Shaders\skybox.vert" /> <None Include="res\Shaders\skybox.vert" />
<None Include="res\Shaders\ssao.comp" />
<None Include="res\Shaders\ssao_blur.comp" />
<None Include="res\Shaders\ssgi.comp" /> <None Include="res\Shaders\ssgi.comp" />
<None Include="res\Shaders\tone_mapping.comp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<QtMoc Include="src\Editor\EditorWidgetComponent\StrokeStyleWidget.h" />
<QtMoc Include="src\Editor\RightBar\LayerTreeWidget.h" /> <QtMoc Include="src\Editor\RightBar\LayerTreeWidget.h" />
<QtMoc Include="src\Editor\RightBar\InfoDisplayWidget.h" /> <QtMoc Include="src\Editor\RightBar\InfoDisplayWidget.h" />
<QtMoc Include="src\MainWindow.h" /> <QtMoc Include="src\MainWindow.h" />
<QtMoc Include="src\Editor\EditorWidget.h" /> <QtMoc Include="src\Editor\EditorWidget.h" />
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.h" /> <QtMoc Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.h" />
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.h" /> <QtMoc Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.h" />
<ClInclude Include="src\Editor\ElementManager.h" /> <QtMoc Include="src\Editor\EditorWidgetComponent\ColorPicker.h" />
<QtMoc Include="src\Editor\RightBar\EditorSettingWidget.h" />
<QtMoc Include="src\Editor\EditorWidgetComponent\FillStyleWidget.h" />
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerContainerListWidget.h" />
<QtMoc Include="src\Editor\Properties\CanvasPropertyWidget.h" />
<QtMoc Include="src\Editor\Properties\ProjectPropertyDialog.h" />
<QtMoc Include="src\Editor\Properties\ProjectPropertyWidget.h" />
<QtMoc Include="src\Editor\Properties\MaterialReplaceDialog.h" />
<ClInclude Include="src\Editor\util\JsonMerger.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="src\Editor\Properties\PropertyWidget.h" />
<ClInclude Include="src\Editor\DataManager\ProjectDataManager.h" />
<ClInclude Include="src\ColorHelper.hpp" />
<ClInclude Include="src\Editor\LayerWrapper.h" />
<ClInclude Include="src\Editor\util\EncodeUtil.hpp" />
<ClInclude Include="src\Editor\util\JsonUtil.hpp" />
<QtMoc Include="src\Editor\ElementManager.h" />
<QtMoc Include="src\Editor\ElementPoolWidget.h" /> <QtMoc Include="src\Editor\ElementPoolWidget.h" />
<ClInclude Include="src\Editor\GraphicElement.h" /> <ClInclude Include="src\Editor\GraphicElement.h" />
<ClInclude Include="src\Editor\LayerManager.h" /> <ClInclude Include="src\Editor\LayerManager.h" />
@ -208,6 +257,9 @@
<ClInclude Include="src\Editor\util\PaintingUtil.h" /> <ClInclude Include="src\Editor\util\PaintingUtil.h" />
<ClInclude Include="src\Editor\util\SvgFileLoader.h" /> <ClInclude Include="src\Editor\util\SvgFileLoader.h" />
<QtMoc Include="src\FluentMenu.h" /> <QtMoc Include="src\FluentMenu.h" />
<ClInclude Include="src\FlowLayout.h" />
<ClInclude Include="src\FluentMenuButton.h" />
<QtMoc Include="src\Library\LibraryWidget.h" />
<ClInclude Include="src\Renderer\IblUtils.h" /> <ClInclude Include="src\Renderer\IblUtils.h" />
<ClInclude Include="src\Renderer\Painting\BaseStyle.h" /> <ClInclude Include="src\Renderer\Painting\BaseStyle.h" />
<ClInclude Include="src\Renderer\Painting\CubicBezierSignedDistance.h" /> <ClInclude Include="src\Renderer\Painting\CubicBezierSignedDistance.h" />
@ -218,6 +270,9 @@
<ClInclude Include="src\Renderer\Painting\MaterialStyleStroke.h" /> <ClInclude Include="src\Renderer\Painting\MaterialStyleStroke.h" />
<ClInclude Include="src\Renderer\Painting\Painting.h" /> <ClInclude Include="src\Renderer\Painting\Painting.h" />
<ClInclude Include="src\Renderer\Preview\ElementRenderer.h" /> <ClInclude Include="src\Renderer\Preview\ElementRenderer.h" />
<ClInclude Include="src\Renderer\Preview\PaintingRenderer.h" />
<ClInclude Include="src\Renderer\RenderPass.h" />
<ClInclude Include="src\Renderer\Shader.h" />
<ClInclude Include="src\Renderer\VirtualTextureManager.h" /> <ClInclude Include="src\Renderer\VirtualTextureManager.h" />
<ClInclude Include="src\SvgParser.h" /> <ClInclude Include="src\SvgParser.h" />
<QtMoc Include="src\NavigationBarWidget.h" /> <QtMoc Include="src\NavigationBarWidget.h" />
@ -247,6 +302,12 @@
<Project>{8f360763-a045-3808-87a9-3fae38e69819}</Project> <Project>{8f360763-a045-3808-87a9-3fae38e69819}</Project>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup>
<ResourceCompile Include="Resource.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="res\images\icon.ico" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')"> <ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
<Import Project="$(QtMsBuild)\qt.targets" /> <Import Project="$(QtMsBuild)\qt.targets" />

View File

@ -65,6 +65,24 @@
<Filter Include="Header Files\Renderer\Preview"> <Filter Include="Header Files\Renderer\Preview">
<UniqueIdentifier>{7ead1a66-586a-4584-ae80-9e7a4e667364}</UniqueIdentifier> <UniqueIdentifier>{7ead1a66-586a-4584-ae80-9e7a4e667364}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Header Files\Editor\Style">
<UniqueIdentifier>{be3f4585-c8ba-410f-8619-2adcd4349f02}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Editor\Style">
<UniqueIdentifier>{b9732a33-aa2e-4f8d-886f-1b1730c66519}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\Editor\Element">
<UniqueIdentifier>{8d846557-8fd5-47d5-8edf-eb3eb77c226b}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Editor\Element">
<UniqueIdentifier>{22d7f3ef-8185-476e-8fe1-aea24c4faacc}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\Editor\Layer">
<UniqueIdentifier>{6fc32493-d5a2-44c3-a283-d2d3181330fb}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Editor\Layer">
<UniqueIdentifier>{e6de889e-8313-4846-8bdf-125b766eef59}</UniqueIdentifier>
</Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<QtUic Include="MainWindow.ui"> <QtUic Include="MainWindow.ui">
@ -76,6 +94,18 @@
<QtUic Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.ui"> <QtUic Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.ui">
<Filter>Form Files</Filter> <Filter>Form Files</Filter>
</QtUic> </QtUic>
<QtUic Include="EditorSettingWidget.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="EditorLayerInfoWidget.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="LibraryWidget.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="PaintingItem.ui">
<Filter>Form Files</Filter>
</QtUic>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\Editor\EditorWidgetItem.cpp"> <ClCompile Include="src\Editor\EditorWidgetItem.cpp">
@ -111,9 +141,6 @@
<ClCompile Include="src\Renderer\RendererWidget.cpp"> <ClCompile Include="src\Renderer\RendererWidget.cpp">
<Filter>Source Files\Renderer</Filter> <Filter>Source Files\Renderer</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\NavigationBarWidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Renderer\Painting\BvhTree.cpp"> <ClCompile Include="src\Renderer\Painting\BvhTree.cpp">
<Filter>Source Files\Renderer\Painting</Filter> <Filter>Source Files\Renderer\Painting</Filter>
</ClCompile> </ClCompile>
@ -135,18 +162,6 @@
<ClCompile Include="src\Renderer\Painting\Element.cpp"> <ClCompile Include="src\Renderer\Painting\Element.cpp">
<Filter>Source Files\Renderer\Painting</Filter> <Filter>Source Files\Renderer\Painting</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\Editor\GraphicElement.cpp">
<Filter>Source Files\Editor</Filter>
</ClCompile>
<ClCompile Include="src\Editor\ElementManager.cpp">
<Filter>Source Files\Editor</Filter>
</ClCompile>
<ClCompile Include="src\Editor\LayerManager.cpp">
<Filter>Source Files\Editor</Filter>
</ClCompile>
<ClCompile Include="src\Editor\LayerWrapper.cpp">
<Filter>Source Files\Editor</Filter>
</ClCompile>
<ClCompile Include="src\Editor\PreviewWindow.cpp"> <ClCompile Include="src\Editor\PreviewWindow.cpp">
<Filter>Source Files\Editor</Filter> <Filter>Source Files\Editor</Filter>
</ClCompile> </ClCompile>
@ -156,12 +171,6 @@
<ClCompile Include="src\Renderer\Painting\CubicBezierSignedDistance.cpp"> <ClCompile Include="src\Renderer\Painting\CubicBezierSignedDistance.cpp">
<Filter>Source Files\Renderer\Painting</Filter> <Filter>Source Files\Renderer\Painting</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\Editor\RightBar\LayerTreeWidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Editor\RightBar\InfoDisplayWidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Renderer\Painting\ElementStyle.cpp"> <ClCompile Include="src\Renderer\Painting\ElementStyle.cpp">
<Filter>Source Files\Renderer\Painting</Filter> <Filter>Source Files\Renderer\Painting</Filter>
</ClCompile> </ClCompile>
@ -189,9 +198,6 @@
<ClCompile Include="src\Renderer\Preview\ElementRenderer.cpp"> <ClCompile Include="src\Renderer\Preview\ElementRenderer.cpp">
<Filter>Source Files\Renderer\Preview</Filter> <Filter>Source Files\Renderer\Preview</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\Editor\LayerStyle.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Renderer\IblUtils.cpp"> <ClCompile Include="src\Renderer\IblUtils.cpp">
<Filter>Source Files\Renderer</Filter> <Filter>Source Files\Renderer</Filter>
</ClCompile> </ClCompile>
@ -204,22 +210,103 @@
<ClCompile Include="src\Editor\PixelPath.cpp"> <ClCompile Include="src\Editor\PixelPath.cpp">
<Filter>Source Files\Editor</Filter> <Filter>Source Files\Editor</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\Editor\EditorWidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Editor\ElementPoolWidget.cpp">
<Filter>Source Files\Editor</Filter>
</ClCompile>
<ClCompile Include="src\FluentMenu.cpp"> <ClCompile Include="src\FluentMenu.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\Editor\util\PaintingUtil.cpp"> <ClCompile Include="src\Editor\util\PaintingUtil.cpp">
<Filter>Source Files\Editor\util</Filter> <Filter>Source Files\Editor\util</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.cpp"> <ClCompile Include="src\Editor\LayerStyle.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Editor\Style</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.cpp"> <ClCompile Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.cpp">
<Filter>Source Files\Editor\Style</Filter>
</ClCompile>
<ClCompile Include="src\Editor\EditorWidgetComponent\StrokeStyleWidget.cpp">
<Filter>Source Files\Editor\Style</Filter>
</ClCompile>
<ClCompile Include="src\Editor\RightBar\InfoDisplayWidget.cpp">
<Filter>Source Files\Editor</Filter>
</ClCompile>
<ClCompile Include="src\NavigationBarWidget.cpp">
<Filter>Source Files\Editor</Filter>
</ClCompile>
<ClCompile Include="src\Editor\EditorWidget.cpp">
<Filter>Source Files\Editor</Filter>
</ClCompile>
<ClCompile Include="src\Editor\RightBar\EditorSettingWidget.cpp">
<Filter>Source Files\Editor</Filter>
</ClCompile>
<ClCompile Include="src\Editor\EditorWidgetComponent\FillStyleWidget.cpp">
<Filter>Source Files\Editor\Style</Filter>
</ClCompile>
<ClCompile Include="src\Editor\ElementManager.cpp">
<Filter>Source Files\Editor\Element</Filter>
</ClCompile>
<ClCompile Include="src\Editor\ElementPoolWidget.cpp">
<Filter>Source Files\Editor\Element</Filter>
</ClCompile>
<ClCompile Include="src\Editor\GraphicElement.cpp">
<Filter>Source Files\Editor\Element</Filter>
</ClCompile>
<ClCompile Include="src\Editor\LayerManager.cpp">
<Filter>Source Files\Editor\Layer</Filter>
</ClCompile>
<ClCompile Include="src\Editor\RightBar\LayerTreeWidget.cpp">
<Filter>Source Files\Editor\Layer</Filter>
</ClCompile>
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.cpp">
<Filter>Source Files\Editor\Layer</Filter>
</ClCompile>
<ClCompile Include="src\Editor\LayerWrapper.cpp">
<Filter>Source Files\Editor\Layer</Filter>
</ClCompile>
<ClCompile Include="src\Editor\EditorWidgetComponent\FillStyleWidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Editor\DataManager\ProjectDataManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Editor\EditorWidgetComponent\ColorPicker.cpp">
<Filter>Source Files\Editor</Filter>
</ClCompile>
<ClCompile Include="src\FluentMenuButton.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerContainerListWidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Editor\Properties\PropertyWidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Editor\Properties\CanvasPropertyWidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Editor\Properties\ProjectPropertyDialog.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Editor\Properties\ProjectPropertyWidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Renderer\Preview\PaintingRenderer.cpp">
<Filter>Source Files\Renderer\Preview</Filter>
</ClCompile>
<ClCompile Include="src\Editor\util\JsonMerger.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Editor\Properties\MaterialReplaceDialog.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Library\LibraryWidget.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\FlowLayout.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Renderer\RenderPass.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Renderer\Shader.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>
@ -233,34 +320,70 @@
<QtMoc Include="src\Renderer\RendererWidget.h"> <QtMoc Include="src\Renderer\RendererWidget.h">
<Filter>Header Files\Renderer</Filter> <Filter>Header Files\Renderer</Filter>
</QtMoc> </QtMoc>
<QtMoc Include="src\NavigationBarWidget.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="src\MainWindow.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="src\Editor\PreviewWindow.h"> <QtMoc Include="src\Editor\PreviewWindow.h">
<Filter>Header Files\Editor</Filter> <Filter>Header Files\Editor</Filter>
</QtMoc> </QtMoc>
<QtMoc Include="src\Editor\RightBar\LayerTreeWidget.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="src\Editor\RightBar\InfoDisplayWidget.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="src\Editor\EditorWidget.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="src\Editor\ElementPoolWidget.h">
<Filter>Header Files\Editor</Filter>
</QtMoc>
<QtMoc Include="src\FluentMenu.h"> <QtMoc Include="src\FluentMenu.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</QtMoc> </QtMoc>
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.h"> <QtMoc Include="src\Editor\EditorWidgetComponent\StrokeStyleWidget.h">
<Filter>Header Files</Filter> <Filter>Header Files\Editor\Style</Filter>
</QtMoc> </QtMoc>
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.h"> <QtMoc Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.h">
<Filter>Header Files\Editor\Style</Filter>
</QtMoc>
<QtMoc Include="src\Editor\RightBar\InfoDisplayWidget.h">
<Filter>Header Files\Editor</Filter>
</QtMoc>
<QtMoc Include="src\Editor\EditorWidget.h">
<Filter>Header Files\Editor</Filter>
</QtMoc>
<QtMoc Include="src\MainWindow.h">
<Filter>Header Files\Editor</Filter>
</QtMoc>
<QtMoc Include="src\NavigationBarWidget.h">
<Filter>Header Files\Editor</Filter>
</QtMoc>
<QtMoc Include="src\Editor\EditorWidgetComponent\ColorPicker.h">
<Filter>Header Files\Editor</Filter>
</QtMoc>
<QtMoc Include="src\Editor\RightBar\EditorSettingWidget.h">
<Filter>Header Files\Editor</Filter>
</QtMoc>
<QtMoc Include="src\Editor\EditorWidgetComponent\FillStyleWidget.h">
<Filter>Header Files\Editor\Style</Filter>
</QtMoc>
<QtMoc Include="src\Editor\ElementPoolWidget.h">
<Filter>Header Files\Editor\Element</Filter>
</QtMoc>
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.h">
<Filter>Header Files\Editor\Layer</Filter>
</QtMoc>
<QtMoc Include="src\Editor\RightBar\LayerTreeWidget.h">
<Filter>Header Files\Editor\Layer</Filter>
</QtMoc>
<QtMoc Include="src\Editor\EditorWidgetComponent\FillStyleWidget.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerContainerListWidget.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="src\Editor\ElementManager.h">
<Filter>Header Files\Editor\Element</Filter>
</QtMoc>
<QtMoc Include="src\Editor\Properties\CanvasPropertyWidget.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="src\Editor\Properties\ProjectPropertyDialog.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="src\Editor\Properties\ProjectPropertyWidget.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="src\Editor\Properties\MaterialReplaceDialog.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="src\Library\LibraryWidget.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</QtMoc> </QtMoc>
</ItemGroup> </ItemGroup>
@ -341,6 +464,10 @@
<None Include="res\Shaders\pageId_downsample.comp"> <None Include="res\Shaders\pageId_downsample.comp">
<Filter>Resource Files\Shaders</Filter> <Filter>Resource Files\Shaders</Filter>
</None> </None>
<None Include="res\Shaders\tone_mapping.comp" />
<None Include="res\Shaders\painting_shadow.frag" />
<None Include="res\Shaders\ssao.comp" />
<None Include="res\Shaders\ssao_blur.comp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<QtUic Include="EditorWidgetItem.ui"> <QtUic Include="EditorWidgetItem.ui">
@ -393,15 +520,6 @@
<ClInclude Include="src\Renderer\Painting\Element.h"> <ClInclude Include="src\Renderer\Painting\Element.h">
<Filter>Header Files\Renderer\Painting</Filter> <Filter>Header Files\Renderer\Painting</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\Editor\GraphicElement.h">
<Filter>Header Files\Editor</Filter>
</ClInclude>
<ClInclude Include="src\Editor\LayerManager.h">
<Filter>Header Files\Editor</Filter>
</ClInclude>
<ClInclude Include="src\Editor\ElementManager.h">
<Filter>Header Files\Editor</Filter>
</ClInclude>
<ClInclude Include="src\Renderer\Painting\LineTree.h"> <ClInclude Include="src\Renderer\Painting\LineTree.h">
<Filter>Header Files\Renderer\Painting</Filter> <Filter>Header Files\Renderer\Painting</Filter>
</ClInclude> </ClInclude>
@ -441,9 +559,6 @@
<ClInclude Include="src\Renderer\Preview\ElementRenderer.h"> <ClInclude Include="src\Renderer\Preview\ElementRenderer.h">
<Filter>Header Files\Renderer\Preview</Filter> <Filter>Header Files\Renderer\Preview</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\Editor\PixelPath.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\Renderer\IblUtils.h"> <ClInclude Include="src\Renderer\IblUtils.h">
<Filter>Header Files\Renderer</Filter> <Filter>Header Files\Renderer</Filter>
</ClInclude> </ClInclude>
@ -457,12 +572,66 @@
<Filter>Header Files\Editor\util</Filter> <Filter>Header Files\Editor\util</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\Editor\LayerStyle.h"> <ClInclude Include="src\Editor\LayerStyle.h">
<Filter>Header Files\Editor\Style</Filter>
</ClInclude>
<ClInclude Include="src\Editor\util\JsonUtil.hpp">
<Filter>Header Files\Editor\util</Filter>
</ClInclude>
<ClInclude Include="src\Editor\util\EncodeUtil.hpp">
<Filter>Header Files\Editor\util</Filter>
</ClInclude>
<ClInclude Include="src\Editor\GraphicElement.h">
<Filter>Header Files\Editor\Element</Filter>
</ClInclude>
<ClInclude Include="src\Editor\LayerManager.h">
<Filter>Header Files\Editor\Layer</Filter>
</ClInclude>
<ClInclude Include="src\Editor\PixelPath.h">
<Filter>Header Files\Editor</Filter> <Filter>Header Files\Editor</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\Editor\LayerWrapper.h">
<Filter>Header Files\Editor\Layer</Filter>
</ClInclude>
<ClInclude Include="src\ColorHelper.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\Editor\DataManager\ProjectDataManager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\FluentMenuButton.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\Editor\Properties\PropertyWidget.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\Renderer\Preview\PaintingRenderer.h">
<Filter>Header Files\Renderer\Preview</Filter>
</ClInclude>
<ClInclude Include="src\Editor\util\JsonMerger.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\FlowLayout.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\Renderer\RenderPass.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\Renderer\Shader.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<QtRcc Include="res\MainWindow.qrc"> <QtRcc Include="res\MainWindow.qrc">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</QtRcc> </QtRcc>
</ItemGroup> </ItemGroup>
<ItemGroup>
<ResourceCompile Include="Resource.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="res\images\icon.ico" />
</ItemGroup>
</Project> </Project>

View File

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>EditorLayerInfoWidget</class>
<widget class="QWidget" name="EditorLayerInfoWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>333</width>
<height>321</height>
</rect>
</property>
<property name="windowTitle">
<string/>
</property>
<layout class="QGridLayout" name="widgetLayout">
<item row="0" column="0" colspan="2">
<widget class="QtMaterialTextField" name="name">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QtMaterialTextField" name="rotation">
<property name="readOnly">
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QtMaterialTextField" name="offsetX">
<property name="readOnly">
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QtMaterialTextField" name="offsetY">
<property name="readOnly">
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QtMaterialTextField" name="scaleX">
<property name="readOnly">
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QtMaterialTextField" name="scaleY">
<property name="readOnly">
<bool>false</bool>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QtMaterialCheckBox" name="flipX">
<property name="text">
<string>水平翻转</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QtMaterialCheckBox" name="flipY">
<property name="text">
<string>竖直翻转</string>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="LayerContainerListWidget" name="styleList" native="true"/>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>QtMaterialTextField</class>
<extends>QLineEdit</extends>
<header location="global">qtmaterialtextfield.h</header>
</customwidget>
<customwidget>
<class>QtMaterialCheckBox</class>
<extends>QCheckBox</extends>
<header location="global">qtmaterialcheckbox.h</header>
</customwidget>
<customwidget>
<class>LayerContainerListWidget</class>
<extends>QWidget</extends>
<header location="global">EditorWidgetComponent/LayerContainerListWidget.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>EditorSettingWidget</class>
<widget class="QWidget" name="EditorSettingWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="backgroundColorButton">
<property name="text">
<string>设置背景颜色</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>EditorSettingWidget</class>
<widget class="QWidget" name="EditorSettingWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item alignment="Qt::AlignHCenter">
<widget class="QPushButton" name="backgroundColorButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>120</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>设置背景颜色</string>
</property>
</widget>
</item>
<item alignment="Qt::AlignHCenter">
<widget class="QPushButton" name="renameButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>120</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>设置项目名称</string>
</property>
</widget>
</item>
<item alignment="Qt::AlignHCenter">
<widget class="QPushButton" name="resizeButton">
<property name="maximumSize">
<size>
<width>120</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>设置画布尺寸</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -41,7 +41,7 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="1,1,1,1,1,0"> <layout class="QHBoxLayout" name="horizontalLayout_2" stretch="1,1,0">
<property name="spacing"> <property name="spacing">
<number>0</number> <number>0</number>
</property> </property>
@ -49,7 +49,7 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<widget class="QPushButton" name="createButton"> <widget class="FluentMenuButton" name="fileMenuButton">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>80</width>
@ -63,12 +63,12 @@
</size> </size>
</property> </property>
<property name="text"> <property name="text">
<string>新建</string> <string>文件</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="openButton"> <widget class="FluentMenuButton" name="projectMenuButton">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>80</width>
@ -82,70 +82,7 @@
</size> </size>
</property> </property>
<property name="text"> <property name="text">
<string>打开</string> <string>项目</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="saveButton">
<property name="minimumSize">
<size>
<width>80</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>80</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>保存</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="saveAsButton">
<property name="minimumSize">
<size>
<width>80</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>80</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>另存为</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="closeButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>80</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>80</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>关闭</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -178,6 +115,9 @@
<property name="currentIndex"> <property name="currentIndex">
<number>0</number> <number>0</number>
</property> </property>
<property name="tabsClosable">
<bool>true</bool>
</property>
<widget class="QWidget" name="tab"> <widget class="QWidget" name="tab">
<attribute name="title"> <attribute name="title">
<string>Tab 1</string> <string>Tab 1</string>
@ -194,6 +134,13 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>FluentMenuButton</class>
<extends>QPushButton</extends>
<header location="global">../FluentMenuButton.h</header>
</customwidget>
</customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>

View File

@ -37,43 +37,68 @@
</property> </property>
<item> <item>
<widget class="QWidget" name="MainWindow" native="true"> <widget class="QWidget" name="MainWindow" native="true">
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="30"> <layout class="QVBoxLayout" name="verticalLayout_2" stretch="20,1">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,12,5"> <layout class="QHBoxLayout" name="horizontalLayout" stretch="0,7,4,3">
<item> <item>
<widget class="QWidget" name="LeftBar" native="true"/> <widget class="QWidget" name="LeftBar" native="true"/>
</item> </item>
<item> <item>
<widget class="PreviewWindow" name="Preview"> <widget class="QScrollArea" name="scrollArea">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>1080</width> <width>0</width>
<height>1080</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>1080</width> <width>10801080</width>
<height>1080</height> <height>10801080</height>
</size> </size>
</property> </property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="PreviewWindow" name="Preview">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>0</width>
<height>0</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
</widget>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QWidget" name="RightBar" native="true"> <widget class="QWidget" name="RightBar" native="true">
<layout class="QVBoxLayout" name="verticalLayout_4" stretch="3,2"> <layout class="QVBoxLayout" name="verticalLayout_4" stretch="0,3,2">
<property name="spacing"> <property name="spacing">
<number>20</number> <number>20</number>
</property> </property>
@ -90,28 +115,24 @@
<number>11</number> <number>11</number>
</property> </property>
<item> <item>
<widget class="QTabWidget" name="DisplayTab"> <widget class="QLabel" name="LayerDisplayLabel">
<property name="minimumSize"> <property name="sizePolicy">
<size> <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<width>0</width> <horstretch>0</horstretch>
<height>0</height> <verstretch>0</verstretch>
</size> </sizepolicy>
</property> </property>
<property name="currentIndex"> <property name="text">
<number>1</number>
</property>
<widget class="InfoDisplayWidget" name="LayerDisplay">
<attribute name="title">
<string>图层信息</string> <string>图层信息</string>
</attribute> </property>
</widget> <property name="alignment">
<widget class="ElementPoolWidget" name="ElementDisplay"> <set>Qt::AlignCenter</set>
<attribute name="title"> </property>
<string>图元池</string>
</attribute>
</widget>
</widget> </widget>
</item> </item>
<item>
<widget class="InfoDisplayWidget" name="LayerDisplay" native="true"/>
</item>
<item> <item>
<widget class="LayerTreeWidget" name="LayerTree"> <widget class="LayerTreeWidget" name="LayerTree">
<property name="minimumSize"> <property name="minimumSize">
@ -126,9 +147,20 @@
<property name="accessibleName"> <property name="accessibleName">
<string/> <string/>
</property> </property>
<property name="iconSize">
<size>
<width>10</width>
<height>10</height>
</size>
</property>
<column> <column>
<property name="text"> <property name="text">
<string>图层树</string> <string>图层名</string>
</property>
</column>
<column>
<property name="text">
<string>关联图元</string>
</property> </property>
</column> </column>
</widget> </widget>
@ -136,9 +168,39 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<layout class="QVBoxLayout" name="ElementBar">
<item>
<widget class="QLabel" name="ElementDisplayLabel">
<property name="text">
<string>图元</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="ElementPoolWidget" name="ElementDisplay" native="true"/>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget> </widget>
</item> </item>
</layout> </layout>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>LibraryWidgetClass</class>
<widget class="QWidget" name="LibraryWidgetClass">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1124</width>
<height>695</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,1">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QComboBox" name="classComboBox">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="amountLabel">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QScrollArea" name="scrollArea">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="flowWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1106</width>
<height>639</height>
</rect>
</property>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -43,6 +43,7 @@
<item row="0" column="0"> <item row="0" column="0">
<widget class="QStackedWidget" name="stackedWidget"> <widget class="QStackedWidget" name="stackedWidget">
<widget class="EditorWidget" name="editorWidget"/> <widget class="EditorWidget" name="editorWidget"/>
<widget class="Library::LibraryWidget" name="libraryWidget"/>
<widget class="Renderer::RendererWidget" name="rendererWidget"/> <widget class="Renderer::RendererWidget" name="rendererWidget"/>
</widget> </widget>
</item> </item>
@ -62,6 +63,12 @@
<extends>QWidget</extends> <extends>QWidget</extends>
<header>Editor/EditorWidget.h</header> <header>Editor/EditorWidget.h</header>
</customwidget> </customwidget>
<customwidget>
<class>Library::LibraryWidget</class>
<extends>QWidget</extends>
<header>Library/LibraryWidget.h</header>
<container>1</container>
</customwidget>
</customwidgets> </customwidgets>
<resources/> <resources/>
<connections/> <connections/>

View File

@ -1,2 +1,2 @@
17876391417123941155.jpg 0.json 0 0 1 1 17876391417123941155.jpg paintings/4_L0/4_L0.json 0 0 1 1
11474523244911310074.jpg 1.json 0 0 1 1 11474523244911310074.jpg paintings/4/4.json 0 0 1 1

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38.66 57"><defs><style>.cls-1{fill:none;stroke:#fff;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><path class="cls-1" d="M.81,0C.12,12.47.64,23.24,1.87,29.9c1.85,10,3.32,18,10.21,22.72,5.59,3.83,15.45,6,21.45.77,2.53-2.22,4.92-5.91,4.6-10a9.27,9.27,0,0,0-2-5.55,1.84,1.84,0,0,0-2.16-.51c-.67.36-1.39,1.08-1.11,1.79s1.81,1,2.85.59"/></g></g></svg>

After

Width:  |  Height:  |  Size: 468 B

View File

@ -0,0 +1 @@
<svg id="图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 132.41 212.39"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M913.32,439.45c-11.51,0-22-31.5-26.41-54.39-3.31-17.24-7.69-41.49.51-71.48,2.17-7.9,9.92-33.44,30.57-56.46,9.91-11.05,29.52-29,29.52-29a125.61,125.61,0,0,1,26.42,18.12,123.6,123.6,0,0,1,27.45,35.23c9,17.55,11.23,32.73,12.43,41.44,3.34,24.16-.39,42.85-2.59,53.35-2.88,13.77-8.8,26-20.64,50.48-2.24,4.62-6.58,13.33-13,13.75-3.28.21-4.53-1.88-9.84-4.66a48.86,48.86,0,0,0-24.34-5.18c-7.72.26-13.85,2.44-18.65,4.14C916.41,437.74,916,439.45,913.32,439.45Z" transform="translate(-882.73 -228.12)"/></svg>

After

Width:  |  Height:  |  Size: 669 B

View File

@ -0,0 +1 @@
<svg id="图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150.07 140.14"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M814.91,563.25a68.61,68.61,0,0,0-17.1,14.51,75,75,0,0,0-9.32,14.5c-3.6,7-5.36,12.57-7.77,20.2-.79,2.49-2.08,7.36-4.66,17.09-3.59,13.53-4.16,16.2-4.66,19.69s.06.85-1,14.5c-.48,6-.69,7.7.52,8.81,2.26,2.07,6-1.19,14.5-2.08,3.59-.37,7.57.1,15.54,1,9.28,1.09,8.87,1.62,14,2.07,8.71.78,15.42-.26,23.82-1.55,7.65-1.18,11.47-1.77,16.58-3.63A61.4,61.4,0,0,0,873.44,658c1.77-1.47,8.2-7,16.57-21.75,5.28-9.29,4.16-9.62,11.92-26.42,5.12-11.09,9.43-22.55,14.5-33.67,2.38-5.21,5.16-11.14,2.59-15.54-1.78-3-5-3.39-8.8-5.18-10.3-4.79-10.91-13.35-16.58-18.13C877.88,524.07,835.51,550.43,814.91,563.25Z" transform="translate(-769.98 -533.71)"/></svg>

After

Width:  |  Height:  |  Size: 804 B

View File

@ -0,0 +1 @@
<svg id="图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 125.59 140.06"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M946,430.61a63.41,63.41,0,0,0-18,3.05,52.54,52.54,0,0,0-20.86,12c-5.59,5.4-8.16,10.56-11.92,18.13-2.87,5.8-6.93,14.12-8.8,25.9a78.11,78.11,0,0,0,.78,29.25,66.55,66.55,0,0,0,13.91,28.78A63.83,63.83,0,0,0,970.3,567.4c5.76-1.81,15.86-5.12,24.87-14.51s11.83-19.42,13.46-25.38c4.2-15.3,1.86-27.85,0-37.81s-4-21.77-13-34.19c-3.54-4.94-10.09-13.87-22.27-19.68C961.83,430.3,951.22,430.46,946,430.61Z" transform="translate(-885.39 -430.56)"/></svg>

After

Width:  |  Height:  |  Size: 611 B

View File

@ -0,0 +1 @@
<svg id="图层_3" data-name="图层 3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 387.48 240.17"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M148.59,482.78c15.46,22.43,45,58.45,93.24,84.61a256.52,256.52,0,0,0,77.7,27.28,239.38,239.38,0,0,0,57.66,2.76c17.92-1.35,40.71-3.08,66.65-15.19A163,163,0,0,0,507.38,528c7-10.06,26.87-39.53,28.66-81.5,0,0,1.41-32.95-15.19-66.64-3.31-6.72-8.08-14.77-17.27-19-2.46-1.13-12.29-5.66-22.1-.69-7.14,3.63-13.6,12-12.08,18.65,1.85,8.17,15.89,15.08,34.18,11.05" transform="translate(-148.59 -357.91)"/></svg>

After

Width:  |  Height:  |  Size: 570 B

View File

@ -0,0 +1 @@
<svg id="图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 369 292.11"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M749,200c4.43-17.3,22.4-78.56,81-114,36-21.8,71.16-24,92-25,25.62-1.28,75.88-3.79,123,29,71.9,50,73,138.09,73,143-.08,19.3-.29,71.77-39,101-19.94,15.05-41.15,17.37-48,18-41.13,3.78-96.62-14.85-114-62-13.32-36.14,2.58-70.23,7-79" transform="translate(-749 -60.37)"/></svg>

After

Width:  |  Height:  |  Size: 440 B

View File

@ -0,0 +1 @@
<svg id="图层_3" data-name="图层 3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 230.86 225.05"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M1111.83,280.35c6.17,16.23,20.24,45.83,50.77,68.89,11.93,9,29.94,22.26,57,25.38,33,3.8,57.82-9.95,65.78-14.5A115.33,115.33,0,0,0,1332,309.35c2.73-5.88,23.6-53-1.56-100.49-17-32.16-53.06-60.62-94.27-58.53-20.46,1-36.19,9.31-45.06,15" transform="translate(-1111.83 -150.22)"/></svg>

After

Width:  |  Height:  |  Size: 452 B

View File

@ -0,0 +1 @@
<svg id="图层_4" data-name="图层 4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 82.97 81.32"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M1031,55c3.85,12.26,9.48,17.33,14,19.69,4.23,2.2,7.34,1.94,13.47,5.69,4.43,2.71,7.32,5.7,10.88,9.33,4,4.07,4.84,5.69,10.88,11.91,4.16,4.3,5.31,5.12,6.21,5.7,4,2.58,6.41,2.33,11.92,4.14,5.73,1.89,10.25,3.37,13,6.74,4.52,5.65,2.21,14.5,1,18.13" transform="translate(-1031.03 -55.02)"/></svg>

After

Width:  |  Height:  |  Size: 459 B

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 265 B

View File

Before

Width:  |  Height:  |  Size: 617 B

After

Width:  |  Height:  |  Size: 617 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38.66 57"><defs><style>.cls-1{fill:none;stroke:#fff;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><path class="cls-1" d="M.81,0C.12,12.47.64,23.24,1.87,29.9c1.85,10,3.32,18,10.21,22.72,5.59,3.83,15.45,6,21.45.77,2.53-2.22,4.92-5.91,4.6-10a9.27,9.27,0,0,0-2-5.55,1.84,1.84,0,0,0-2.16-.51c-.67.36-1.39,1.08-1.11,1.79s1.81,1,2.85.59"/></g></g></svg>

After

Width:  |  Height:  |  Size: 468 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2486.79 1894.11">
<title>biankuang</title>
<rect x="0.5" y="0.5" width="2485.79" height="1893.11" fill="none" stroke="#000" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 213 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 292.05 208.4">
<title>changJ</title>
<path d="M158.18-81.15C139.41-27.59,70.72,31.33,27.87,45.84c-70.12,23.74-154,.87-160.12-71.22-4.42-52.46,13.8-92.76,53.56-116,27.89-16.27,70.05-15.29,91.4,6.07,21.54,21.53,8.16,52.76-.85,61.84C3.74-65.24-9.26-64.64-14.4-67.09A11.69,11.69,0,0,1-20.33-80.5c1.37-5.43,7-9.65,14.28-6.74A5.44,5.44,0,0,1-2.6-80.8" transform="translate(133.4 153.03)" fill="none" stroke="#000" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 497 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 114.87 185.42">
<title>duanJ</title>
<path d="M-186.33-16.19c-70.52,9.38-121.87,65.84-113.39,123,6.54,44.07,52.94,71.66,78.22,57.91,25.72-14,23.58-42.55,3.22-52.55-5.69-2.8-14.54-3.61-20.72-1.43s-8.93,8.57-6.89,12.51c1.82,3.52,4.45,5.31,8,5.48,5.62.27,6.7-4.06,6.7-4.06" transform="translate(301.14 16.69)" fill="none" stroke="#000" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 422 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 155.8 283.83">
<title>houbanJ</title>
<path d="M-225.88,282.68c81-31.64,138.8-91.31,153.49-177,8.7-50.8-18.78-88.12-50.26-105.92" transform="translate(226.06 0.68)" fill="none" stroke="#000" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 280 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 84.26 18.74">
<title>hu</title>
<path d="M257.42,90.62c15.49,22.88,67.94,25,83.43,0" transform="translate(-257.01 -90.34)" fill="none" stroke="#000" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 238 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 78.67 94.24">
<title>huaban</title>
<path d="M306.77-206.23c-15.21,0-32.25-23-38.66-41.61-10-29,11.5-34,19.91-34.82a4,4,0,0,0,3.56-3.3c3.3-18.19,23.44-17.7,27.49-.38a4.38,4.38,0,0,0,4,3.32c7.48.54,25.11,3.49,18.82,30.06C339.32-242.22,321.71-206.21,306.77-206.23Z" transform="translate(-265.02 299.96)" fill="none" stroke="#000" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 417 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 456.05 403.05">
<title>tuoyuan</title>
<path d="M300.18,183c144.72-.06,230.41,77.65,230.61,191C531,494.57,446.73,585,305.1,585,172.6,585,75.67,501,75.75,377.61,75.81,265.34,158.13,183.05,300.18,183Z" transform="translate(-75.25 -182.48)" fill="none" stroke="#000" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 353 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31.28 179.75">
<title>yezi</title>
<path d="M-789.16,247c-63.35-70.42,2.48-107.35,2.75-131.39.21-18.15-4-30.2-14.14-47.77" transform="translate(817.18 -67.58)" fill="none" stroke="#000" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 275 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 116.45 116.45"><defs><style>.cls-1{fill:#fff;stroke:#231815;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><rect class="cls-1" x="0.5" y="0.5" width="115.45" height="115.45"/></g></g></svg>

After

Width:  |  Height:  |  Size: 310 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.45 1"><defs><style>.cls-1{fill:none;stroke:#231815;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><line class="cls-1" y1="0.5" x2="100.45" y2="0.5"/></g></g></svg>

After

Width:  |  Height:  |  Size: 288 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 168.53 311.11"><defs><style>.cls-1{fill:#fff;stroke:#231815;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><rect class="cls-1" x="0.5" y="0.5" width="167.53" height="310.11"/></g></g></svg>

After

Width:  |  Height:  |  Size: 310 B

View File

@ -0,0 +1,548 @@
{
"background-color": "#bd8e24",
"elements": [
{
"data": {
"include": "/svg/2.svg"
},
"name": "ababa",
"type": "svg-file"
},
{
"data": {
"include": "/svg/0.svg"
},
"name": "ababa2",
"type": "svg-file"
},
{
"data": {
"include": "/svg/4_L0.svg"
},
"name": "4_L0.svg",
"type": "svg-file"
},
{
"data": {
"reference-layer": "0.0"
},
"name": "图源工",
"type": "group"
},
{
"data": {
"reference-layer": "0.0"
},
"name": "图源万",
"type": "group"
},
{
"data": {
"include": "/svg/正方形.svg"
},
"name": "正方形.svg",
"type": "svg-file"
}
],
"height": 1080,
"metallic": 1,
"project-name": "样例1",
"root-layer": {
"children": [
{
"element": 5,
"is-folder": false,
"name": "边框",
"styles": [
{
"enableEachSideIndependent": true,
"left": "AADgQAAAAAADACScAH9mZuZUOf8Af8zM64dX/wB////vv3b/",
"right": "AADgQAAAAAAAAAqc",
"type": "stroke"
}
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 480,
"y": 482
},
"rotation": 0,
"scale": {
"x": 9.40621,
"y": 9.40621
}
}
},
{
"children": [
{
"children": [
{
"children": [
{
"element": 2,
"is-folder": false,
"name": "4_L0",
"styles": [
{
"material": "AH8A/1JOff8=",
"type": "fill"
},
{
"enableEachSideIndependent": true,
"left": "AAAAQAAAAAABACScAH////XNff8=",
"right": "AADgQAAAAAAAAAqc",
"type": "stroke"
}
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 0,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
}
],
"is-folder": true,
"name": "工",
"referenced-by": 3,
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 0,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 3,
"is-folder": false,
"name": "1",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 103,
"y": -1
},
"rotation": 90,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 3,
"is-folder": false,
"name": "2",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 104,
"y": 100
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 3,
"is-folder": false,
"name": "3",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 3,
"y": 102
},
"rotation": 90,
"scale": {
"x": 1,
"y": 1
}
}
}
],
"is-folder": true,
"name": "子图层-1",
"referenced-by": 4,
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 0,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-2",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 204,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-3",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 3,
"y": 205
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-4",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 207,
"y": 203
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-5",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 407,
"y": -2
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-6",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 411,
"y": 201
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-7",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 6,
"y": 408
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-8",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 210,
"y": 408
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-9",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 414,
"y": 405
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-10",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 610,
"y": -3
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-11",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 614,
"y": 200
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-12",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 617,
"y": 405
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-13",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": -3,
"y": -202
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-14",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 200,
"y": -203
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-15",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 402,
"y": -205
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 4,
"is-folder": false,
"name": "子图层-16",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 606,
"y": -206
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
}
],
"is-folder": true,
"name": "content",
"referenced-by": null,
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 116,
"y": 288
},
"rotation": 60,
"scale": {
"x": 1.85202,
"y": 1.85202
}
}
}
],
"is-folder": true,
"name": "root",
"referenced-by": null,
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 0,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
"roughness": 0.10000000149011612,
"width": 1080
}

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 106.93 99.81"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><title>0</title><g id="图层_2" data-name="图层 2"><polyline class="cls-1" points="27.24 16.75 27.24 2.15 7.2 2.15 7.2 22.78 46.7 22.78"/></g><g id="图层_3" data-name="图层 3"><polyline class="cls-1" points="27.24 30.37 27.24 44.97 0 44.97"/></g><g id="图层_4" data-name="图层 4"><path class="cls-1" d="M292.82,107.78s0,0,0,0,0,3.59,0,7.62c0,3.85,0,5.78.06,6.43a19.94,19.94,0,0,0,2.87,7.58,15.85,15.85,0,0,0,6.61,6.23A14.75,14.75,0,0,0,310,137a11.69,11.69,0,0,0,7.59-2.92,11,11,0,0,0,3.2-6.84c.15-1.27.58-4.84-1.79-7.64a8.54,8.54,0,0,0-3.56-2.44c-1.32-.52-3.32-1.31-5.06-.33a5.41,5.41,0,0,0-2.14,3,3.48,3.48,0,0,0-.16,2.71c.78,1.86,3.36,2.14,3.47,2.15" transform="translate(-287.18 -56.2)"/></g><g id="图层_5" data-name="图层 5"><path class="cls-1" d="M339.72,85.41V58.75a69.07,69.07,0,0,1,14.79,0c5.9.63,9.31,1,12.84,3.5,1.76,1.22,6.37,4.43,6.68,9.92.25,4.38-2.27,9.26-6.72,11-3.5,1.39-8.46,1-10.71-2.06-.14-.18-2-2.82-.92-5.46.63-1.51,2.34-3.23,4.28-2.92a3.76,3.76,0,0,1,2.33,1.55" transform="translate(-287.18 -56.2)"/></g><g id="图层_6" data-name="图层 6"><path class="cls-1" d="M301.38,145.93a8.21,8.21,0,0,1-.77,5.83c-.26.44-2.5,4.23-5.84,3.7a5,5,0,0,1-3.89-3.5c-.1-.35-1-3,.58-4.09a3.28,3.28,0,0,1,3.89.58" transform="translate(-287.18 -56.2)"/><path class="cls-1" d="M323.18,115.76a7.37,7.37,0,0,1,7.39-8.17c.49,0,4.07.12,5.65,2.92.19.34,1.52,2.7.19,4.67a4.33,4.33,0,0,1-4.67,1.56" transform="translate(-287.18 -56.2)"/></g><g id="图层_7" data-name="图层 7"><path class="cls-1" d="M352.17,86.57a14.23,14.23,0,0,0-4.67,2.73c-1.59,1.4-3.37,3-3.5,5.45a6.45,6.45,0,0,0,2.14,4.86c1.28,1.1,3.68,2.22,5.84,1.17,1.64-.8,3.31-3,2.53-4.67a3.6,3.6,0,0,0-3.31-1.75" transform="translate(-287.18 -56.2)"/><path class="cls-1" d="M382.34,66.53a17.27,17.27,0,0,0,3.89.39c2.16,0,3.53,0,4.86-1a6.15,6.15,0,0,0,2.34-3.89c.17-1,.53-2.93-.78-4.29a4.32,4.32,0,0,0-4.48-.77A3.62,3.62,0,0,0,386,58.75a3.75,3.75,0,0,0,.2,3.31" transform="translate(-287.18 -56.2)"/></g></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1 @@
<svg id="图层_3" data-name="图层 3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27.74 15.09"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><title>2</title><polyline class="cls-1" points="27.24 0 27.24 14.6 0 14.6"/></svg>

After

Width:  |  Height:  |  Size: 265 B

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 141 171" style="enable-background:new 0 0 141 171;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#000000;stroke-miterlimit:10;}
</style>
<polygon class="st0" points="0.5,0.5 140.5,0.5 140.5,10.5 115.5,10.5 115.5,31.5 105.5,31.5 105.5,10.5 75.5,10.5 75.5,165.8
105.5,165.8 105.5,144.7 115.5,144.7 115.5,165.8 140.5,165.8 140.5,175.8 0.5,175.8 0.5,165.8 25.5,165.8 25.5,144.7 35.5,144.7
35.5,165.8 65.5,165.8 65.5,10.5 35.5,10.5 35.5,31.5 25.5,31.5 25.5,10.5 0.5,10.5 "/>
</svg>

After

Width:  |  Height:  |  Size: 781 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 116.45 116.45"><defs><style>.cls-1{fill:#fff;stroke:#231815;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><rect class="cls-1" x="0.5" y="0.5" width="115.45" height="115.45"/></g></g></svg>

After

Width:  |  Height:  |  Size: 310 B

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38.66 57"><defs><style>.cls-1{fill:none;stroke:#fff;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><path class="cls-1" d="M.81,0C.12,12.47.64,23.24,1.87,29.9c1.85,10,3.32,18,10.21,22.72,5.59,3.83,15.45,6,21.45.77,2.53-2.22,4.92-5.91,4.6-10a9.27,9.27,0,0,0-2-5.55,1.84,1.84,0,0,0-2.16-.51c-.67.36-1.39,1.08-1.11,1.79s1.81,1,2.85.59"/></g></g></svg>

After

Width:  |  Height:  |  Size: 468 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

@ -0,0 +1 @@
<svg id="图层_3" data-name="图层 3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 59.76 69.52"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M620.61,223.54a75.28,75.28,0,0,0-2.42,19.34,64.83,64.83,0,0,0,3.11,20.72c1.56,4.75,3.72,11.19,9.33,17.61,2.74,3.14,6.67,7.65,13.61,10.16a28.09,28.09,0,0,0,14.7,1.23,21.35,21.35,0,0,0,18.3-18c.53-2.47,1.72-8.13-1-14.16-.59-1.29-4.1-9-10.71-9.67-2.55-.26-6.79.4-8,3.33a5,5,0,0,0,1.76,6c2.09,1.27,5.26.52,6.9-2.07" transform="translate(-618.19 -223.54)"/></svg>

After

Width:  |  Height:  |  Size: 528 B

View File

@ -0,0 +1 @@
<svg id="图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 42.97 47.91"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M671.72,302.62a78.23,78.23,0,0,1,12.78,1.73c4.86,1.06,8.45,1.84,12.77,4.14A36,36,0,0,1,708,317.12c2,2.43,5.68,7,6.56,13.82a18.18,18.18,0,0,1-1.73,10.35,16.13,16.13,0,0,1-7.94,7.95c-1.14.49-6.79,2.83-11.74-.35a11.67,11.67,0,0,1-4.84-7.25c-.39-1.72-1.06-4.64.7-6.22,1.39-1.25,4.3-1.65,5.63.08a4,4,0,0,1-1.15,5.45" transform="translate(-671.72 -302.62)"/></svg>

After

Width:  |  Height:  |  Size: 528 B

View File

@ -0,0 +1 @@
<svg id="图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64.46 48.66"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M706.94,231.14a47.13,47.13,0,0,1,.69-13.13,34.05,34.05,0,0,1,4.43-12.38,30.82,30.82,0,0,1,10.42-10.06A35.84,35.84,0,0,1,747,191.08a30.08,30.08,0,0,1,15.64,7.53,25.72,25.72,0,0,1,8.19,14.57,22.41,22.41,0,0,1-2.07,14.5c-5.47,10.17-17.13,11.3-18.31,11.4-2.36.19-6.84.55-10.89-2.31-.79-.56-5.83-4.12-5.34-9.43.24-2.51,1.74-5.78,4.84-6.91,3.4-1.24,7.82.43,8,2.33.23,2.08-4.61,4.11-4.91,4.23" transform="translate(-706.76 -190.54)"/></svg>

After

Width:  |  Height:  |  Size: 603 B

View File

@ -0,0 +1 @@
<svg id="图层_3" data-name="图层 3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 137.06 95.62"><defs><style>.cls-1{fill:none;stroke:#000;stroke-miterlimit:10;}</style></defs><polyline class="cls-1" points="0.5 22.6 0.5 95.12 136.56 95.12 136.56 0.5 21.57 0.5 21.57 69.56 100.3 69.56 100.8 24.23 39.42 23.6"/></svg>

After

Width:  |  Height:  |  Size: 321 B

View File

@ -0,0 +1 @@
<svg id="图层_4" data-name="图层 4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.96 65.56"><defs><style>.cls-1{fill:none;stroke:#000;stroke-miterlimit:10;}</style></defs><path class="cls-1" d="M677.25,145.44c4.22-4.24,7.48-7.5,9.36-9.36,6.33-6.29,7.87-7.75,9.36-10.8,1-2.06,3.2-6.55,2.08-11.56-.8-3.55-2.48-3.86-6.4-9.67s-7.09-10.49-6.12-15.48c.29-1.53,1.3-4.72,5.76-7.92" transform="translate(-676.89 -80.24)"/></svg>

After

Width:  |  Height:  |  Size: 428 B

View File

@ -0,0 +1 @@
<svg id="图层_5" data-name="图层 5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70.87 57.01"><defs><style>.cls-1{fill:none;stroke:#000;stroke-miterlimit:10;}</style></defs><path class="cls-1" d="M797.48,319.31a41.11,41.11,0,0,0,10.8,19.8A39.13,39.13,0,0,0,831,350.63c3.82.49,17.95,2.28,28.08-7.92,8.67-8.73,8.43-20.25,8.28-23-.17-3.09-.67-10.33-6.12-16.56-1.39-1.58-8.41-9.16-17.64-7.92-1.44.2-6.14.83-9,4.68-3.9,5.25-2.45,13.86,2.52,17.64.23.18,4,2.88,8.28,1.8.85-.21,4.37-1.09,4.68-3.6a4.07,4.07,0,0,0-3.6-4.32,4,4,0,0,0-3.6,2.16" transform="translate(-796.99 -294.56)"/></svg>

After

Width:  |  Height:  |  Size: 587 B

View File

@ -0,0 +1 @@
<svg id="图层_6" data-name="图层 6" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20.42 57.45"><defs><style>.cls-1{fill:none;stroke:#000;stroke-miterlimit:10;}</style></defs><path class="cls-1" d="M818.36,343.43a28.43,28.43,0,0,1-15.48-11.52c-6.3-9.79-3.85-20.09-3.24-22.68,3.53-14.85,16.79-21.4,18.72-22.32" transform="translate(-798.16 -286.46)"/></svg>

After

Width:  |  Height:  |  Size: 361 B

View File

@ -0,0 +1 @@
<svg id="图层_7" data-name="图层 7" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 451 684.5"><defs><style>.cls-1{fill:none;stroke:#000;stroke-miterlimit:10;}</style></defs><rect class="cls-1" x="0.5" y="0.5" width="450" height="683.5"/></svg>

After

Width:  |  Height:  |  Size: 248 B

View File

@ -0,0 +1 @@
<svg id="图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 125.59 140.06"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M946,430.61a63.41,63.41,0,0,0-18,3.05,52.54,52.54,0,0,0-20.86,12c-5.59,5.4-8.16,10.56-11.92,18.13-2.87,5.8-6.93,14.12-8.8,25.9a78.11,78.11,0,0,0,.78,29.25,66.55,66.55,0,0,0,13.91,28.78A63.83,63.83,0,0,0,970.3,567.4c5.76-1.81,15.86-5.12,24.87-14.51s11.83-19.42,13.46-25.38c4.2-15.3,1.86-27.85,0-37.81s-4-21.77-13-34.19c-3.54-4.94-10.09-13.87-22.27-19.68C961.83,430.3,951.22,430.46,946,430.61Z" transform="translate(-885.39 -430.56)"/></svg>

After

Width:  |  Height:  |  Size: 611 B

View File

@ -0,0 +1 @@
<svg id="图层_3" data-name="图层 3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 387.48 240.17"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M148.59,482.78c15.46,22.43,45,58.45,93.24,84.61a256.52,256.52,0,0,0,77.7,27.28,239.38,239.38,0,0,0,57.66,2.76c17.92-1.35,40.71-3.08,66.65-15.19A163,163,0,0,0,507.38,528c7-10.06,26.87-39.53,28.66-81.5,0,0,1.41-32.95-15.19-66.64-3.31-6.72-8.08-14.77-17.27-19-2.46-1.13-12.29-5.66-22.1-.69-7.14,3.63-13.6,12-12.08,18.65,1.85,8.17,15.89,15.08,34.18,11.05" transform="translate(-148.59 -357.91)"/></svg>

After

Width:  |  Height:  |  Size: 570 B

View File

@ -0,0 +1 @@
<svg id="图层_4" data-name="图层 4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 82.97 81.32"><defs><style>.cls-1{fill:none;}</style></defs><path class="cls-1" d="M1031,55c3.85,12.26,9.48,17.33,14,19.69,4.23,2.2,7.34,1.94,13.47,5.69,4.43,2.71,7.32,5.7,10.88,9.33,4,4.07,4.84,5.69,10.88,11.91,4.16,4.3,5.31,5.12,6.21,5.7,4,2.58,6.41,2.33,11.92,4.14,5.73,1.89,10.25,3.37,13,6.74,4.52,5.65,2.21,14.5,1,18.13" transform="translate(-1031.03 -55.02)"/></svg>

After

Width:  |  Height:  |  Size: 459 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.45 1"><defs><style>.cls-1{fill:none;stroke:#231815;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><line class="cls-1" y1="0.5" x2="100.45" y2="0.5"/></g></g></svg>

After

Width:  |  Height:  |  Size: 288 B

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_2_1_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 40 21.6" style="enable-background:new 0 0 40 21.6;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#00FF1C;stroke-miterlimit:10;}
</style>
<polyline class="st0" points="20.5,15.1 20.5,0.5 0.5,0.5 0.5,21.1 29.6,21.1 "/>
</svg>

After

Width:  |  Height:  |  Size: 527 B

View File

@ -0,0 +1 @@
<svg id="图层_3" data-name="图层 3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27.74 15.09"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><title>2</title><polyline class="cls-1" points="27.24 0 27.24 14.6 0 14.6"/></svg>

After

Width:  |  Height:  |  Size: 265 B

View File

@ -0,0 +1 @@
<svg id="图层_4" data-name="图层 4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29.07 30.28"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><title>3</title><path class="cls-1" d="M292.82,107.78s0,0,0,0,0,3.59,0,7.62c0,3.85,0,5.78.06,6.43a19.94,19.94,0,0,0,2.87,7.58,15.85,15.85,0,0,0,6.61,6.23A14.75,14.75,0,0,0,310,137a11.69,11.69,0,0,0,7.59-2.92,11,11,0,0,0,3.2-6.84c.15-1.27.58-4.84-1.79-7.64a8.54,8.54,0,0,0-3.56-2.44c-1.32-.52-3.32-1.31-5.06-.33a5.41,5.41,0,0,0-2.14,3,3.48,3.48,0,0,0-.16,2.71c.78,1.86,3.36,2.14,3.47,2.15" transform="translate(-292.3 -107.25)"/></svg>

After

Width:  |  Height:  |  Size: 617 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38.66 57"><defs><style>.cls-1{fill:none;stroke:#fff;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><path class="cls-1" d="M.81,0C.12,12.47.64,23.24,1.87,29.9c1.85,10,3.32,18,10.21,22.72,5.59,3.83,15.45,6,21.45.77,2.53-2.22,4.92-5.91,4.6-10a9.27,9.27,0,0,0-2-5.55,1.84,1.84,0,0,0-2.16-.51c-.67.36-1.39,1.08-1.11,1.79s1.81,1,2.85.59"/></g></g></svg>

After

Width:  |  Height:  |  Size: 468 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28.63 21.43"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_5" data-name="图层 5"><path class="cls-1" d="M.5,19.21V.52c2.81-.05,6.84,0,9.38,0,3.71.09,9.65.46,11.89,1.9,1.76,1.22,6,3.85,6.34,9.34.25,4.38-1.66,6.63-6.11,8.37-3.5,1.39-8.46,1-10.71-2.06-.14-.18-2-2.82-.92-5.46.63-1.51,2.34-3.23,4.28-2.92A3.78,3.78,0,0,1,17,11.27"/></g></g></svg>

After

Width:  |  Height:  |  Size: 485 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14.86 10.32"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_6" data-name="图层 6"><path class="cls-1" d="M.54,8.67A7.38,7.38,0,0,1,7.07.54a8.38,8.38,0,0,1,.86,0c.49,0,4.07.12,5.65,2.92.19.34,1.52,2.7.19,4.67A4.33,4.33,0,0,1,9.1,9.65"/></g></g></svg>

After

Width:  |  Height:  |  Size: 391 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12.07 10.2"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_6" data-name="图层 6"><path class="cls-1" d="M11.35.12A8.27,8.27,0,0,1,10.58,6c-.26.44-2.5,4.23-5.84,3.7A5,5,0,0,1,.85,6.15c-.1-.35-1-3,.58-4.09a3.26,3.26,0,0,1,3.89.58"/></g></g></svg>

After

Width:  |  Height:  |  Size: 386 B

View File

Before

Width:  |  Height:  |  Size: 577 B

After

Width:  |  Height:  |  Size: 577 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 11.87 11.27"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_7" data-name="图层 7"><path class="cls-1" d="M.11,10.37A16.9,16.9,0,0,0,4,10.76c2.16,0,3.53,0,4.86-1A6.19,6.19,0,0,0,11.2,5.87c.17-1,.53-2.93-.78-4.29A4.34,4.34,0,0,0,5.94.81,3.6,3.6,0,0,0,3.77,2.59,3.71,3.71,0,0,0,4,5.9"/></g></g></svg>

After

Width:  |  Height:  |  Size: 439 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 11.71 15.6"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_7" data-name="图层 7"><path class="cls-1" d="M8.67.47A14.17,14.17,0,0,0,4,3.2C2.41,4.6.63,6.2.5,8.65a6.44,6.44,0,0,0,2.14,4.86c1.28,1.1,3.68,2.22,5.84,1.17,1.64-.8,3.31-3,2.53-4.67A3.62,3.62,0,0,0,7.7,8.26"/></g></g></svg>

After

Width:  |  Height:  |  Size: 423 B

View File

Before

Width:  |  Height:  |  Size: 686 B

After

Width:  |  Height:  |  Size: 686 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 130.55 65.27"><defs><style>.cls-1{fill:none;stroke:#231815;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><path class="cls-1" d="M.5,65.27a64.78,64.78,0,0,1,129.55,0"/></g></g></svg>

After

Width:  |  Height:  |  Size: 303 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.45 1"><defs><style>.cls-1{fill:none;stroke:#231815;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><line class="cls-1" y1="0.5" x2="100.45" y2="0.5"/></g></g></svg>

After

Width:  |  Height:  |  Size: 288 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 168.53 311.11"><defs><style>.cls-1{fill:#fff;stroke:#231815;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><rect class="cls-1" x="0.5" y="0.5" width="167.53" height="310.11"/></g></g></svg>

After

Width:  |  Height:  |  Size: 310 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50.52 15.81"><defs><style>.cls-1{fill:#fff;stroke:#231815;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><polygon class="cls-1" points="0.5 0.5 50.02 0.5 50.02 4.2 27.23 4.2 27.23 15.31 23.29 15.31 23.29 4.2 0.5 4.2 0.5 0.5"/></g></g></svg>

After

Width:  |  Height:  |  Size: 361 B

View File

@ -0,0 +1,262 @@
{
"background-color": "#f9edba",
"elements": [
{
"data": {
"include": "/svg/T.svg"
},
"name": "T.svg",
"type": "svg-file"
},
{
"data": {
"reference-layer": "0.0"
},
"name": "T",
"type": "group"
},
{
"data": {
"reference-layer": "0.0"
},
"name": "图源T丄",
"type": "group"
},
{
"data": {
"reference-layer": "0.0"
},
"name": "图源3",
"type": "group"
}
],
"height": 16,
"metallic": 0,
"project-name": "样例1",
"root-layer": {
"children": [
{
"children": [
{
"children": [
{
"children": [
{
"element": 0,
"is-folder": false,
"name": "子图层-1",
"styles": [
{
"material": "AH8A/341HP8=",
"type": "fill"
}
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 0,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
}
],
"is-folder": true,
"name": "子图层-1",
"referenced-by": 1,
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 275,
"y": 26
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 1,
"is-folder": false,
"name": "子图层-2",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 31,
"y": -4
},
"rotation": 180,
"scale": {
"x": 1,
"y": 1
}
}
}
],
"is-folder": true,
"name": "T丄",
"referenced-by": 2,
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": -175,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 2,
"is-folder": false,
"name": "子图层-2",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 62,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 2,
"is-folder": false,
"name": "子图层-3",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 124,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
}
],
"is-folder": true,
"name": "子图层",
"referenced-by": 3,
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 0,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 3,
"is-folder": false,
"name": "子图层-2",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 186,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 3,
"is-folder": false,
"name": "子图层-3",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 372,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
{
"element": 3,
"is-folder": false,
"name": "子图层-4",
"styles": [
],
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": 558,
"y": 0
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
}
],
"is-folder": true,
"name": "root",
"referenced-by": null,
"transform": {
"flipX": false,
"flipY": false,
"offset": {
"x": -155,
"y": -24
},
"rotation": 0,
"scale": {
"x": 1,
"y": 1
}
}
},
"roughness": 0.5,
"width": 450
}

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout"/>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -41,7 +41,7 @@
<number>5</number> <number>5</number>
</property> </property>
<item> <item>
<widget class="QtMaterialFlatButton" name="openButton"> <widget class="FluentMenuButton" name="openButton">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -81,13 +81,89 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item>
<widget class="QCheckBox" name="ssaoCheckBox">
<property name="text">
<string>SSAO</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="fxaaCheckBox">
<property name="text">
<string>FXAA</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,0"> <layout class="QHBoxLayout" name="horizontalLayout" stretch="0,1,0">
<property name="spacing">
<number>0</number>
</property>
<property name="sizeConstraint"> <property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum> <enum>QLayout::SetDefaultConstraint</enum>
</property> </property>
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>260</width>
<height>16777215</height>
</size>
</property>
<property name="tabPosition">
<enum>QTabWidget::West</enum>
</property>
<widget class="QWidget" name="textureTab">
<attribute name="title">
<string>纹理</string>
</attribute>
<layout class="QVBoxLayout" name="vboxLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4"/>
</item>
<item>
<widget class="QListWidget" name="textureListWidget">
<property name="styleSheet">
<string notr="true">QListWidget{
border: 0
}</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item> <item>
<widget class="Renderer::RendererGLWidget" name="openGLWidget"> <widget class="Renderer::RendererGLWidget" name="openGLWidget">
<property name="sizePolicy"> <property name="sizePolicy">
@ -109,6 +185,19 @@
<property name="rightMargin"> <property name="rightMargin">
<number>12</number> <number>12</number>
</property> </property>
<item>
<widget class="QSlider" name="lightRadianceSlider">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>600</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item> <item>
<widget class="QSlider" name="horizontalSlider"> <widget class="QSlider" name="horizontalSlider">
<property name="sizePolicy"> <property name="sizePolicy">
@ -165,9 +254,9 @@
<header>RendererGLWidget.h</header> <header>RendererGLWidget.h</header>
</customwidget> </customwidget>
<customwidget> <customwidget>
<class>QtMaterialFlatButton</class> <class>FluentMenuButton</class>
<extends>QPushButton</extends> <extends>QPushButton</extends>
<header location="global">qtmaterialflatbutton.h</header> <header>../FluentMenuButton.h</header>
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<resources/> <resources/>

Binary file not shown.

View File

@ -1,4 +1,6 @@
{ {
"project-name": "样例1",
"background-color": "#ffffff",
"height": 1080, "height": 1080,
"width": 1080, "width": 1080,
"elements": [ "elements": [
@ -6,7 +8,7 @@
"name": "ababa", "name": "ababa",
"type": "svg-file", "type": "svg-file",
"data": { "data": {
"include": "./svg/2.svg" "include": "/svg/2.svg"
} }
}, },
{ {
@ -15,6 +17,13 @@
"data": { "data": {
"reference-layer": "0.0" "reference-layer": "0.0"
} }
},
{
"name": "ababa2",
"type": "svg-file",
"data": {
"include": "/svg/0.svg"
}
} }
], ],
"root-layer": { "root-layer": {

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 106.93 99.81"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><title>0</title><g id="图层_2" data-name="图层 2"><polyline class="cls-1" points="27.24 16.75 27.24 2.15 7.2 2.15 7.2 22.78 46.7 22.78"/></g><g id="图层_3" data-name="图层 3"><polyline class="cls-1" points="27.24 30.37 27.24 44.97 0 44.97"/></g><g id="图层_4" data-name="图层 4"><path class="cls-1" d="M292.82,107.78s0,0,0,0,0,3.59,0,7.62c0,3.85,0,5.78.06,6.43a19.94,19.94,0,0,0,2.87,7.58,15.85,15.85,0,0,0,6.61,6.23A14.75,14.75,0,0,0,310,137a11.69,11.69,0,0,0,7.59-2.92,11,11,0,0,0,3.2-6.84c.15-1.27.58-4.84-1.79-7.64a8.54,8.54,0,0,0-3.56-2.44c-1.32-.52-3.32-1.31-5.06-.33a5.41,5.41,0,0,0-2.14,3,3.48,3.48,0,0,0-.16,2.71c.78,1.86,3.36,2.14,3.47,2.15" transform="translate(-287.18 -56.2)"/></g><g id="图层_5" data-name="图层 5"><path class="cls-1" d="M339.72,85.41V58.75a69.07,69.07,0,0,1,14.79,0c5.9.63,9.31,1,12.84,3.5,1.76,1.22,6.37,4.43,6.68,9.92.25,4.38-2.27,9.26-6.72,11-3.5,1.39-8.46,1-10.71-2.06-.14-.18-2-2.82-.92-5.46.63-1.51,2.34-3.23,4.28-2.92a3.76,3.76,0,0,1,2.33,1.55" transform="translate(-287.18 -56.2)"/></g><g id="图层_6" data-name="图层 6"><path class="cls-1" d="M301.38,145.93a8.21,8.21,0,0,1-.77,5.83c-.26.44-2.5,4.23-5.84,3.7a5,5,0,0,1-3.89-3.5c-.1-.35-1-3,.58-4.09a3.28,3.28,0,0,1,3.89.58" transform="translate(-287.18 -56.2)"/><path class="cls-1" d="M323.18,115.76a7.37,7.37,0,0,1,7.39-8.17c.49,0,4.07.12,5.65,2.92.19.34,1.52,2.7.19,4.67a4.33,4.33,0,0,1-4.67,1.56" transform="translate(-287.18 -56.2)"/></g><g id="图层_7" data-name="图层 7"><path class="cls-1" d="M352.17,86.57a14.23,14.23,0,0,0-4.67,2.73c-1.59,1.4-3.37,3-3.5,5.45a6.45,6.45,0,0,0,2.14,4.86c1.28,1.1,3.68,2.22,5.84,1.17,1.64-.8,3.31-3,2.53-4.67a3.6,3.6,0,0,0-3.31-1.75" transform="translate(-287.18 -56.2)"/><path class="cls-1" d="M382.34,66.53a17.27,17.27,0,0,0,3.89.39c2.16,0,3.53,0,4.86-1a6.15,6.15,0,0,0,2.34-3.89c.17-1,.53-2.93-.78-4.29a4.32,4.32,0,0,0-4.48-.77A3.62,3.62,0,0,0,386,58.75a3.75,3.75,0,0,0,.2,3.31" transform="translate(-287.18 -56.2)"/></g></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 284 B

After

Width:  |  Height:  |  Size: 284 B

View File

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

Before

Width:  |  Height:  |  Size: 583 B

After

Width:  |  Height:  |  Size: 583 B

View File

@ -0,0 +1 @@
<svg id="图层_3" data-name="图层 3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27.74 15.09"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><title>2</title><polyline class="cls-1" points="27.24 0 27.24 14.6 0 14.6"/></svg>

After

Width:  |  Height:  |  Size: 265 B

View File

@ -0,0 +1 @@
<svg id="图层_4" data-name="图层 4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29.07 30.28"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><title>3</title><path class="cls-1" d="M292.82,107.78s0,0,0,0,0,3.59,0,7.62c0,3.85,0,5.78.06,6.43a19.94,19.94,0,0,0,2.87,7.58,15.85,15.85,0,0,0,6.61,6.23A14.75,14.75,0,0,0,310,137a11.69,11.69,0,0,0,7.59-2.92,11,11,0,0,0,3.2-6.84c.15-1.27.58-4.84-1.79-7.64a8.54,8.54,0,0,0-3.56-2.44c-1.32-.52-3.32-1.31-5.06-.33a5.41,5.41,0,0,0-2.14,3,3.48,3.48,0,0,0-.16,2.71c.78,1.86,3.36,2.14,3.47,2.15" transform="translate(-292.3 -107.25)"/></svg>

After

Width:  |  Height:  |  Size: 617 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38.66 57"><defs><style>.cls-1{fill:none;stroke:#fff;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><path class="cls-1" d="M.81,0C.12,12.47.64,23.24,1.87,29.9c1.85,10,3.32,18,10.21,22.72,5.59,3.83,15.45,6,21.45.77,2.53-2.22,4.92-5.91,4.6-10a9.27,9.27,0,0,0-2-5.55,1.84,1.84,0,0,0-2.16-.51c-.67.36-1.39,1.08-1.11,1.79s1.81,1,2.85.59"/></g></g></svg>

After

Width:  |  Height:  |  Size: 468 B

View File

Before

Width:  |  Height:  |  Size: 499 B

After

Width:  |  Height:  |  Size: 499 B

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1735.4 1712.3" style="enable-background:new 0 0 1735.4 1712.3;" xml:space="preserve">
<style type="text/css">
.st0{stroke:#000000;stroke-miterlimit:10;}
</style>
<polygon class="st0" points="932.3,945.5 1007,887.6 1034.9,922.2 512.7,1320.5 488.7,1287.4 592.2,1208.1 546.2,1145.1
579.5,1120.1 627.3,1181.8 747.8,1088.8 278.2,440.8 158.8,520.8 199.7,578.8 163.3,604.9 120.1,546.9 28,608.3 0.7,569.7
497.7,234.2 526.1,272.9 463.5,316.1 507.9,379.8 477.2,402.5 430.6,337.7 303.9,424.4 778.3,1064.7 892.1,977.2 826.2,888
865.7,857.4 "/>
</svg>

After

Width:  |  Height:  |  Size: 822 B

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 141 171" style="enable-background:new 0 0 141 171;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#000000;stroke-miterlimit:10;}
</style>
<polygon class="st0" points="0.5,0.5 140.5,0.5 140.5,10.5 115.5,10.5 115.5,31.5 105.5,31.5 105.5,10.5 75.5,10.5 75.5,165.8
105.5,165.8 105.5,144.7 115.5,144.7 115.5,165.8 140.5,165.8 140.5,175.8 0.5,175.8 0.5,165.8 25.5,165.8 25.5,144.7 35.5,144.7
35.5,165.8 65.5,165.8 65.5,10.5 35.5,10.5 35.5,31.5 25.5,31.5 25.5,10.5 0.5,10.5 "/>
</svg>

After

Width:  |  Height:  |  Size: 781 B

View File

@ -0,0 +1 @@
<svg id="图层_6" data-name="图层 6" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 47.45 48.92"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><title>5</title><path class="cls-1" d="M301.38,145.93a8.21,8.21,0,0,1-.77,5.83c-.26.44-2.5,4.23-5.84,3.7a5,5,0,0,1-3.89-3.5c-.1-.35-1-3,.58-4.09a3.28,3.28,0,0,1,3.89.58" transform="translate(-290.04 -107.09)"/><path class="cls-1" d="M323.18,115.76a7.37,7.37,0,0,1,7.39-8.17c.49,0,4.07.12,5.65,2.92.19.34,1.52,2.7.19,4.67a4.33,4.33,0,0,1-4.67,1.56" transform="translate(-290.04 -107.09)"/></svg>

After

Width:  |  Height:  |  Size: 577 B

View File

@ -0,0 +1 @@
<svg id="图层_7" data-name="图层 7" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50.62 45.5"><defs><style>.cls-1{fill:none;stroke:#00ff1c;stroke-miterlimit:10;}</style></defs><title>6</title><path class="cls-1" d="M352.17,86.57a14.23,14.23,0,0,0-4.67,2.73c-1.59,1.4-3.37,3-3.5,5.45a6.45,6.45,0,0,0,2.14,4.86c1.28,1.1,3.68,2.22,5.84,1.17,1.64-.8,3.31-3,2.53-4.67a3.6,3.6,0,0,0-3.31-1.75" transform="translate(-343.49 -56.2)"/><path class="cls-1" d="M382.34,66.53a17.27,17.27,0,0,0,3.89.39c2.16,0,3.53,0,4.86-1a6.15,6.15,0,0,0,2.34-3.89c.17-1,.53-2.93-.78-4.29a4.32,4.32,0,0,0-4.48-.77A3.62,3.62,0,0,0,386,58.75a3.75,3.75,0,0,0,.2,3.31" transform="translate(-343.49 -56.2)"/></svg>

After

Width:  |  Height:  |  Size: 686 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50.52 15.81"><defs><style>.cls-1{fill:#fff;stroke:#231815;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><polygon class="cls-1" points="0.5 0.5 50.02 0.5 50.02 4.2 27.23 4.2 27.23 15.31 23.29 15.31 23.29 4.2 0.5 4.2 0.5 0.5"/></g></g></svg>

After

Width:  |  Height:  |  Size: 361 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2486.79 1894.11">
<title>biankuang</title>
<rect x="0.5" y="0.5" width="2485.79" height="1893.11" fill="none" stroke="#000" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 213 B

View File

@ -0,0 +1,31 @@
{
"height": 1080,
"width": 1080,
"elements": [
{
"name": "ababa",
"type": "svg-file",
"data": {
"include": "./svg/0.svg"
}
}
],
"root-layer": {
"name": "root",
"transform": {
"offset": {
"x": 0,
"y": 0
},
"scale": {
"x": 1.0,
"y": 1.0
},
"rotation": 0.0
},
"effects": [],
"is-folder": true,
"referenced-by": null,
"children":[]
}
}

View File

Before

Width:  |  Height:  |  Size: 191 B

After

Width:  |  Height:  |  Size: 191 B

View File

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 124 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 116.45 116.45"><defs><style>.cls-1{fill:#fff;stroke:#231815;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><rect class="cls-1" x="0.5" y="0.5" width="115.45" height="115.45"/></g></g></svg>

After

Width:  |  Height:  |  Size: 310 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.45 1"><defs><style>.cls-1{fill:none;stroke:#231815;stroke-miterlimit:10;}</style></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><line class="cls-1" y1="0.5" x2="100.45" y2="0.5"/></g></g></svg>

After

Width:  |  Height:  |  Size: 288 B

View File

@ -1,67 +0,0 @@
file(GLOB ROOT_SOURCE *.cpp)
file(GLOB ROOT_INLINE *.inl)
file(GLOB ROOT_HEADER *.hpp)
file(GLOB ROOT_TEXT ../*.txt)
file(GLOB ROOT_MD ../*.md)
file(GLOB ROOT_NAT ../util/glm.natvis)
file(GLOB_RECURSE CORE_SOURCE ./detail/*.cpp)
file(GLOB_RECURSE CORE_INLINE ./detail/*.inl)
file(GLOB_RECURSE CORE_HEADER ./detail/*.hpp)
file(GLOB_RECURSE GTC_SOURCE ./gtc/*.cpp)
file(GLOB_RECURSE GTC_INLINE ./gtc/*.inl)
file(GLOB_RECURSE GTC_HEADER ./gtc/*.hpp)
file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp)
file(GLOB_RECURSE GTX_INLINE ./gtx/*.inl)
file(GLOB_RECURSE GTX_HEADER ./gtx/*.hpp)
file(GLOB_RECURSE SIMD_SOURCE ./simd/*.cpp)
file(GLOB_RECURSE SIMD_INLINE ./simd/*.inl)
file(GLOB_RECURSE SIMD_HEADER ./simd/*.h)
source_group("Text Files" FILES ${ROOT_TEXT} ${ROOT_MD})
source_group("Core Files" FILES ${CORE_SOURCE})
source_group("Core Files" FILES ${CORE_INLINE})
source_group("Core Files" FILES ${CORE_HEADER})
source_group("GTC Files" FILES ${GTC_SOURCE})
source_group("GTC Files" FILES ${GTC_INLINE})
source_group("GTC Files" FILES ${GTC_HEADER})
source_group("GTX Files" FILES ${GTX_SOURCE})
source_group("GTX Files" FILES ${GTX_INLINE})
source_group("GTX Files" FILES ${GTX_HEADER})
source_group("SIMD Files" FILES ${SIMD_SOURCE})
source_group("SIMD Files" FILES ${SIMD_INLINE})
source_group("SIMD Files" FILES ${SIMD_HEADER})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
if(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE)
if(GLM_STATIC_LIBRARY_ENABLE)
add_library(glm_static STATIC ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT}
${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER}
${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER}
${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER}
${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER}
${SIMD_SOURCE} ${SIMD_INLINE} ${SIMD_HEADER})
endif(GLM_STATIC_LIBRARY_ENABLE)
if(GLM_DYNAMIC_LIBRARY_ENABLE)
add_library(glm_shared SHARED ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT}
${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER}
${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER}
${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER}
${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER}
${SIMD_SOURCE} ${SIMD_INLINE} ${SIMD_HEADER})
endif(GLM_DYNAMIC_LIBRARY_ENABLE)
else(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE)
add_executable(glm_dummy ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT}
${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER}
${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER}
${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER}
${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER}
${SIMD_SOURCE} ${SIMD_INLINE} ${SIMD_HEADER})
endif(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE)

View File

@ -1,6 +1,539 @@
/// @ref core /// @ref core
/// @file glm/common.hpp /// @file glm/common.hpp
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
///
/// @defgroup core_func_common Common functions
/// @ingroup core
///
/// Provides GLSL common functions
///
/// These all operate component-wise. The description is per component.
///
/// Include <glm/common.hpp> to use these core features.
#pragma once #pragma once
#include "detail/func_common.hpp" #include "detail/qualifier.hpp"
#include "detail/_fixes.hpp"
namespace glm
{
/// @addtogroup core_func_common
/// @{
/// Returns x if x >= 0; otherwise, it returns -x.
///
/// @tparam genType floating-point or signed integer; scalar or vector types.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/abs.xml">GLSL abs man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType abs(genType x);
/// Returns x if x >= 0; otherwise, it returns -x.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point or signed integer scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/abs.xml">GLSL abs man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> abs(vec<L, T, Q> const& x);
/// Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sign.xml">GLSL sign man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> sign(vec<L, T, Q> const& x);
/// Returns a value equal to the nearest integer that is less then or equal to x.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floor.xml">GLSL floor man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> floor(vec<L, T, Q> const& x);
/// Returns a value equal to the nearest integer to x
/// whose absolute value is not larger than the absolute value of x.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/trunc.xml">GLSL trunc man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> trunc(vec<L, T, Q> const& x);
/// Returns a value equal to the nearest integer to x.
/// The fraction 0.5 will round in a direction chosen by the
/// implementation, presumably the direction that is fastest.
/// This includes the possibility that round(x) returns the
/// same value as roundEven(x) for all values of x.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> round(vec<L, T, Q> const& x);
/// Returns a value equal to the nearest integer to x.
/// A fractional part of 0.5 will round toward the nearest even
/// integer. (Both 3.5 and 4.5 for x will return 4.0.)
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/roundEven.xml">GLSL roundEven man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
/// @see <a href="http://developer.amd.com/documentation/articles/pages/New-Round-to-Even-Technique.aspx">New round to even technique</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> roundEven(vec<L, T, Q> const& x);
/// Returns a value equal to the nearest integer
/// that is greater than or equal to x.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ceil.xml">GLSL ceil man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> ceil(vec<L, T, Q> const& x);
/// Return x - floor(x).
///
/// @tparam genType Floating-point scalar or vector types.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fract.xml">GLSL fract man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<typename genType>
GLM_FUNC_DECL genType fract(genType x);
/// Return x - floor(x).
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fract.xml">GLSL fract man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> fract(vec<L, T, Q> const& x);
template<typename genType>
GLM_FUNC_DECL genType mod(genType x, genType y);
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> mod(vec<L, T, Q> const& x, T y);
/// Modulus. Returns x - y * floor(x / y)
/// for each component in x using the floating point value y.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point scalar types, include glm/gtc/integer for integer scalar types support
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> mod(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
/// Returns the fractional part of x and sets i to the integer
/// part (as a whole number floating point value). Both the
/// return value and the output parameter will have the same
/// sign as x.
///
/// @tparam genType Floating-point scalar or vector types.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/modf.xml">GLSL modf man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<typename genType>
GLM_FUNC_DECL genType modf(genType x, genType& i);
/// Returns y if y < x; otherwise, it returns x.
///
/// @tparam genType Floating-point or integer; scalar or vector types.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/min.xml">GLSL min man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType min(genType x, genType y);
/// Returns y if y < x; otherwise, it returns x.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point or integer scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/min.xml">GLSL min man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> min(vec<L, T, Q> const& x, T y);
/// Returns y if y < x; otherwise, it returns x.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point or integer scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/min.xml">GLSL min man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> min(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
/// Returns y if x < y; otherwise, it returns x.
///
/// @tparam genType Floating-point or integer; scalar or vector types.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/max.xml">GLSL max man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType max(genType x, genType y);
/// Returns y if x < y; otherwise, it returns x.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point or integer scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/max.xml">GLSL max man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> max(vec<L, T, Q> const& x, T y);
/// Returns y if x < y; otherwise, it returns x.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point or integer scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/max.xml">GLSL max man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> max(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
/// Returns min(max(x, minVal), maxVal) for each component in x
/// using the floating-point values minVal and maxVal.
///
/// @tparam genType Floating-point or integer; scalar or vector types.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/clamp.xml">GLSL clamp man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<typename genType>
GLM_FUNC_DECL GLM_CONSTEXPR genType clamp(genType x, genType minVal, genType maxVal);
/// Returns min(max(x, minVal), maxVal) for each component in x
/// using the floating-point values minVal and maxVal.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point or integer scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/clamp.xml">GLSL clamp man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> clamp(vec<L, T, Q> const& x, T minVal, T maxVal);
/// Returns min(max(x, minVal), maxVal) for each component in x
/// using the floating-point values minVal and maxVal.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point or integer scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/clamp.xml">GLSL clamp man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> clamp(vec<L, T, Q> const& x, vec<L, T, Q> const& minVal, vec<L, T, Q> const& maxVal);
/// If genTypeU is a floating scalar or vector:
/// Returns x * (1.0 - a) + y * a, i.e., the linear blend of
/// x and y using the floating-point value a.
/// The value for a is not restricted to the range [0, 1].
///
/// If genTypeU is a boolean scalar or vector:
/// Selects which vector each returned component comes
/// from. For a component of 'a' that is false, the
/// corresponding component of 'x' is returned. For a
/// component of 'a' that is true, the corresponding
/// component of 'y' is returned. Components of 'x' and 'y' that
/// are not selected are allowed to be invalid floating point
/// values and will have no effect on the results. Thus, this
/// provides different functionality than
/// genType mix(genType x, genType y, genType(a))
/// where a is a Boolean vector.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mix.xml">GLSL mix man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
///
/// @param[in] x Value to interpolate.
/// @param[in] y Value to interpolate.
/// @param[in] a Interpolant.
///
/// @tparam genTypeT Floating point scalar or vector.
/// @tparam genTypeU Floating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT.
///
/// @code
/// #include <glm/glm.hpp>
/// ...
/// float a;
/// bool b;
/// glm::dvec3 e;
/// glm::dvec3 f;
/// glm::vec4 g;
/// glm::vec4 h;
/// ...
/// glm::vec4 r = glm::mix(g, h, a); // Interpolate with a floating-point scalar two vectors.
/// glm::vec4 s = glm::mix(g, h, b); // Returns g or h;
/// glm::dvec3 t = glm::mix(e, f, a); // Types of the third parameter is not required to match with the first and the second.
/// glm::vec4 u = glm::mix(g, h, r); // Interpolations can be perform per component with a vector for the last parameter.
/// @endcode
template<typename genTypeT, typename genTypeU>
GLM_FUNC_DECL GLM_CONSTEXPR genTypeT mix(genTypeT x, genTypeT y, genTypeU a);
template<length_t L, typename T, typename U, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> mix(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, U, Q> const& a);
template<length_t L, typename T, typename U, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> mix(vec<L, T, Q> const& x, vec<L, T, Q> const& y, U a);
/// Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<typename genType>
GLM_FUNC_DECL genType step(genType edge, genType x);
/// Returns 0.0 if x < edge, otherwise it returns 1.0.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> step(T edge, vec<L, T, Q> const& x);
/// Returns 0.0 if x < edge, otherwise it returns 1.0.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> step(vec<L, T, Q> const& edge, vec<L, T, Q> const& x);
/// Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and
/// performs smooth Hermite interpolation between 0 and 1
/// when edge0 < x < edge1. This is useful in cases where
/// you would want a threshold function with a smooth
/// transition. This is equivalent to:
/// genType t;
/// t = clamp ((x - edge0) / (edge1 - edge0), 0, 1);
/// return t * t * (3 - 2 * t);
/// Results are undefined if edge0 >= edge1.
///
/// @tparam genType Floating-point scalar or vector types.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/smoothstep.xml">GLSL smoothstep man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<typename genType>
GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x);
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> smoothstep(T edge0, T edge1, vec<L, T, Q> const& x);
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> smoothstep(vec<L, T, Q> const& edge0, vec<L, T, Q> const& edge1, vec<L, T, Q> const& x);
/// Returns true if x holds a NaN (not a number)
/// representation in the underlying implementation's set of
/// floating point representations. Returns false otherwise,
/// including for implementations with no NaN
/// representations.
///
/// /!\ When using compiler fast math, this function may fail.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isnan.xml">GLSL isnan man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, bool, Q> isnan(vec<L, T, Q> const& x);
/// Returns true if x holds a positive infinity or negative
/// infinity representation in the underlying implementation's
/// set of floating point representations. Returns false
/// otherwise, including for implementations with no infinity
/// representations.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam T Floating-point scalar types
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isinf.xml">GLSL isinf man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, bool, Q> isinf(vec<L, T, Q> const& x);
/// Returns a signed integer value representing
/// the encoding of a floating-point value. The floating-point
/// value's bit-level representation is preserved.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToInt.xml">GLSL floatBitsToInt man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
GLM_FUNC_DECL int floatBitsToInt(float v);
/// Returns a signed integer value representing
/// the encoding of a floating-point value. The floatingpoint
/// value's bit-level representation is preserved.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToInt.xml">GLSL floatBitsToInt man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec<L, int, Q> floatBitsToInt(vec<L, float, Q> const& v);
/// Returns a unsigned integer value representing
/// the encoding of a floating-point value. The floatingpoint
/// value's bit-level representation is preserved.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToUint.xml">GLSL floatBitsToUint man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
GLM_FUNC_DECL uint floatBitsToUint(float v);
/// Returns a unsigned integer value representing
/// the encoding of a floating-point value. The floatingpoint
/// value's bit-level representation is preserved.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToUint.xml">GLSL floatBitsToUint man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec<L, uint, Q> floatBitsToUint(vec<L, float, Q> const& v);
/// Returns a floating-point value corresponding to a signed
/// integer encoding of a floating-point value.
/// If an inf or NaN is passed in, it will not signal, and the
/// resulting floating point value is unspecified. Otherwise,
/// the bit-level representation is preserved.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/intBitsToFloat.xml">GLSL intBitsToFloat man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
GLM_FUNC_DECL float intBitsToFloat(int v);
/// Returns a floating-point value corresponding to a signed
/// integer encoding of a floating-point value.
/// If an inf or NaN is passed in, it will not signal, and the
/// resulting floating point value is unspecified. Otherwise,
/// the bit-level representation is preserved.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/intBitsToFloat.xml">GLSL intBitsToFloat man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec<L, float, Q> intBitsToFloat(vec<L, int, Q> const& v);
/// Returns a floating-point value corresponding to a
/// unsigned integer encoding of a floating-point value.
/// If an inf or NaN is passed in, it will not signal, and the
/// resulting floating point value is unspecified. Otherwise,
/// the bit-level representation is preserved.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uintBitsToFloat.xml">GLSL uintBitsToFloat man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
GLM_FUNC_DECL float uintBitsToFloat(uint v);
/// Returns a floating-point value corresponding to a
/// unsigned integer encoding of a floating-point value.
/// If an inf or NaN is passed in, it will not signal, and the
/// resulting floating point value is unspecified. Otherwise,
/// the bit-level representation is preserved.
///
/// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector
/// @tparam Q Value from qualifier enum
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uintBitsToFloat.xml">GLSL uintBitsToFloat man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec<L, float, Q> uintBitsToFloat(vec<L, uint, Q> const& v);
/// Computes and returns a * b + c.
///
/// @tparam genType Floating-point scalar or vector types.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fma.xml">GLSL fma man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<typename genType>
GLM_FUNC_DECL genType fma(genType const& a, genType const& b, genType const& c);
/// Splits x into a floating-point significand in the range
/// [0.5, 1.0) and an integral exponent of two, such that:
/// x = significand * exp(2, exponent)
///
/// The significand is returned by the function and the
/// exponent is returned in the parameter exp. For a
/// floating-point value of zero, the significant and exponent
/// are both zero. For a floating-point value that is an
/// infinity or is not a number, the results are undefined.
///
/// @tparam genType Floating-point scalar or vector types.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/frexp.xml">GLSL frexp man page</a>
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<typename genType>
GLM_FUNC_DECL genType frexp(genType x, int& exp);
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> frexp(vec<L, T, Q> const& v, vec<L, int, Q>& exp);
/// Builds a floating-point number from x and the
/// corresponding integral exponent of two in exp, returning:
/// significand * exp(2, exponent)
///
/// If this product is too large to be represented in the
/// floating-point type, the result is undefined.
///
/// @tparam genType Floating-point scalar or vector types.
///
/// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ldexp.xml">GLSL ldexp man page</a>;
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
template<typename genType>
GLM_FUNC_DECL genType ldexp(genType const& x, int const& exp);
template<length_t L, typename T, qualifier Q>
GLM_FUNC_DECL vec<L, T, Q> ldexp(vec<L, T, Q> const& v, vec<L, int, Q> const& exp);
/// @}
}//namespace glm
#include "detail/func_common.inl"

View File

@ -1,6 +1,3 @@
/// @ref core
/// @file glm/detail/_features.hpp
#pragma once #pragma once
// #define GLM_CXX98_EXCEPTIONS // #define GLM_CXX98_EXCEPTIONS
@ -251,9 +248,7 @@
#if(GLM_COMPILER & GLM_COMPILER_GCC) #if(GLM_COMPILER & GLM_COMPILER_GCC)
# if(GLM_COMPILER >= GLM_COMPILER_GCC43)
# define GLM_CXX11_STATIC_ASSERT # define GLM_CXX11_STATIC_ASSERT
# endif
#elif(GLM_COMPILER & GLM_COMPILER_CLANG) #elif(GLM_COMPILER & GLM_COMPILER_CLANG)
# if(__has_feature(cxx_exceptions)) # if(__has_feature(cxx_exceptions))

Some files were not shown because too many files have changed in this diff Show More