@vitrosoftware/common-ui-ts 1.1.121 → 1.1.123

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/css/std/controls/checkbox/checkbox.css +4 -0
  2. package/css/std/controls/checkbox/img/checkbox-indeterminate.svg +4 -0
  3. package/css/std/controls/date-picker/date-picker.css +1 -25
  4. package/css/std/controls/dxf-viewer/annotation.css +85 -0
  5. package/css/std/controls/dxf-viewer/common.css +24 -0
  6. package/css/std/controls/dxf-viewer/dxf-viewer-index.css +14081 -0
  7. package/css/std/controls/dxf-viewer/dxf-viewer.css +194 -0
  8. package/css/std/controls/dxf-viewer/img/cancel-dark-grey.svg +5 -0
  9. package/css/std/controls/dxf-viewer/img/collapse-bottom.svg +5 -0
  10. package/css/std/controls/dxf-viewer/img/collapse-up-blue.svg +5 -0
  11. package/css/std/controls/dxf-viewer/img/delete-active.svg +11 -0
  12. package/css/std/controls/dxf-viewer/img/delete.svg +11 -0
  13. package/css/std/controls/dxf-viewer/img/draw-annotation.svg +3 -0
  14. package/css/std/controls/dxf-viewer/img/invisible-eye.svg +4 -0
  15. package/css/std/controls/dxf-viewer/img/show-annotation.svg +3 -0
  16. package/css/std/controls/dxf-viewer/img/sidebar-layers-toggle.svg +6 -0
  17. package/css/std/controls/dxf-viewer/img/sidebar-notes-toggle.svg +5 -0
  18. package/css/std/controls/dxf-viewer/img/sidebar-resizer.svg +6 -0
  19. package/css/std/controls/dxf-viewer/img/sidebar-toggle.svg +7 -0
  20. package/css/std/controls/dxf-viewer/img/visible-eye.svg +4 -0
  21. package/css/std/controls/dxf-viewer/img/zoom-in.svg +6 -0
  22. package/css/std/controls/dxf-viewer/img/zoom-out.svg +5 -0
  23. package/css/std/controls/dxf-viewer/layer-list.css +104 -0
  24. package/css/std/controls/dxf-viewer/panel.css +34 -0
  25. package/css/std/controls/dxf-viewer/prop-inspector.css +102 -0
  26. package/css/std/controls/dxf-viewer/select.css +111 -0
  27. package/css/std/controls/dxf-viewer/sidebar.css +190 -0
  28. package/css/std/controls/dxf-viewer/thumbnail-list.css +65 -0
  29. package/css/std/controls/dxf-viewer/toolbar.css +117 -0
  30. package/css/std/controls/dxf-viewer/treeview.css +3 -0
  31. package/css/std/controls/dxf-viewer/treeview.panel.css +108 -0
  32. package/css/std/controls/error-message/error-message.css +22 -0
  33. package/css/std/controls/image-picker/image-picker.css +0 -26
  34. package/css/std/controls/input/input.css +1 -24
  35. package/css/std/controls/issue-tile/issue-tile-header.css +1 -0
  36. package/css/std/controls/login/ntlm-authentication-form.css +9 -12
  37. package/css/std/controls/lookup-picker/lookup-picker-value-list.css +38 -2
  38. package/css/std/controls/lookup-picker/lookup-picker.css +1 -25
  39. package/css/std/controls/table-view/treegrid-context-menu.css +44 -18
  40. package/css/std/controls/table-view/treegrid-message.css +4 -4
  41. package/css/std/controls/time-picker/time-picker.css +1 -25
  42. package/dist/index.css +81 -143
  43. package/dist/index.js +15137 -489
  44. package/dist/index.js.map +1 -1
  45. package/dist/src/controls/Checkbox/Checkbox.d.ts +1 -0
  46. package/dist/src/controls/DxfViewer/DxfViewer.d.ts +6 -0
  47. package/dist/src/controls/DxfViewer/DxfViewerContext.d.ts +31 -0
  48. package/dist/src/controls/DxfViewer/Layer.d.ts +9 -0
  49. package/dist/src/controls/DxfViewer/LayerList.d.ts +11 -0
  50. package/dist/src/controls/DxfViewer/Thumbnail.d.ts +7 -0
  51. package/dist/src/controls/DxfViewer/ThumbnailList.d.ts +6 -0
  52. package/dist/src/controls/DxfViewer/Viewer.d.ts +6 -0
  53. package/dist/src/controls/ErrorMessage/ErrorMessage.d.ts +6 -0
  54. package/dist/src/controls/Login/FormRef.d.ts +3 -0
  55. package/dist/src/controls/Login/LoginConstants.d.ts +2 -1
  56. package/dist/src/controls/Login/LoginFormRef.d.ts +2 -2
  57. package/dist/src/controls/Login/NTLMAuthenticationForm.d.ts +5 -2
  58. package/dist/src/controls/LookupPicker/LookupPicker.d.ts +2 -0
  59. package/dist/src/controls/LookupPicker/ValueList.d.ts +2 -0
  60. package/dist/src/controls/TableView/TableViewConstants.d.ts +11 -0
  61. package/dist/src/controls/TableView/TreeGridTableViewContextImpl.d.ts +1 -0
  62. package/dist/src/controls/TreeView/TreeView.d.ts +4 -0
  63. package/dist/src/controls/TreeView/TreeViewConfig.d.ts +3 -0
  64. package/dist/src/controls/TreeView/TreeViewConstants.d.ts +2 -1
  65. package/dist/src/index.d.ts +7 -1
  66. package/lib/dxf-viewer/BatchingKey.js +91 -0
  67. package/lib/dxf-viewer/DxfFetcher.js +39 -0
  68. package/lib/dxf-viewer/DxfScene.js +2695 -0
  69. package/lib/dxf-viewer/DxfViewer.js +1056 -0
  70. package/lib/dxf-viewer/DxfWorker.js +229 -0
  71. package/lib/dxf-viewer/DynamicBuffer.js +100 -0
  72. package/lib/dxf-viewer/HatchCalculator.js +345 -0
  73. package/lib/dxf-viewer/LinearDimension.js +323 -0
  74. package/lib/dxf-viewer/MTextFormatParser.js +211 -0
  75. package/lib/dxf-viewer/MaterialKey.js +37 -0
  76. package/lib/dxf-viewer/OrbitControls.js +1253 -0
  77. package/lib/dxf-viewer/Pattern.js +94 -0
  78. package/lib/dxf-viewer/RBTree.js +471 -0
  79. package/lib/dxf-viewer/TextRenderer.js +1038 -0
  80. package/lib/dxf-viewer/index.js +42 -0
  81. package/lib/dxf-viewer/math/Matrix2.js +77 -0
  82. package/lib/dxf-viewer/math/utils.js +59 -0
  83. package/lib/dxf-viewer/parser/AutoCadColorIndex.js +265 -0
  84. package/lib/dxf-viewer/parser/DimStyleCodes.js +33 -0
  85. package/lib/dxf-viewer/parser/DxfArrayScanner.js +143 -0
  86. package/lib/dxf-viewer/parser/DxfParser.js +980 -0
  87. package/lib/dxf-viewer/parser/ExtendedDataParse-My.js +91 -0
  88. package/lib/dxf-viewer/parser/ExtendedDataParser.js +123 -0
  89. package/lib/dxf-viewer/parser/ParseHelpers.js +142 -0
  90. package/lib/dxf-viewer/parser/entities/3dface.js +83 -0
  91. package/lib/dxf-viewer/parser/entities/arc.js +38 -0
  92. package/lib/dxf-viewer/parser/entities/attdef.js +89 -0
  93. package/lib/dxf-viewer/parser/entities/attrib.js +34 -0
  94. package/lib/dxf-viewer/parser/entities/attribute.js +109 -0
  95. package/lib/dxf-viewer/parser/entities/circle.js +43 -0
  96. package/lib/dxf-viewer/parser/entities/dimension.js +72 -0
  97. package/lib/dxf-viewer/parser/entities/ellipse.js +46 -0
  98. package/lib/dxf-viewer/parser/entities/hatch.js +343 -0
  99. package/lib/dxf-viewer/parser/entities/insert.js +62 -0
  100. package/lib/dxf-viewer/parser/entities/leader.js +84 -0
  101. package/lib/dxf-viewer/parser/entities/line.js +34 -0
  102. package/lib/dxf-viewer/parser/entities/lwpolyline.js +100 -0
  103. package/lib/dxf-viewer/parser/entities/mtext.js +54 -0
  104. package/lib/dxf-viewer/parser/entities/point.js +35 -0
  105. package/lib/dxf-viewer/parser/entities/polyline.js +92 -0
  106. package/lib/dxf-viewer/parser/entities/solid.js +40 -0
  107. package/lib/dxf-viewer/parser/entities/spline.js +70 -0
  108. package/lib/dxf-viewer/parser/entities/text.js +47 -0
  109. package/lib/dxf-viewer/parser/entities/vertex.js +62 -0
  110. package/lib/dxf-viewer/parser/entities/viewport.js +56 -0
  111. package/lib/dxf-viewer/parser/objects/dictionary.js +29 -0
  112. package/lib/dxf-viewer/parser/objects/layout.js +35 -0
  113. package/lib/dxf-viewer/parser/objects/xrecord.js +29 -0
  114. package/lib/opentype/opentype.module.js +14571 -0
  115. package/lib/three/CSS2DRenderer.js +235 -0
  116. package/lib/three/three.module.js +49912 -0
  117. package/lib/xeokit/xeokit-sdk-2.6.10.es.js +136629 -0
  118. package/lib/xeokit/xeokit-sdk-2.6.10.min.es.js +299 -0
  119. package/package.json +12 -10
  120. package/src/controls/BimViewer/js/bim-viewer-models.js +93 -0
  121. package/src/controls/BimViewer/js/bim-viewer.js +194 -5
  122. package/src/controls/DxfViewer/js/dxf-viewer.js +3541 -0
  123. package/src/controls/PdfViewer/js/pdf-viewer.js +1 -1
  124. package/css/std/controls/input/img/error-message.svg +0 -6
  125. package/css/std/controls/lookup-picker/img/error-message.svg +0 -6
  126. package/css/std/controls/time-picker/img/error-message.svg +0 -6
  127. package/dist/src/controls/ActionHandler/ActionInfo.d.ts +0 -12
  128. package/dist/src/controls/ActionHandler/ActionInfoItem.d.ts +0 -13
  129. package/dist/src/controls/ActionHandler/UpdatingPopover.d.ts +0 -2
  130. package/dist/src/controls/Dialog/DialogButton.d.ts +0 -8
  131. package/dist/src/controls/Dialog/DialogCloseButton.d.ts +0 -8
  132. package/dist/src/controls/Icon/Icon.d.ts +0 -11
  133. package/dist/src/controls/Search/Input.d.ts +0 -21
  134. package/dist/src/controls/Search/SearchConstants.d.ts +0 -4
  135. /package/css/std/controls/{date-picker → error-message}/img/error-message.svg +0 -0
