diff --git a/__test__/Polyline/__snapshots__/offset.test.ts.snap b/__test__/Polyline/__snapshots__/offset.test.ts.snap index 63d1e6c6f..d43d5198a 100644 --- a/__test__/Polyline/__snapshots__/offset.test.ts.snap +++ b/__test__/Polyline/__snapshots__/offset.test.ts.snap @@ -24,23 +24,23 @@ exports[`圆求交错误导致的线丢失 3`] = `4021.9003332433504`; exports[`圆求交错误导致的线丢失 4`] = `4581.2242286506635`; -exports[`圆求交错误导致的线丢失 5`] = `3900.6079069452912`; +exports[`圆求交错误导致的线丢失 5`] = `3900.6079069452903`; -exports[`圆求交错误导致的线丢失 6`] = `4757.468532252381`; +exports[`圆求交错误导致的线丢失 6`] = `4757.46853225238`; -exports[`圆求交错误导致的线丢失 7`] = `3783.748662100121`; +exports[`圆求交错误导致的线丢失 7`] = `3783.74866210012`; -exports[`圆求交错误导致的线丢失 8`] = `4972.012479701851`; +exports[`圆求交错误导致的线丢失 8`] = `4972.0124797018525`; -exports[`圆求交错误导致的线丢失 9`] = `1148.6632687596884`; +exports[`圆求交错误导致的线丢失 9`] = `1148.6632687596896`; -exports[`圆求交错误导致的线丢失 10`] = `5979.881810920416`; +exports[`圆求交错误导致的线丢失 10`] = `5979.881810920418`; -exports[`圆求交错误导致的线丢失 11`] = `1049.9599133172644`; +exports[`圆求交错误导致的线丢失 11`] = `1049.959913317264`; exports[`圆求交错误导致的线丢失 12`] = `6051.226641876329`; -exports[`圆求交错误导致的线丢失 13`] = `722.4732418587954`; +exports[`圆求交错误导致的线丢失 13`] = `722.4732418587953`; exports[`圆求交错误导致的线丢失 14`] = `6316.980887212943`; @@ -50,7 +50,7 @@ exports[`复杂圆盘选点 2`] = `197.02551075687774`; exports[`复杂圆盘选点 3`] = `1`; -exports[`复杂圆盘选点 4`] = `190.82843823827844`; +exports[`复杂圆盘选点 4`] = `190.82843823827838`; exports[`复杂圆盘选点 5`] = `1`; @@ -58,11 +58,11 @@ exports[`复杂圆盘选点 6`] = `204.54080647675428`; exports[`复杂圆盘选点 7`] = `1`; -exports[`复杂圆盘选点 8`] = `205.57027795132643`; +exports[`复杂圆盘选点 8`] = `205.5702779513265`; exports[`复杂圆盘选点 9`] = `1`; -exports[`复杂圆盘选点 10`] = `206.82332282556683`; +exports[`复杂圆盘选点 10`] = `206.8233228255668`; exports[`多段线因为合并问题造成的错误 1`] = `1`; @@ -86,7 +86,7 @@ exports[`拱门偏移 4`] = `6.827433388230814`; exports[`海豚圆选点导致的错误 1`] = `1`; -exports[`海豚圆选点导致的错误 2`] = `1591.1982232513822`; +exports[`海豚圆选点导致的错误 2`] = `1591.1982232513824`; exports[`海豚圆选点导致的错误 3`] = `1`; @@ -108,9 +108,9 @@ exports[`纯圆生成的多段线偏移 3`] = `1`; exports[`纯圆生成的多段线偏移 4`] = `6328.578192723271`; -exports[`补充bug测试 1`] = `7385.123391644447`; +exports[`补充bug测试 1`] = `7385.123391644452`; -exports[`补充bug测试 2`] = `7455.861403941378`; +exports[`补充bug测试 2`] = `7455.861403941385`; exports[`补圆弧测试 补圆弧测试1 1`] = `1`; @@ -202,10 +202,10 @@ exports[`补圆弧测试 补圆弧测试1 44`] = `192.58327191623619`; exports[`闭合多段线判断精度和重复交点参数导致偏移丢失 1`] = `54789.24964851233`; -exports[`闭合多段线判断精度和重复交点参数导致偏移丢失 2`] = `54907.28173780603`; +exports[`闭合多段线判断精度和重复交点参数导致偏移丢失 2`] = `54907.28173780601`; exports[`闭合多段线判断精度和重复交点参数导致偏移丢失 3`] = `55497.502122668855`; -exports[`闭合多段线判断精度和重复交点参数导致偏移丢失 4`] = `56678.241066044815`; +exports[`闭合多段线判断精度和重复交点参数导致偏移丢失 4`] = `56678.24106604482`; -exports[`闭合多段线判断精度和重复交点参数导致偏移丢失 5`] = `57859.37443960542`; +exports[`闭合多段线判断精度和重复交点参数导致偏移丢失 5`] = `57859.37443960541`; diff --git a/__test__/Polyline/__snapshots__/offsetbug.test.ts.snap b/__test__/Polyline/__snapshots__/offsetbug.test.ts.snap index d84fdbac4..22223fbd8 100644 --- a/__test__/Polyline/__snapshots__/offsetbug.test.ts.snap +++ b/__test__/Polyline/__snapshots__/offsetbug.test.ts.snap @@ -1,14 +1,14 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`补充bug测试#IKWGF 1`] = `1.1376403544773543`; +exports[`补充bug测试#IKWGF 1`] = `1.1376403544773546`; -exports[`补充bug测试#IKWGF 2`] = `0.4457395323615238`; +exports[`补充bug测试#IKWGF 2`] = `0.4457395323615243`; -exports[`补充bug测试#IKWGF 3`] = `10.73298136409425`; +exports[`补充bug测试#IKWGF 3`] = `10.732981364094249`; -exports[`补充bug测试#IKWGF 4`] = `12.786911814880927`; +exports[`补充bug测试#IKWGF 4`] = `12.786911814880924`; -exports[`补充bug测试#IKWGF 5`] = `0.6246933440840137`; +exports[`补充bug测试#IKWGF 5`] = `0.6246933440840133`; exports[`补充bug测试#IKWGF 6`] = `10.586693752451833`; @@ -18,8 +18,8 @@ exports[`补充bug测试#IKWGF 8`] = `2.168984971098264`; exports[`补充bug测试#IKWGF 9`] = `11.891017922899268`; -exports[`补充bug测试#IKWGF 10`] = `1.0803374679586226`; +exports[`补充bug测试#IKWGF 10`] = `1.0803374679586222`; -exports[`补充bug测试#IKWGF 11`] = `0.39474593983890766`; +exports[`补充bug测试#IKWGF 11`] = `0.394745939838908`; -exports[`补充bug测试#IKWGF 12`] = `10.698868451254269`; +exports[`补充bug测试#IKWGF 12`] = `10.69886845125427`; diff --git a/src/Add-on/Save.ts b/src/Add-on/Save.ts index a4ea24d05..a6bf5d2fd 100644 --- a/src/Add-on/Save.ts +++ b/src/Add-on/Save.ts @@ -9,7 +9,7 @@ export class Save implements Command { async exec() { - let cadFile = app.m_Database.FileWrite(); + let cadFile = app.FileOut(); let store = await IndexedDbStore.CADStore(); let fileId = store.m_CurrentFileId; diff --git a/src/ApplicationServices/Application.ts b/src/ApplicationServices/Application.ts index 1ab7c2e30..40e87077f 100644 --- a/src/ApplicationServices/Application.ts +++ b/src/ApplicationServices/Application.ts @@ -1,6 +1,7 @@ -import * as THREE from 'three'; +import { Vector3 } from 'three'; import * as xaop from 'xaop'; import { KeyBoard } from '../Common/KeyEnum'; +import { CADFile } from '../DatabaseServices/CADFile'; import { Database } from '../DatabaseServices/Database'; import { CameraControls } from '../Editor/CameraControls'; import { commandMachine } from '../Editor/CommandMachine'; @@ -11,14 +12,9 @@ import { Viewer } from '../GraphicsSystem/Viewer'; import { layoutOnsizeEvent } from '../UI/Layout/LayoutOnSizeEventManage'; export var app: ApplicationService -export var ed: Editor -export var db: Database /** - * - * - * @export - * @class ApplicationService + * webCAD应用. */ export class ApplicationService { @@ -28,7 +24,6 @@ export class ApplicationService m_Editor: Editor; constructor() { - ApplicationService.Application = this; app = this; //数据 this.m_Database = new Database(); @@ -46,7 +41,7 @@ export class ApplicationService //性能测试 // new RenderPerformanceStatus(this.m_Viewer); - //相机控制 + //相机控制 new CameraControls(this.m_Viewer); this.gui = new DatGUI(); @@ -89,8 +84,6 @@ export class ApplicationService this.m_Viewer.m_GripScene.visible = true; }) - ed = this.m_Editor; - db = this.m_Database window["app"] = this; //撤销 重做 @@ -124,48 +117,31 @@ export class ApplicationService } }) } - static Application: ApplicationService; -} - - - -export function MouseMove(pt: THREE.Vector3) -{ - // let points = (pts.geometry).vertices; - // let haveShow = false; - // for (let index = 0; index < points.length; index++) - // { - // let temp = points[index].clone(); - // app.m_Viewer.WorldToScreen(temp); - // if (Math.abs(temp.x - pt.x) < 7.5 - // && Math.abs(temp.y - pt.y) < 7.5 - // ) - // { - // if (lastIndex != index) - // { - // selectPts.position.copy(points[index]) - // } - // haveShow = true; - // break; - // } - // } - // selectPts.visible = haveShow; - ed.UpdateScreen() -} + //创建一张新图纸. + CreateDocument() + { + this.m_Viewer.m_CameraCtrl.LookAt(new Vector3(0, 0, -1)); + this.m_Viewer.m_CameraCtrl.ViewHeight = 1000; + this.m_Viewer.m_CameraCtrl.Update(); -window["viewtop"] = function () -{ - app.m_Viewer.ViewToTop(); -} + this.m_Database.FileRead(new Database().FileWrite()); + } -window["viewfont"] = function () -{ - app.m_Viewer.ViewToFront(); -} + FileOut(): CADFile + { + let f = this.m_Database.FileWrite(); + let vf = new CADFile(); + this.m_Viewer.m_CameraCtrl.WriteFile(vf); -window["viewxn"] = () => -{ - app.m_Viewer.ViewToSwiso(); + f.Write(vf.Data); + return f; + } + OpenFile(f: CADFile) + { + f.Reset(); + this.m_Database.FileRead(f); + this.m_Viewer.m_CameraCtrl.ReadFile(new CADFile(f.Read())); + } } diff --git a/src/DatabaseServices/CADFile.ts b/src/DatabaseServices/CADFile.ts index a46ce20c9..65ae518b3 100644 --- a/src/DatabaseServices/CADFile.ts +++ b/src/DatabaseServices/CADFile.ts @@ -12,7 +12,11 @@ import { ObjectId } from './ObjectId'; export class CADFile { private readIndex: number = 0; - private dataList: any[] = []; + private dataList: any[]; + constructor(data: any[] = []) + { + this.dataList = data; + } Destroy() { diff --git a/src/DatabaseServices/Database.ts b/src/DatabaseServices/Database.ts index d7abe0ff0..f73fb360c 100644 --- a/src/DatabaseServices/Database.ts +++ b/src/DatabaseServices/Database.ts @@ -7,7 +7,6 @@ import { MaerialTableRecord } from './MaerialTableRecord'; import { ObjectCollection } from './ObjectCollection'; import { ObjectId } from './ObjectId'; import { DbTexture } from './Texture'; -import { app } from '../ApplicationServices/Application'; @Factory export class Database @@ -54,16 +53,13 @@ export class Database FileWrite(): CADFile { let file = new CADFile(); - file.Write(2);//ver; + file.Write(1);//ver; file.Write(this.idCout); file.WriteObject(this.ModelSpace); file.WriteObject(this.MaterialDict); file.WriteObject(this.TextureTableCol); this.hm.WriteFile(file); - let viewData = new CADFile(); - app.m_Viewer.m_CameraCtrl.WriteFile(viewData); - file.Write(viewData.Data); return file; } FileRead(file: CADFile) @@ -81,12 +77,6 @@ export class Database } this.hm.ReadFile(file); - if (ver > 1) - { - let viewData = new CADFile(); - viewData.Data = file.Read(); - app.m_Viewer.m_CameraCtrl.ReadFile(viewData); - } } //创建一个id,自动递增它的索引号,并且会自动加入到db的id列表中. diff --git a/src/GraphicsSystem/Viewer.ts b/src/GraphicsSystem/Viewer.ts index 85bbaeab6..b84f83e89 100644 --- a/src/GraphicsSystem/Viewer.ts +++ b/src/GraphicsSystem/Viewer.ts @@ -1,5 +1,5 @@ import * as THREE from 'three'; -import { Vector3, OrthographicCamera } from 'three'; +import { Vector3 } from 'three'; import * as xaop from 'xaop'; import { end } from 'xaop'; import { Database } from '../DatabaseServices/Database'; diff --git a/src/UI/Components/SourceManage/FilePanel.tsx b/src/UI/Components/SourceManage/FilePanel.tsx index 37e4b1a64..3beecdd73 100644 --- a/src/UI/Components/SourceManage/FilePanel.tsx +++ b/src/UI/Components/SourceManage/FilePanel.tsx @@ -124,14 +124,12 @@ export class FilePanel extends React.Component if (!file) { - let db = new Database(); - app.m_Database.FileRead(db.FileWrite()); + app.CreateDocument(); } else { - let cadF = new CADFile(); - cadF.Data = file; - app.m_Database.FileRead(cadF); + let cadF = new CADFile(file); + app.OpenFile(cadF); app.m_Editor.UpdateScreen(); } store.Put(StoreName.Data, fid, fileData);