@@ -0,0 +1,84 @@
1
+
2
+ import * as helpers from '../ParseHelpers.js'
3
+
4
+ export default function EntityParser() {}
5
+
6
+ EntityParser.ForEntityName = 'LEADER';
7
+
8
+ EntityParser.prototype.parseEntity = function(scanner, curr) {
9
+ var entity = { type: curr.value, vertices: [] },
10
+ numberOfVertices = 0;
11
+ curr = scanner.next();
12
+ while(curr !== 'EOF') {
13
+ if(curr.code === 0) break;
14
+
15
+ switch(curr.code) {
16
+ case 76:
17
+ numberOfVertices = curr.value;
18
+ break;
19
+ case 10: // X coordinate of point
20
+ entity.vertices = parseLWPolylineVertices(numberOfVertices, scanner);
21
+ break;
22
+ default:
23
+ helpers.checkCommonEntityProperties(entity, curr, scanner);
24
+ break;
25
+ }
26
+ curr = scanner.next();
27
+ }
28
+ return entity;
29
+ };
30
+
31
+ function parseLWPolylineVertices(n, scanner) {
32
+ if(!n || n <= 0) throw Error('n must be greater than 0 verticies');
33
+ var vertices = [], i;
34
+ var vertexIsStarted = false;
35
+ var vertexIsFinished = false;
36
+ var curr = scanner.lastReadGroup;
37
+
38
+ for(i = 0; i < n; i++) {
39
+ var vertex = {};
40
+ while(curr !== 'EOF') {
41
+ if(curr.code === 0 || vertexIsFinished) break;
42
+
43
+ switch(curr.code) {
44
+ case 10: // X
45
+ if(vertexIsStarted) {
46
+ vertexIsFinished = true;
47
+ continue;
48
+ }
49
+ vertex.x = curr.value;
50
+ vertexIsStarted = true;
51
+ break;
52
+ case 20: // Y
53
+ vertex.y = curr.value;
54
+ break;
55
+ case 30: // Z
56
+ vertex.z = curr.value;
57
+ break;
58
+ case 40: // start width
59
+ vertex.startWidth = curr.value;
60
+ break;
61
+ case 41: // end width
62
+ vertex.endWidth = curr.value;
63
+ break;
64
+ case 42: // bulge
65
+ if(curr.value != 0) vertex.bulge = curr.value;
66
+ break;
67
+ default:
68
+ // if we do not hit known code return vertices. Code might belong to entity
69
+ if (vertexIsStarted) {
70
+ vertices.push(vertex);
71
+ }
72
+ scanner.rewind();
73
+ return vertices;
74
+ }
75
+ curr = scanner.next();
76
+ }
77
+ // See https://groups.google.com/forum/#!topic/comp.cad.autocad/9gn8s5O_w6E
78
+ vertices.push(vertex);
79
+ vertexIsStarted = false;
80
+ vertexIsFinished = false;
81
+ }
82
+ scanner.rewind();
83
+ return vertices;
84
+ };
@@ -0,0 +1,34 @@
1
+
2
+ import * as helpers from '../ParseHelpers.js'
3
+
4
+ export default function EntityParser() {}
5
+
6
+ EntityParser.ForEntityName = 'LINE';
7
+
8
+ EntityParser.prototype.parseEntity = function(scanner, curr) {
9
+ var entity = { type: curr.value, vertices: [] };
10
+ curr = scanner.next();
11
+ while(curr !== 'EOF') {
12
+ if(curr.code === 0) break;
13
+
14
+ switch(curr.code) {
15
+ case 10: // X coordinate of point
16
+ entity.vertices.unshift(helpers.parsePoint(scanner));
17
+ break;
18
+ case 11:
19
+ entity.vertices.push(helpers.parsePoint(scanner));
20
+ break;
21
+ case 210:
22
+ entity.extrusionDirection = helpers.parsePoint(scanner);
23
+ break;
24
+ case 100:
25
+ break;
26
+ default:
27
+ helpers.checkCommonEntityProperties(entity, curr, scanner);
28
+ break;
29
+ }
30
+
31
+ curr = scanner.next();
32
+ }
33
+ return entity;
34
+ };
@@ -0,0 +1,100 @@
1
+
2
+ import * as helpers from '../ParseHelpers.js'
3
+
4
+ export default function EntityParser() {}
5
+
6
+ EntityParser.ForEntityName = 'LWPOLYLINE';
7
+
8
+ EntityParser.prototype.parseEntity = function(scanner, curr) {
9
+ var entity = { type: curr.value, vertices: [] },
10
+ numberOfVertices = 0;
11
+ curr = scanner.next();
12
+ while(curr !== 'EOF') {
13
+ if(curr.code === 0) break;
14
+
15
+ switch(curr.code) {
16
+ case 38:
17
+ entity.elevation = curr.value;
18
+ break;
19
+ case 39:
20
+ entity.depth = curr.value;
21
+ break;
22
+ case 70: // 1 = Closed shape, 128 = plinegen?, 0 = default
23
+ entity.shape = ((curr.value & 1) === 1);
24
+ entity.hasContinuousLinetypePattern = ((curr.value & 128) === 128);
25
+ break;
26
+ case 90:
27
+ numberOfVertices = curr.value;
28
+ break;
29
+ case 10: // X coordinate of point
30
+ entity.vertices = parseLWPolylineVertices(numberOfVertices, scanner);
31
+ break;
32
+ case 43:
33
+ if(curr.value !== 0) entity.width = curr.value;
34
+ break;
35
+ case 210:
36
+ entity.extrusionDirection = helpers.parsePoint(scanner);
37
+ break;
38
+ default:
39
+ helpers.checkCommonEntityProperties(entity, curr, scanner);
40
+ break;
41
+ }
42
+ curr = scanner.next();
43
+ }
44
+ return entity;
45
+ };
46
+
47
+ function parseLWPolylineVertices(n, scanner) {
48
+ if(!n || n <= 0) throw Error('n must be greater than 0 verticies');
49
+ var vertices = [], i;
50
+ var vertexIsStarted = false;
51
+ var vertexIsFinished = false;
52
+ var curr = scanner.lastReadGroup;
53
+
54
+ for(i = 0; i < n; i++) {
55
+ var vertex = {};
56
+ while(curr !== 'EOF') {
57
+ if(curr.code === 0 || vertexIsFinished) break;
58
+
59
+ switch(curr.code) {
60
+ case 10: // X
61
+ if(vertexIsStarted) {
62
+ vertexIsFinished = true;
63
+ continue;
64
+ }
65
+ vertex.x = curr.value;
66
+ vertexIsStarted = true;
67
+ break;
68
+ case 20: // Y
69
+ vertex.y = curr.value;
70
+ break;
71
+ case 30: // Z
72
+ vertex.z = curr.value;
73
+ break;
74
+ case 40: // start width
75
+ vertex.startWidth = curr.value;
76
+ break;
77
+ case 41: // end width
78
+ vertex.endWidth = curr.value;
79
+ break;
80
+ case 42: // bulge
81
+ if(curr.value != 0) vertex.bulge = curr.value;
82
+ break;
83
+ default:
84
+ // if we do not hit known code return vertices. Code might belong to entity
85
+ if (vertexIsStarted) {
86
+ vertices.push(vertex);
87
+ }
88
+ scanner.rewind();
89
+ return vertices;
90
+ }
91
+ curr = scanner.next();
92
+ }
93
+ // See https://groups.google.com/forum/#!topic/comp.cad.autocad/9gn8s5O_w6E
94
+ vertices.push(vertex);
95
+ vertexIsStarted = false;
96
+ vertexIsFinished = false;
97
+ }
98
+ scanner.rewind();
99
+ return vertices;
100
+ };
@@ -0,0 +1,54 @@
1
+
2
+ import * as helpers from '../ParseHelpers.js'
3
+
4
+ export default function EntityParser() {}
5
+
6
+ EntityParser.ForEntityName = 'MTEXT';
7
+
8
+ EntityParser.prototype.parseEntity = function(scanner, curr) {
9
+ var entity = { type: curr.value };
10
+ curr = scanner.next();
11
+ while(curr !== 'EOF') {
12
+ if(curr.code === 0) break;
13
+
14
+ switch(curr.code) {
15
+ case 3:
16
+ case 1:
17
+ entity.text ? entity.text += curr.value : entity.text = curr.value;
18
+ break;
19
+ case 10:
20
+ entity.position = helpers.parsePoint(scanner);
21
+ break;
22
+ case 11:
23
+ entity.direction = helpers.parsePoint(scanner);
24
+ break;
25
+ case 40:
26
+ //Note: this is the text height
27
+ entity.height = curr.value;
28
+ break;
29
+ case 41:
30
+ entity.width = curr.value;
31
+ break;
32
+ case 44:
33
+ entity.lineSpacing = curr.value;
34
+ break;
35
+ case 50:
36
+ entity.rotation = curr.value;
37
+ break;
38
+ case 71:
39
+ entity.attachmentPoint = curr.value;
40
+ break;
41
+ case 72:
42
+ entity.drawingDirection = curr.value;
43
+ break;
44
+ case 101:
45
+ helpers.skipEmbeddedObject(scanner);
46
+ break;
47
+ default:
48
+ helpers.checkCommonEntityProperties(entity, curr, scanner);
49
+ break;
50
+ }
51
+ curr = scanner.next();
52
+ }
53
+ return entity;
54
+ };
@@ -0,0 +1,35 @@
1
+
2
+ import * as helpers from '../ParseHelpers.js'
3
+
4
+ export default function EntityParser() {}
5
+
6
+ EntityParser.ForEntityName = 'POINT';
7
+
8
+ EntityParser.prototype.parseEntity = function(scanner, curr) {
9
+ var entity;
10
+ entity = { type: curr.value };
11
+ curr = scanner.next();
12
+ while(curr !== 'EOF') {
13
+ if(curr.code === 0) break;
14
+
15
+ switch(curr.code) {
16
+ case 10:
17
+ entity.position = helpers.parsePoint(scanner);
18
+ break;
19
+ case 39:
20
+ entity.thickness = curr.value;
21
+ break;
22
+ case 210:
23
+ entity.extrusionDirection = helpers.parsePoint(scanner);
24
+ break;
25
+ case 100:
26
+ break;
27
+ default: // check common entity attributes
28
+ helpers.checkCommonEntityProperties(entity, curr, scanner);
29
+ break;
30
+ }
31
+ curr = scanner.next();
32
+ }
33
+
34
+ return entity;
35
+ };
@@ -0,0 +1,92 @@
1
+
2
+ import * as helpers from '../ParseHelpers.js'
3
+ import VertexParser from './vertex.js';
4
+
5
+ export default function EntityParser() {}
6
+
7
+ EntityParser.ForEntityName = 'POLYLINE';
8
+
9
+ EntityParser.prototype.parseEntity = function(scanner, curr) {
10
+ var entity = { type: curr.value, vertices: [] };
11
+ curr = scanner.next();
12
+ while(curr !== 'EOF') {
13
+ if(curr.code === 0) break;
14
+
15
+ switch(curr.code) {
16
+ case 10: // always 0
17
+ break;
18
+ case 20: // always 0
19
+ break;
20
+ case 30: // elevation
21
+ break;
22
+ case 39: // thickness
23
+ entity.thickness = curr.value;
24
+ break;
25
+ case 40: // start width
26
+ break;
27
+ case 41: // end width
28
+ break;
29
+ case 70:
30
+ entity.shape = (curr.value & 1) !== 0;
31
+ entity.includesCurveFitVertices = (curr.value & 2) !== 0;
32
+ entity.includesSplineFitVertices = (curr.value & 4) !== 0;
33
+ entity.is3dPolyline = (curr.value & 8) !== 0;
34
+ entity.is3dPolygonMesh = (curr.value & 16) !== 0;
35
+ entity.is3dPolygonMeshClosed = (curr.value & 32) !== 0; // 32 = The polygon mesh is closed in the N direction
36
+ entity.isPolyfaceMesh = (curr.value & 64) !== 0;
37
+ entity.hasContinuousLinetypePattern = (curr.value & 128) !== 0;
38
+ break;
39
+ case 71: // Polygon mesh M vertex count
40
+ break;
41
+ case 72: // Polygon mesh N vertex count
42
+ break;
43
+ case 73: // Smooth surface M density
44
+ break;
45
+ case 74: // Smooth surface N density
46
+ break;
47
+ case 75: // Curves and smooth surface type
48
+ break;
49
+ case 210:
50
+ entity.extrusionDirection = helpers.parsePoint(scanner);
51
+ break;
52
+ default:
53
+ helpers.checkCommonEntityProperties(entity, curr, scanner);
54
+ break;
55
+ }
56
+ curr = scanner.next();
57
+ }
58
+
59
+ entity.vertices = parsePolylineVertices(scanner, curr);
60
+
61
+ return entity;
62
+ };
63
+
64
+ function parsePolylineVertices(scanner, curr) {
65
+ var vertexParser = new VertexParser();
66
+
67
+ var vertices = [];
68
+ while (!scanner.isEOF()) {
69
+ if (curr.code === 0) {
70
+ if (curr.value === 'VERTEX') {
71
+ vertices.push(vertexParser.parseEntity(scanner, curr));
72
+ curr = scanner.lastReadGroup;
73
+ } else if (curr.value === 'SEQEND') {
74
+ parseSeqEnd(scanner, curr);
75
+ break;
76
+ }
77
+ }
78
+ }
79
+ return vertices;
80
+ };
81
+
82
+ function parseSeqEnd(scanner, curr) {
83
+ var entity = { type: curr.value };
84
+ curr = scanner.next();
85
+ while(curr != 'EOF') {
86
+ if (curr.code == 0) break;
87
+ helpers.checkCommonEntityProperties(entity, curr, scanner);
88
+ curr = scanner.next();
89
+ }
90
+
91
+ return entity;
92
+ };
@@ -0,0 +1,40 @@
1
+
2
+ import * as helpers from '../ParseHelpers.js'
3
+
4
+ export default function EntityParser() {}
5
+
6
+ EntityParser.ForEntityName = 'SOLID';
7
+
8
+ EntityParser.prototype.parseEntity = function(scanner, currentGroup) {
9
+ var entity;
10
+ entity = { type: currentGroup.value };
11
+ entity.points = [];
12
+ currentGroup = scanner.next();
13
+ while(currentGroup !== 'EOF') {
14
+ if(currentGroup.code === 0) break;
15
+
16
+ switch(currentGroup.code) {
17
+ case 10:
18
+ entity.points[0] = helpers.parsePoint(scanner);
19
+ break;
20
+ case 11:
21
+ entity.points[1] = helpers.parsePoint(scanner);
22
+ break;
23
+ case 12:
24
+ entity.points[2] = helpers.parsePoint(scanner);
25
+ break;
26
+ case 13:
27
+ entity.points[3] = helpers.parsePoint(scanner);
28
+ break;
29
+ case 210:
30
+ entity.extrusionDirection = helpers.parsePoint(scanner);
31
+ break;
32
+ default: // check common entity attributes
33
+ helpers.checkCommonEntityProperties(entity, currentGroup, scanner);
34
+ break;
35
+ }
36
+ currentGroup = scanner.next();
37
+ }
38
+
39
+ return entity;
40
+ };
@@ -0,0 +1,70 @@
1
+
2
+ import * as helpers from '../ParseHelpers.js'
3
+
4
+ export default function EntityParser() {}
5
+
6
+ EntityParser.ForEntityName = 'SPLINE';
7
+
8
+ EntityParser.prototype.parseEntity = function(scanner, curr) {
9
+ var entity;
10
+ entity = { type: curr.value };
11
+ curr = scanner.next();
12
+ while(curr !== 'EOF')
13
+ {
14
+ if(curr.code === 0) break;
15
+
16
+ switch(curr.code) {
17
+ case 10:
18
+ if (!entity.controlPoints) entity.controlPoints = [];
19
+ entity.controlPoints.push(helpers.parsePoint(scanner));
20
+ break;
21
+ case 11:
22
+ if (!entity.fitPoints) entity.fitPoints = [];
23
+ entity.fitPoints.push(helpers.parsePoint(scanner));
24
+ break;
25
+ case 12:
26
+ entity.startTangent = helpers.parsePoint(scanner);
27
+ break;
28
+ case 13:
29
+ entity.endTangent = helpers.parsePoint(scanner);
30
+ break;
31
+ case 40:
32
+ if (!entity.knotValues) entity.knotValues = [];
33
+ entity.knotValues.push(curr.value);
34
+ break;
35
+ case 70:
36
+ if ((curr.value & 1) != 0) entity.closed = true;
37
+ if ((curr.value & 2) != 0) entity.periodic = true;
38
+ if ((curr.value & 4) != 0) entity.rational = true;
39
+ if ((curr.value & 8) != 0) entity.planar = true;
40
+ if ((curr.value & 16) != 0)
41
+ {
42
+ entity.planar = true;
43
+ entity.linear = true;
44
+ }
45
+ break;
46
+
47
+ case 71:
48
+ entity.degreeOfSplineCurve = curr.value;
49
+ break;
50
+ case 72:
51
+ entity.numberOfKnots = curr.value;
52
+ break;
53
+ case 73:
54
+ entity.numberOfControlPoints = curr.value;
55
+ break;
56
+ case 74:
57
+ entity.numberOfFitPoints = curr.value;
58
+ break;
59
+ case 210:
60
+ entity.extrusionDirection = helpers.parsePoint(scanner);
61
+ break;
62
+ default:
63
+ helpers.checkCommonEntityProperties(entity, curr, scanner);
64
+ break;
65
+ }
66
+ curr = scanner.next();
67
+ }
68
+
69
+ return entity;
70
+ };
@@ -0,0 +1,47 @@
1
+
2
+ import * as helpers from '../ParseHelpers.js'
3
+
4
+ export default function EntityParser() {}
5
+
6
+ EntityParser.ForEntityName = 'TEXT';
7
+
8
+ EntityParser.prototype.parseEntity = function(scanner, curr) {
9
+ var entity;
10
+ entity = { type: curr.value };
11
+ curr = scanner.next();
12
+ while(curr !== 'EOF') {
13
+ if(curr.code === 0) break;
14
+ switch(curr.code) {
15
+ case 10: // X coordinate of 'first alignment point'
16
+ entity.startPoint = helpers.parsePoint(scanner);
17
+ break;
18
+ case 11: // X coordinate of 'second alignment point'
19
+ entity.endPoint = helpers.parsePoint(scanner);
20
+ break;
21
+ case 40: // Text height
22
+ entity.textHeight = curr.value;
23
+ break;
24
+ case 41:
25
+ entity.xScale = curr.value;
26
+ break;
27
+ case 50: // Rotation in degrees
28
+ entity.rotation = curr.value;
29
+ break;
30
+ case 1: // Text
31
+ entity.text = curr.value;
32
+ break;
33
+ // NOTE: 72 and 73 are meaningless without 11 (second alignment point)
34
+ case 72: // Horizontal alignment
35
+ entity.halign = curr.value;
36
+ break;
37
+ case 73: // Vertical alignment
38
+ entity.valign = curr.value;
39
+ break;
40
+ default: // check common entity attributes
41
+ helpers.checkCommonEntityProperties(entity, curr, scanner);
42
+ break;
43
+ }
44
+ curr = scanner.next();
45
+ }
46
+ return entity;
47
+ };
@@ -0,0 +1,62 @@
1
+
2
+ import * as helpers from '../ParseHelpers.js'
3
+
4
+ export default function EntityParser() {}
5
+
6
+ EntityParser.ForEntityName = 'VERTEX';
7
+
8
+ EntityParser.prototype.parseEntity = function(scanner, curr) {
9
+ var entity = { type: curr.value };
10
+ curr = scanner.next();
11
+ while(curr !== 'EOF') {
12
+ if(curr.code === 0) break;
13
+
14
+ switch(curr.code) {
15
+ case 10: // X
16
+ entity.x = curr.value;
17
+ break;
18
+ case 20: // Y
19
+ entity.y = curr.value;
20
+ break;
21
+ case 30: // Z
22
+ entity.z = curr.value;
23
+ break;
24
+ case 40: // start width
25
+ break;
26
+ case 41: // end width
27
+ break;
28
+ case 42: // bulge
29
+ if(curr.value != 0) entity.bulge = curr.value;
30
+ break;
31
+ case 70: // flags
32
+ entity.curveFittingVertex = (curr.value & 1) !== 0;
33
+ entity.curveFitTangent = (curr.value & 2) !== 0;
34
+ entity.splineVertex = (curr.value & 8) !== 0;
35
+ entity.splineControlPoint = (curr.value & 16) !== 0;
36
+ entity.threeDPolylineVertex = (curr.value & 32) !== 0;
37
+ entity.threeDPolylineMesh = (curr.value & 64) !== 0;
38
+ entity.polyfaceMeshVertex = (curr.value & 128) !== 0;
39
+ break;
40
+ case 50: // curve fit tangent direction
41
+ break;
42
+ case 71: // polyface mesh vertex index
43
+ entity.faces = [curr.value];
44
+ break;
45
+ case 72: // polyface mesh vertex index
46
+ entity.faces[1] = curr.value;
47
+ break;
48
+ case 73: // polyface mesh vertex index
49
+ entity.faces[2] = curr.value;
50
+ break;
51
+ case 74: // polyface mesh vertex index
52
+ entity.faces[3] = curr.value;
53
+ break;
54
+ default:
55
+ helpers.checkCommonEntityProperties(entity, curr, scanner);
56
+ break;
57
+ }
58
+
59
+ curr = scanner.next();
60
+ }
61
+ return entity;
62
+ };
@@ -0,0 +1,56 @@
1
+
2
+ import * as helpers from '../ParseHelpers.js'
3
+
4
+ export default function EntityParser() {}
5
+
6
+ EntityParser.ForEntityName = 'VIEWPORT';
7
+
8
+ EntityParser.prototype.parseEntity = function(scanner, curr) {
9
+ var entity = { type: curr.value, vertices: [] },
10
+ curr = scanner.next();
11
+ while(curr !== 'EOF') {
12
+ if(curr.code === 0) break;
13
+
14
+ switch(curr.code) {
15
+ case 281:
16
+ entity.renderMode = curr.value;
17
+ break;
18
+ case 40:
19
+ entity.width = curr.value;
20
+ break;
21
+ case 41:
22
+ entity.height = curr.value;
23
+ break;
24
+ case 10: // X coordinate of center point
25
+ entity.center = helpers.parsePoint(scanner);
26
+ break;
27
+ case 12: // X coordinate of view center point
28
+ entity.viewCenter = helpers.parsePoint(scanner);
29
+ break;
30
+ case 17: // X coordinate of view target point (in WCS)
31
+ entity.viewTarget = helpers.parsePoint(scanner);
32
+ break;
33
+ case 45: // View height
34
+ entity.viewHeight = curr.value;
35
+ break;
36
+ case 51: // View twist angle
37
+ entity.twist = curr.value;
38
+ break;
39
+ case 340:
40
+ entity.boundaryHandle = curr.value;
41
+ break;
42
+ case 68:
43
+ entity.status = curr.value;
44
+ break;
45
+ case 69:
46
+ entity.id = curr.value;
47
+ break;
48
+ default:
49
+ helpers.checkCommonEntityProperties(entity, curr, scanner);
50
+ break;
51
+ }
52
+ curr = scanner.next();
53
+ }
54
+ return entity;
55
+ };
56
+