@sapui5/sap.ui.vk 1.136.0 → 1.138.0

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 (241) hide show
  1. package/package.json +1 -1
  2. package/src/sap/ui/vk/.library +1 -1
  3. package/src/sap/ui/vk/AnimationPlayback.js +1 -1
  4. package/src/sap/ui/vk/AnimationPlayer.js +2 -2
  5. package/src/sap/ui/vk/AnimationSequence.js +1 -1
  6. package/src/sap/ui/vk/AnimationTimeSlider.js +1 -1
  7. package/src/sap/ui/vk/AnimationTrack.js +1 -1
  8. package/src/sap/ui/vk/Annotation.js +2 -2
  9. package/src/sap/ui/vk/BaseNodeProxy.js +1 -1
  10. package/src/sap/ui/vk/Camera.js +1 -1
  11. package/src/sap/ui/vk/ContentConnector.js +2 -2
  12. package/src/sap/ui/vk/ContentManager.js +1 -1
  13. package/src/sap/ui/vk/ContentResource.js +5 -1
  14. package/src/sap/ui/vk/Core.js +1 -3
  15. package/src/sap/ui/vk/DownloadManager.js +1 -1
  16. package/src/sap/ui/vk/DrawerToolbar.js +142 -76
  17. package/src/sap/ui/vk/DrawerToolbarButton.js +12 -1
  18. package/src/sap/ui/vk/DvlException.js +1 -1
  19. package/src/sap/ui/vk/FlexibleControl.js +1 -2
  20. package/src/sap/ui/vk/FlexibleControlLayoutData.js +1 -2
  21. package/src/sap/ui/vk/Highlight.js +1 -1
  22. package/src/sap/ui/vk/ImageContentManager.js +1 -1
  23. package/src/sap/ui/vk/JointUtils.js +1 -1
  24. package/src/sap/ui/vk/LayerProxy.js +1 -1
  25. package/src/sap/ui/vk/LegendItem.js +1 -1
  26. package/src/sap/ui/vk/ListPanel.js +1 -1
  27. package/src/sap/ui/vk/ListPanelStack.js +1 -1
  28. package/src/sap/ui/vk/Loco.js +1 -1
  29. package/src/sap/ui/vk/Material.js +1 -1
  30. package/src/sap/ui/vk/NativeViewport.js +1 -1
  31. package/src/sap/ui/vk/NodeHierarchy.js +1 -1
  32. package/src/sap/ui/vk/NodeProxy.js +1 -1
  33. package/src/sap/ui/vk/NodeUtils.js +1 -1
  34. package/src/sap/ui/vk/Notifications.js +1 -1
  35. package/src/sap/ui/vk/OrthographicCamera.js +1 -1
  36. package/src/sap/ui/vk/OutputSettings.js +0 -1
  37. package/src/sap/ui/vk/Overlay.js +1 -1
  38. package/src/sap/ui/vk/PerspectiveCamera.js +1 -1
  39. package/src/sap/ui/vk/ProgressIndicator.js +1 -1
  40. package/src/sap/ui/vk/RedlineCollaboration.js +1 -1
  41. package/src/sap/ui/vk/RedlineConversation.js +1 -1
  42. package/src/sap/ui/vk/RedlineDesign.js +1 -1
  43. package/src/sap/ui/vk/RedlineElement.js +1 -1
  44. package/src/sap/ui/vk/RedlineElementComment.js +1 -1
  45. package/src/sap/ui/vk/RedlineElementEllipse.js +1 -1
  46. package/src/sap/ui/vk/RedlineElementFreehand.js +1 -1
  47. package/src/sap/ui/vk/RedlineElementLine.js +1 -1
  48. package/src/sap/ui/vk/RedlineElementRectangle.js +1 -1
  49. package/src/sap/ui/vk/RedlineElementText.js +1 -1
  50. package/src/sap/ui/vk/RedlineSurface.js +2 -2
  51. package/src/sap/ui/vk/SafeArea.js +1 -1
  52. package/src/sap/ui/vk/Scene.js +12 -1
  53. package/src/sap/ui/vk/SceneTree.js +4 -7
  54. package/src/sap/ui/vk/StepNavigation.js +1 -2
  55. package/src/sap/ui/vk/Texture.js +2 -2
  56. package/src/sap/ui/vk/ToggleMenuButton.js +1 -1
  57. package/src/sap/ui/vk/ToggleMenuItem.js +7 -4
  58. package/src/sap/ui/vk/ToggleMenuItemRenderer.js +224 -0
  59. package/src/sap/ui/vk/Toolbar.js +69 -115
  60. package/src/sap/ui/vk/View.js +7 -13
  61. package/src/sap/ui/vk/ViewGallery.js +2 -2
  62. package/src/sap/ui/vk/ViewGalleryThumbnail.js +1 -1
  63. package/src/sap/ui/vk/ViewGroup.js +1 -1
  64. package/src/sap/ui/vk/ViewManager.js +1 -1
  65. package/src/sap/ui/vk/ViewStateManager.js +2 -2
  66. package/src/sap/ui/vk/ViewStateManagerBase.js +3 -3
  67. package/src/sap/ui/vk/Viewer.js +467 -304
  68. package/src/sap/ui/vk/Viewport.js +2 -2
  69. package/src/sap/ui/vk/ViewportBase.js +46 -3
  70. package/src/sap/ui/vk/dvl/BaseNodeProxy.js +1 -1
  71. package/src/sap/ui/vk/dvl/ContentManager.js +1 -1
  72. package/src/sap/ui/vk/dvl/GraphicsCore.js +1 -1
  73. package/src/sap/ui/vk/dvl/LayerProxy.js +1 -1
  74. package/src/sap/ui/vk/dvl/NodeHierarchy.js +1 -1
  75. package/src/sap/ui/vk/dvl/NodeProxy.js +1 -1
  76. package/src/sap/ui/vk/dvl/Scene.js +1 -1
  77. package/src/sap/ui/vk/dvl/ViewStateManager.js +1 -1
  78. package/src/sap/ui/vk/dvl/Viewport.js +1 -1
  79. package/src/sap/ui/vk/ecad/ElementsPanel.js +641 -119
  80. package/src/sap/ui/vk/ecad/LayersPanel.js +254 -121
  81. package/src/sap/ui/vk/i18n/messagebundle.properties +40 -5
  82. package/src/sap/ui/vk/i18n/messagebundle_ar.properties +34 -0
  83. package/src/sap/ui/vk/i18n/messagebundle_bg.properties +34 -0
  84. package/src/sap/ui/vk/i18n/messagebundle_ca.properties +35 -1
  85. package/src/sap/ui/vk/i18n/messagebundle_cnr.properties +34 -0
  86. package/src/sap/ui/vk/i18n/messagebundle_cs.properties +34 -0
  87. package/src/sap/ui/vk/i18n/messagebundle_cy.properties +34 -0
  88. package/src/sap/ui/vk/i18n/messagebundle_da.properties +34 -0
  89. package/src/sap/ui/vk/i18n/messagebundle_de.properties +34 -0
  90. package/src/sap/ui/vk/i18n/messagebundle_el.properties +34 -0
  91. package/src/sap/ui/vk/i18n/messagebundle_en.properties +348 -0
  92. package/src/sap/ui/vk/i18n/messagebundle_en_GB.properties +34 -0
  93. package/src/sap/ui/vk/i18n/messagebundle_en_US_saprigi.properties +34 -0
  94. package/src/sap/ui/vk/i18n/messagebundle_es.properties +36 -2
  95. package/src/sap/ui/vk/i18n/messagebundle_es_MX.properties +34 -0
  96. package/src/sap/ui/vk/i18n/messagebundle_et.properties +34 -0
  97. package/src/sap/ui/vk/i18n/messagebundle_fi.properties +34 -0
  98. package/src/sap/ui/vk/i18n/messagebundle_fr.properties +34 -0
  99. package/src/sap/ui/vk/i18n/messagebundle_fr_CA.properties +34 -0
  100. package/src/sap/ui/vk/i18n/messagebundle_hi.properties +34 -0
  101. package/src/sap/ui/vk/i18n/messagebundle_hr.properties +34 -0
  102. package/src/sap/ui/vk/i18n/messagebundle_hu.properties +34 -0
  103. package/src/sap/ui/vk/i18n/messagebundle_id.properties +35 -1
  104. package/src/sap/ui/vk/i18n/messagebundle_it.properties +36 -2
  105. package/src/sap/ui/vk/i18n/messagebundle_iw.properties +34 -0
  106. package/src/sap/ui/vk/i18n/messagebundle_ja.properties +34 -0
  107. package/src/sap/ui/vk/i18n/messagebundle_kk.properties +34 -0
  108. package/src/sap/ui/vk/i18n/messagebundle_ko.properties +34 -0
  109. package/src/sap/ui/vk/i18n/messagebundle_lt.properties +34 -0
  110. package/src/sap/ui/vk/i18n/messagebundle_lv.properties +36 -2
  111. package/src/sap/ui/vk/i18n/messagebundle_mk.properties +36 -2
  112. package/src/sap/ui/vk/i18n/messagebundle_ms.properties +39 -5
  113. package/src/sap/ui/vk/i18n/messagebundle_nl.properties +34 -0
  114. package/src/sap/ui/vk/i18n/messagebundle_no.properties +34 -0
  115. package/src/sap/ui/vk/i18n/messagebundle_pl.properties +34 -0
  116. package/src/sap/ui/vk/i18n/messagebundle_pt.properties +34 -0
  117. package/src/sap/ui/vk/i18n/messagebundle_pt_PT.properties +34 -0
  118. package/src/sap/ui/vk/i18n/messagebundle_ro.properties +34 -0
  119. package/src/sap/ui/vk/i18n/messagebundle_ru.properties +34 -0
  120. package/src/sap/ui/vk/i18n/messagebundle_sh.properties +34 -0
  121. package/src/sap/ui/vk/i18n/messagebundle_sk.properties +34 -0
  122. package/src/sap/ui/vk/i18n/messagebundle_sl.properties +37 -3
  123. package/src/sap/ui/vk/i18n/messagebundle_sr.properties +34 -0
  124. package/src/sap/ui/vk/i18n/messagebundle_sv.properties +34 -0
  125. package/src/sap/ui/vk/i18n/messagebundle_th.properties +34 -0
  126. package/src/sap/ui/vk/i18n/messagebundle_tr.properties +34 -0
  127. package/src/sap/ui/vk/i18n/messagebundle_uk.properties +35 -1
  128. package/src/sap/ui/vk/i18n/messagebundle_vi.properties +34 -0
  129. package/src/sap/ui/vk/i18n/messagebundle_zh_CN.properties +34 -0
  130. package/src/sap/ui/vk/i18n/messagebundle_zh_TW.properties +34 -0
  131. package/src/sap/ui/vk/library.js +6 -3
  132. package/src/sap/ui/vk/measurements/Angle.js +1 -1
  133. package/src/sap/ui/vk/measurements/Area.js +1 -1
  134. package/src/sap/ui/vk/measurements/Distance.js +1 -1
  135. package/src/sap/ui/vk/measurements/Edge.js +1 -1
  136. package/src/sap/ui/vk/measurements/Face.js +1 -1
  137. package/src/sap/ui/vk/measurements/Feature.js +1 -1
  138. package/src/sap/ui/vk/measurements/Vertex.js +1 -1
  139. package/src/sap/ui/vk/pdf/ContentManager.js +1 -1
  140. package/src/sap/ui/vk/pdf/Viewport.js +5 -8
  141. package/src/sap/ui/vk/svg/BaseNodeProxy.js +1 -1
  142. package/src/sap/ui/vk/svg/ContentDeliveryService.js +1 -1
  143. package/src/sap/ui/vk/svg/ContentManager.js +3 -1
  144. package/src/sap/ui/vk/svg/HotspotHelper.js +2 -2
  145. package/src/sap/ui/vk/svg/NodeHierarchy.js +1 -1
  146. package/src/sap/ui/vk/svg/NodeProxy.js +1 -1
  147. package/src/sap/ui/vk/svg/OrthographicCamera.js +1 -1
  148. package/src/sap/ui/vk/svg/Scene.js +1 -1
  149. package/src/sap/ui/vk/svg/SceneBuilder.js +12 -4
  150. package/src/sap/ui/vk/svg/ViewStateManager.js +2 -2
  151. package/src/sap/ui/vk/svg/Viewport.js +199 -2
  152. package/src/sap/ui/vk/themes/base/DrawerToolbar.less +8 -0
  153. package/src/sap/ui/vk/themes/base/Viewer.less +9 -12
  154. package/src/sap/ui/vk/themes/base/fonts/SAP-VE-icons-bold-v1.8.woff2 +0 -0
  155. package/src/sap/ui/vk/themes/base/fonts/SAP-VE-icons-regular-v1.8.woff2 +0 -0
  156. package/src/sap/ui/vk/themes/base/library.source.less +1 -1
  157. package/src/sap/ui/vk/themes/sap_belize_base/Viewer.less +1 -12
  158. package/src/sap/ui/vk/themes/sap_belize_base/library.source.less +1 -1
  159. package/src/sap/ui/vk/themes/sap_bluecrystal_base/Viewer.less +1 -12
  160. package/src/sap/ui/vk/themes/sap_bluecrystal_base/library.source.less +1 -1
  161. package/src/sap/ui/vk/themes/sap_hcb/base_Viewer.less +1 -12
  162. package/src/sap/ui/vk/themes/sap_hcb/library.source.less +1 -1
  163. package/src/sap/ui/vk/themes/sap_horizon/library.source.less +0 -5
  164. package/src/sap/ui/vk/themes/sap_horizon_dark/library.source.less +0 -5
  165. package/src/sap/ui/vk/themes/sap_horizon_hcb/library.source.less +0 -5
  166. package/src/sap/ui/vk/themes/sap_horizon_hcw/library.source.less +0 -5
  167. package/src/sap/ui/vk/thirdparty/pdf.worker.js +1 -1
  168. package/src/sap/ui/vk/threejs/AnimationHelper.js +1 -1
  169. package/src/sap/ui/vk/threejs/BaseNodeProxy.js +1 -1
  170. package/src/sap/ui/vk/threejs/Billboard.js +2 -2
  171. package/src/sap/ui/vk/threejs/Callout.js +11 -1
  172. package/src/sap/ui/vk/threejs/ContentDeliveryService.js +1 -1
  173. package/src/sap/ui/vk/threejs/ContentManager.js +2 -1
  174. package/src/sap/ui/vk/threejs/DetailView.js +1 -1
  175. package/src/sap/ui/vk/threejs/HighlightPlayer.js +1 -1
  176. package/src/sap/ui/vk/threejs/Material.js +2 -2
  177. package/src/sap/ui/vk/threejs/NodeHierarchy.js +1 -1
  178. package/src/sap/ui/vk/threejs/NodeProxy.js +1 -1
  179. package/src/sap/ui/vk/threejs/OrthographicCamera.js +1 -1
  180. package/src/sap/ui/vk/threejs/PerspectiveCamera.js +1 -1
  181. package/src/sap/ui/vk/threejs/PointCloudGroup.js +1 -1
  182. package/src/sap/ui/vk/threejs/Scene.js +1 -1
  183. package/src/sap/ui/vk/threejs/SceneBuilder.js +17 -1
  184. package/src/sap/ui/vk/threejs/Texture.js +2 -2
  185. package/src/sap/ui/vk/threejs/Thrustline.js +1 -1
  186. package/src/sap/ui/vk/threejs/ViewStateManager.js +2 -2
  187. package/src/sap/ui/vk/threejs/Viewport.js +9 -3
  188. package/src/sap/ui/vk/threejs/v2/ViewStateManager.js +1 -1
  189. package/src/sap/ui/vk/tools/AnchorPointTool.js +1 -1
  190. package/src/sap/ui/vk/tools/AnchorPointToolGizmo.js +1 -1
  191. package/src/sap/ui/vk/tools/AxisAngleRotationTool.js +1 -1
  192. package/src/sap/ui/vk/tools/AxisAngleRotationToolGizmo.js +1 -1
  193. package/src/sap/ui/vk/tools/CreateEllipseTool.js +1 -1
  194. package/src/sap/ui/vk/tools/CreateEllipseToolGizmo.js +1 -1
  195. package/src/sap/ui/vk/tools/CreateParametricGizmo.js +1 -1
  196. package/src/sap/ui/vk/tools/CreatePathTool.js +1 -1
  197. package/src/sap/ui/vk/tools/CreatePathToolGizmo.js +1 -1
  198. package/src/sap/ui/vk/tools/CreateRectangleTool.js +1 -1
  199. package/src/sap/ui/vk/tools/CreateRectangleToolGizmo.js +1 -1
  200. package/src/sap/ui/vk/tools/CreateTextTool.js +1 -1
  201. package/src/sap/ui/vk/tools/CreateTextToolGizmo.js +1 -1
  202. package/src/sap/ui/vk/tools/CrossSectionTool.js +1 -1
  203. package/src/sap/ui/vk/tools/CrossSectionToolGizmo.js +1 -1
  204. package/src/sap/ui/vk/tools/DuplicateSvgElementTool.js +1 -1
  205. package/src/sap/ui/vk/tools/DuplicateSvgElementToolGizmo.js +1 -1
  206. package/src/sap/ui/vk/tools/ExplodeItemGroup.js +1 -1
  207. package/src/sap/ui/vk/tools/ExplodeTool.js +1 -1
  208. package/src/sap/ui/vk/tools/ExplodeToolGizmo.js +1 -1
  209. package/src/sap/ui/vk/tools/Gizmo.js +1 -1
  210. package/src/sap/ui/vk/tools/HitTestTool.js +1 -1
  211. package/src/sap/ui/vk/tools/MoveTool.js +1 -1
  212. package/src/sap/ui/vk/tools/MoveToolGizmo.js +1 -1
  213. package/src/sap/ui/vk/tools/PointCloudSelectionTool.js +2 -2
  214. package/src/sap/ui/vk/tools/PointCloudSelectionToolGizmo.js +1 -1
  215. package/src/sap/ui/vk/tools/RectSelectTool.js +1 -1
  216. package/src/sap/ui/vk/tools/RedlineTool.js +1 -1
  217. package/src/sap/ui/vk/tools/RedlineToolGizmo.js +1 -1
  218. package/src/sap/ui/vk/tools/RotateOrbitTool.js +1 -1
  219. package/src/sap/ui/vk/tools/RotateTool.js +1 -1
  220. package/src/sap/ui/vk/tools/RotateToolGizmo.js +1 -1
  221. package/src/sap/ui/vk/tools/RotateTurntableTool.js +1 -1
  222. package/src/sap/ui/vk/tools/ScaleTool.js +1 -1
  223. package/src/sap/ui/vk/tools/ScaleToolGizmo.js +1 -1
  224. package/src/sap/ui/vk/tools/SceneOrientationTool.js +1 -1
  225. package/src/sap/ui/vk/tools/SceneOrientationToolGizmo.js +1 -1
  226. package/src/sap/ui/vk/tools/Tool.js +1 -1
  227. package/src/sap/ui/vk/tools/TooltipTool.js +1 -1
  228. package/src/sap/ui/vk/tools/TooltipToolGizmo.js +1 -1
  229. package/src/sap/ui/vk/tools/TransformSvgElementTool.js +1 -1
  230. package/src/sap/ui/vk/tools/TransformSvgElementToolGizmo.js +1 -1
  231. package/src/sap/ui/vk/totara/TotaraLoader.js +4 -0
  232. package/src/sap/ui/vk/ve/dvl.js +1 -1
  233. package/src/sap/ui/vk/ve/dvl.wasm +0 -0
  234. package/src/sap/ui/vk/ve/matai.js +1 -1
  235. package/src/sap/ui/vk/ve/matai.wasm +0 -0
  236. package/src/sap/ui/vk/ToolbarRenderer.js +0 -41
  237. package/src/sap/ui/vk/ViewerRenderer.js +0 -48
  238. package/src/sap/ui/vk/ecad/ElementsPanelRenderer.js +0 -41
  239. package/src/sap/ui/vk/ecad/LayersPanelRenderer.js +0 -41
  240. package/src/sap/ui/vk/themes/base/fonts/SAP-VE-icons-bold-v1.4.woff2 +0 -0
  241. package/src/sap/ui/vk/themes/base/fonts/SAP-VE-icons-regular-v1.4.woff2 +0 -0
@@ -66,7 +66,7 @@ sap.ui.define([
66
66
  *
67
67
  * @private
68
68
  * @author SAP SE
69
- * @version 1.136.0
69
+ * @version 1.138.0
70
70
  */
71
71
  var SceneBuilder = function(rootNode, contentResource, resolve, reject) {
72
72
  this._rootNode = rootNode;
@@ -160,6 +160,9 @@ sap.ui.define([
160
160
 
161
161
  if (vkScene) {
162
162
  this._vkScene = vkScene;
163
+ if (this._sceneMetadata) {
164
+ this._vkScene.setSceneMetadata(this._sceneMetadata);
165
+ }
163
166
  }
164
167
  return this;
165
168
  };
@@ -895,7 +898,6 @@ sap.ui.define([
895
898
  fillStyle: geometry.isPolyline ? null : { colour: material.color },
896
899
  subelement: true
897
900
  });
898
- path.uid += "-g";
899
901
  node.add(path);
900
902
 
901
903
  TotaraUtils.pushElementIntoMapArray(this._materialNodesMap, materialId, path);
@@ -981,7 +983,6 @@ sap.ui.define([
981
983
 
982
984
  this._resetCurrentScene(sceneId);
983
985
  var node = this._nodes.get(nodeId);
984
- node.uid += "-p";
985
986
 
986
987
  var shapes = parametricContent.shapes;
987
988
  if (shapes) {
@@ -1077,7 +1078,6 @@ sap.ui.define([
1077
1078
 
1078
1079
  if (shape) {
1079
1080
  shape.userData.po = parametricContent;
1080
- shape.uid += "-s";
1081
1081
  if (parametricContent.materialID) {
1082
1082
  TotaraUtils.pushElementIntoMapArray(this._materialNodesMap, parametricContent.materialID, shape);
1083
1083
  }
@@ -1395,5 +1395,13 @@ sap.ui.define([
1395
1395
  return undefined;
1396
1396
  };
1397
1397
 
1398
+ SceneBuilder.prototype.setSceneMetadata = function(metadata) {
1399
+ if (this._vkScene) {
1400
+ this._vkScene.setSceneMetadata(metadata);
1401
+ } else {
1402
+ this._sceneMetadata = metadata;
1403
+ }
1404
+ };
1405
+
1398
1406
  return SceneBuilder;
1399
1407
  });
@@ -49,7 +49,7 @@ sap.ui.define([
49
49
  * @param {object} [mSettings] Initial settings for the new ViewStateManager object.
50
50
  * @public
51
51
  * @author SAP SE
52
- * @version 1.136.0
52
+ * @version 1.138.0
53
53
  * @extends sap.ui.vk.ViewStateManagerBase
54
54
  * @alias sap.ui.vk.svg.ViewStateManager
55
55
  * @since 1.80.0
@@ -354,7 +354,7 @@ sap.ui.define([
354
354
  // Force visibility by traversing ancestor nodes and make them visible
355
355
  var node = nodeRef.parent;
356
356
  while (node) {
357
- node.visible = true;
357
+ node.setVisible(mask, true);
358
358
  node = node.parent;
359
359
  }
360
360
  }
@@ -32,6 +32,7 @@ sap.ui.define([
32
32
  "../colorToABGR",
33
33
  "../abgrToColor",
34
34
  "./MiniMap",
35
+ "./Element",
35
36
  "sap/m/Dialog",
36
37
  "sap/base/Log",
37
38
  "sap/base/i18n/Localization"
@@ -61,6 +62,7 @@ sap.ui.define([
61
62
  colorToABGR,
62
63
  abgrToColor,
63
64
  MiniMap,
65
+ ElementSVG,
64
66
  Dialog,
65
67
  Log,
66
68
  Localization
@@ -74,7 +76,7 @@ sap.ui.define([
74
76
  *
75
77
  * @public
76
78
  * @author SAP SE
77
- * @version 1.136.0
79
+ * @version 1.138.0
78
80
  * @extends sap.ui.vk.ViewportBase
79
81
  * @alias sap.ui.vk.svg.Viewport
80
82
  */
@@ -127,6 +129,13 @@ sap.ui.define([
127
129
  }
128
130
  });
129
131
 
132
+ const EcadLayerZone = {
133
+ Top: "Top",
134
+ Inner: "Inner",
135
+ Bottom: "Bottom",
136
+ Unknown: ""
137
+ };
138
+
130
139
  var basePrototype = Viewport.getMetadata().getParent().getClass().prototype;
131
140
 
132
141
  Viewport.prototype.init = function() {
@@ -216,6 +225,11 @@ sap.ui.define([
216
225
  this._currentViewIndex = 0;
217
226
  this._currentView = null;
218
227
 
228
+ this._pcbRotateAngle = 0.0; // ECAD, to rotate board
229
+ this._pcbVisibleSurface = EcadLayerZone.Unknown;
230
+ this._topElements = []; // ECAD, elements from all top layers
231
+ this._bottomElements = []; // ECAD, elements from all bottom layers
232
+
219
233
  vkCore.getEventBus().subscribe("sap.ui.vk", "viewStateApplied", this._onViewStateApplied, this);
220
234
 
221
235
  Localization.attachChange(this._onLocalizationChanged.bind(this));
@@ -375,10 +389,20 @@ sap.ui.define([
375
389
  this._currentViewIndex = 0;
376
390
  this._currentView = null;
377
391
  this._styles.clear();
392
+ this._isEcad = undefined;
378
393
 
379
394
  if (scene) {
380
395
  this.setCamera(new OrthographicCamera());
381
396
 
397
+ if (this.isECAD()) {
398
+ // get layer zone info from scene metadata
399
+ const zones = this._extractLayersZone();
400
+ // find elements belong to top & bottom layers
401
+ this._topElements = [];
402
+ this._bottomElements = [];
403
+ this._scanTree(zones, this._scene.getRootElement());
404
+ }
405
+
382
406
  /**
383
407
  * Viewport gets invalidated only when a node is created that needs content to be downloaded (in ContentLoadingFinished event handler)
384
408
  * But when creating an image out of annotation, the annotation is downloaded only the first (reused every other time)
@@ -556,10 +580,18 @@ sap.ui.define([
556
580
  }
557
581
  var node = this.hitTest(x, y, true);
558
582
 
583
+ if (this.isECAD() && node) {
584
+ const element = this._findElement(node);
585
+ if (element == null) {
586
+ return this; // nothing found, must be ECAD orphan node
587
+ }
588
+ node = element;
589
+ }
590
+
559
591
  if (!isDoubleClick) {
560
592
  this.tapObject(node);
561
593
 
562
- if (node !== null) {
594
+ if (node != null) {
563
595
  this.fireNodeClicked({ nodeRef: node, x: x, y: y }, true, true);
564
596
  }
565
597
  } else if (!this.getFreezeCamera()) {
@@ -586,8 +618,21 @@ sap.ui.define([
586
618
  var parameters = {
587
619
  picked: nodeRef ? [nodeRef] : []
588
620
  };
621
+
589
622
  this.fireNodesPicked(parameters);
590
623
 
624
+ // if ECAD scene then include all children
625
+ if (this.isECAD() && nodeRef) {
626
+ const include = (ref) => {
627
+ if (ref != null) {
628
+ parameters.picked.push(ref);
629
+ ref.children.forEach(include);
630
+ }
631
+ };
632
+ parameters.picked = [];
633
+ include(nodeRef);
634
+ }
635
+
591
636
  if (this.getSelectionMode() === SelectionMode.Exclusive) {
592
637
  this.exclusiveSelectionHandler(parameters.picked);
593
638
  } else if (this.getSelectionMode() === SelectionMode.Sticky) {
@@ -693,8 +738,26 @@ sap.ui.define([
693
738
  rect = this._camera._transformRect(rect);
694
739
  var selection = new Set();
695
740
  this._scene.getRootElement()._findRectElementsRecursive(selection, rect, vsm._mask);
741
+
742
+ if (this.isECAD() && selection.size !== 0) {
743
+ const output = new Set();
744
+ const include = (ref, output) => {
745
+ if (ref != null) {
746
+ output.add(ref);
747
+ ref.children.forEach((child) => include(child, output));
748
+ }
749
+ };
750
+ selection.forEach(ref => {
751
+ const element = this._findElement(ref);
752
+ if (element != null) {
753
+ include(element, output);
754
+ }
755
+ });
756
+ return Array.from(output);
757
+ }
696
758
  return Array.from(selection);
697
759
  }
760
+
698
761
  return [];
699
762
  };
700
763
 
@@ -756,6 +819,12 @@ sap.ui.define([
756
819
  }
757
820
  }, this);
758
821
  }
822
+ // when scene is available & content has been loaded -> proceed with initial view
823
+ if (this.isECAD()) {
824
+ this._pcbVisibleSurface = EcadLayerZone.Bottom;
825
+ // do the flip to make top layers elements visible without mirroring
826
+ this.flipPcb(true);
827
+ }
759
828
 
760
829
  if (event && (!this._camera._initialZoom || this._camera._initialZoom === -1)) {
761
830
  // this block should be called only once after loading all the content, if there is no camera information in the initial view
@@ -1685,5 +1754,133 @@ sap.ui.define([
1685
1754
  return screenPos;
1686
1755
  };
1687
1756
 
1757
+ Viewport.prototype.isECAD = function() {
1758
+ if (this._isEcad != undefined) {
1759
+ return this._isEcad; // cached value
1760
+ }
1761
+ if (this._scene) {
1762
+ const metadata = this._scene.getSceneMetadata();
1763
+ if (metadata && metadata.length !== 0) {
1764
+ const data = metadata.find((el) => el.category === "ecad" && el.tag === "version" && el.value === "8");
1765
+ return (this._isEcad = !!data);
1766
+ }
1767
+ }
1768
+ return (this._isEcad = false);
1769
+ };
1770
+
1771
+ Viewport.prototype._extractMetadata = function(metadata) {
1772
+ if (metadata.length != undefined) {
1773
+ const map = new Map();
1774
+ metadata.forEach(function(entry) {
1775
+ if (entry.category === "ecad") {
1776
+ map.set(entry.tag, entry.value);
1777
+ }
1778
+ });
1779
+ return map;
1780
+ }
1781
+ return null;
1782
+ };
1783
+
1784
+ Viewport.prototype._extractLayersZone = function() {
1785
+ const zones = new Map();
1786
+ const metadata = this._scene.getSceneMetadata();
1787
+ const layers = metadata.find((el) => el.category === "ecad" && el.tag === "Layers");
1788
+
1789
+ if (layers) {
1790
+ const list = layers.value.split("|");
1791
+ list.forEach(function(name) {
1792
+ const zone = metadata.find((el) => el.category === name && el.tag === "Zone");
1793
+ zones.set(name, zone ? zone.value : EcadLayerZone.Unknown);
1794
+ }, this);
1795
+ }
1796
+ return zones;
1797
+ };
1798
+
1799
+ Viewport.prototype._scanTree = function(zones, nodeRef) {
1800
+ const metadata = this._extractMetadata(nodeRef.userData.metadata || {});
1801
+ if (metadata) {
1802
+ const layer = metadata.get("layer");
1803
+ if (layer) {
1804
+ const zone = zones.get(layer);
1805
+ switch (zone) {
1806
+ case EcadLayerZone.Top:
1807
+ this._topElements.push(nodeRef);
1808
+ break;
1809
+ case EcadLayerZone.Bottom:
1810
+ this._bottomElements.push(nodeRef);
1811
+ break;
1812
+ default:
1813
+ break;
1814
+ }
1815
+ return; // don't go further down the hierarchy
1816
+ }
1817
+ }
1818
+ nodeRef.children.forEach(this._scanTree.bind(this, zones));
1819
+ };
1820
+
1821
+ function makeRotateMatrix(x) {
1822
+ const sin = Math.sin(x);
1823
+ const cos = Math.cos(x);
1824
+ return [cos, -sin, sin, cos, 0, 0];
1825
+ }
1826
+ Viewport.prototype._setRootTransform = function() {
1827
+ const rotate = makeRotateMatrix(this._pcbRotateAngle);
1828
+ const reflect = [this._pcbVisibleSurface === EcadLayerZone.Top ? 1 : -1, 0, 0, 1, 0, 0];
1829
+ const root = this._scene.getRootElement();
1830
+ root.setMatrix(ElementSVG._multiplyMatrices(reflect, rotate));
1831
+ };
1832
+
1833
+ Viewport.prototype._findElement = function(ref) {
1834
+ while (ref != null) {
1835
+ const metadata = this._extractMetadata(ref.userData.metadata ?? {});
1836
+
1837
+ if (metadata?.has("type")) {
1838
+ return ref;
1839
+ }
1840
+ ref = ref.parent;
1841
+ }
1842
+ return null;
1843
+ };
1844
+
1845
+ Viewport.prototype.rotatePcbCW = function() {
1846
+ if (this.isECAD()) {
1847
+ this._pcbRotateAngle -= Math.PI / 2;
1848
+ this._setRootTransform();
1849
+ this.zoomTo(ZoomTo.Visible);
1850
+ }
1851
+ };
1852
+
1853
+ Viewport.prototype.rotatePcbCCW = function() {
1854
+ if (this.isECAD()) {
1855
+ this._pcbRotateAngle += Math.PI / 2;
1856
+ this._setRootTransform();
1857
+ this.zoomTo(ZoomTo.Visible);
1858
+ }
1859
+ };
1860
+
1861
+ Viewport.prototype.flipPcb = function(skipReflect) {
1862
+ if (this.isECAD() && this._viewStateManager) {
1863
+ this._pcbVisibleSurface = (this._pcbVisibleSurface === EcadLayerZone.Top ? EcadLayerZone.Bottom : EcadLayerZone.Top);
1864
+
1865
+ if (!skipReflect) {
1866
+ this._setRootTransform();
1867
+ this.zoomTo(ZoomTo.Visible);
1868
+ }
1869
+ // hide everything first
1870
+ this._viewStateManager.setVisibilityState(this._scene.getRootElement(), false, true, true);
1871
+ // show elements from top or bottom layers
1872
+ switch (this._pcbVisibleSurface) {
1873
+ case EcadLayerZone.Top:
1874
+ this._viewStateManager.setVisibilityState(this._topElements, true, true, true);
1875
+ break;
1876
+ case EcadLayerZone.Bottom:
1877
+ this._viewStateManager.setVisibilityState(this._bottomElements, true, true, true);
1878
+ break;
1879
+ default:
1880
+ break;
1881
+ }
1882
+ }
1883
+ };
1884
+
1688
1885
  return Viewport;
1689
1886
  });
@@ -85,3 +85,11 @@
85
85
  .vboxCollapsed {
86
86
  height: 0px;
87
87
  }
88
+
89
+ .sapVizKitViewport .sapUiVkFullScreenDrawerToolbarButton .sapUiIcon::before {
90
+ content: "\e166"; // sap-icon://full-screen
91
+ }
92
+
93
+ .sapVizKitViewport:fullscreen .sapUiVkFullScreenDrawerToolbarButton .sapUiIcon::before {
94
+ content: "\e1f5"; // sap-icon://exit-full-screen
95
+ }
@@ -13,17 +13,6 @@
13
13
  visibility: hidden !important;
14
14
  }
15
15
 
16
- .sapVizKitViewerFullScreen {
17
- width: 100% !important;
18
- height: 100% !important;
19
- margin: 0 !important;
20
- padding: 0 !important;
21
- top: 0;
22
- left: 0;
23
- position: fixed !important;
24
- z-index: 10;
25
- }
26
-
27
16
  .sapVizKitViewer .sapUiVizKitLayout {
28
17
  position: absolute;
29
18
  width: 100%;
@@ -44,4 +33,12 @@
44
33
  z-index: 10;
45
34
  width: 100%;
46
35
  bottom: 0;
47
- }
36
+ }
37
+
38
+ .sapVizKitViewer .sapUiVkFullScreenToolbarButton .sapUiIcon::before {
39
+ content: "\e166"; // sap-icon://full-screen
40
+ }
41
+
42
+ .sapVizKitViewer:fullscreen .sapUiVkFullScreenToolbarButton .sapUiIcon::before {
43
+ content: "\e1f5"; // sap-icon://exit-full-screen
44
+ }
@@ -10,7 +10,7 @@
10
10
 
11
11
  @font-face {
12
12
  font-family: 'vk-icons';
13
- src: url('fonts/SAP-VE-icons-regular-v1.4.woff2') format('woff2');
13
+ src: url('fonts/SAP-VE-icons-regular-v1.8.woff2') format('woff2');
14
14
  font-weight: normal;
15
15
  font-style: normal;
16
16
  }
@@ -13,17 +13,6 @@
13
13
  visibility: hidden !important;
14
14
  }
15
15
 
16
- .sapVizKitViewerFullScreen {
17
- width: 100% !important;
18
- height: 100% !important;
19
- margin: 0 !important;
20
- padding: 0 !important;
21
- top: 0;
22
- left: 0;
23
- position: fixed !important;
24
- z-index: 10;
25
- }
26
-
27
16
  .sapVizKitViewer .sapUiVizKitLayout {
28
17
  position: absolute;
29
18
  width: 100%;
@@ -44,4 +33,4 @@
44
33
  z-index: 10;
45
34
  width: 100%;
46
35
  bottom: 0;
47
- }
36
+ }
@@ -10,7 +10,7 @@
10
10
 
11
11
  @font-face {
12
12
  font-family: 'vk-icons';
13
- src: url('../base/fonts/SAP-VE-icons-regular-v1.4.woff2') format('woff2');
13
+ src: url('../base/fonts/SAP-VE-icons-regular-v1.8.woff2') format('woff2');
14
14
  font-weight: normal;
15
15
  font-style: normal;
16
16
  }
@@ -13,17 +13,6 @@
13
13
  visibility: hidden !important;
14
14
  }
15
15
 
16
- .sapVizKitViewerFullScreen {
17
- width: 100% !important;
18
- height: 100% !important;
19
- margin: 0 !important;
20
- padding: 0 !important;
21
- top: 0;
22
- left: 0;
23
- position: fixed !important;
24
- z-index: 10;
25
- }
26
-
27
16
  .sapVizKitViewer .sapUiVizKitLayout {
28
17
  position: absolute;
29
18
  width: 100%;
@@ -44,4 +33,4 @@
44
33
  z-index: 10;
45
34
  width: 100%;
46
35
  bottom: 0;
47
- }
36
+ }
@@ -10,7 +10,7 @@
10
10
 
11
11
  @font-face {
12
12
  font-family: 'vk-icons';
13
- src: url('../base/fonts/SAP-VE-icons-regular-v1.4.woff2') format('woff2');
13
+ src: url('../base/fonts/SAP-VE-icons-regular-v1.8.woff2') format('woff2');
14
14
  font-weight: normal;
15
15
  font-style: normal;
16
16
  }
@@ -13,17 +13,6 @@
13
13
  visibility: hidden !important;
14
14
  }
15
15
 
16
- .sapVizKitViewerFullScreen {
17
- width: 100% !important;
18
- height: 100% !important;
19
- margin: 0 !important;
20
- padding: 0 !important;
21
- top: 0;
22
- left: 0;
23
- position: fixed !important;
24
- z-index: 10;
25
- }
26
-
27
16
  .sapVizKitViewer .sapUiVizKitLayout {
28
17
  position: absolute;
29
18
  width: 100%;
@@ -44,4 +33,4 @@
44
33
  z-index: 10;
45
34
  width: 100%;
46
35
  bottom: 0;
47
- }
36
+ }
@@ -18,7 +18,7 @@
18
18
 
19
19
  @font-face {
20
20
  font-family: 'vk-icons';
21
- src: url('../base/fonts/SAP-VE-icons-regular-v1.4.woff2') format('woff2');
21
+ src: url('../base/fonts/SAP-VE-icons-regular-v1.8.woff2') format('woff2');
22
22
  font-weight: normal;
23
23
  font-style: normal;
24
24
  }
@@ -8,8 +8,3 @@
8
8
  @import "../base/library.source.less";
9
9
  @import "../../../../../sap/ui/core/themes/sap_horizon/base.less";
10
10
  @import "../../../../../sap/ui/core/themes/sap_horizon/global.less";
11
-
12
- @font-face {
13
- font-family: 'vk-icons';
14
- src: url('../base/fonts/SAP-VE-icons-bold-v1.4.woff2') format('woff2');
15
- }
@@ -8,8 +8,3 @@
8
8
  @import "../base/library.source.less";
9
9
  @import "../../../../../sap/ui/core/themes/sap_horizon_dark/base.less";
10
10
  @import "../../../../../sap/ui/core/themes/sap_horizon_dark/global.less";
11
-
12
- @font-face {
13
- font-family: 'vk-icons';
14
- src: url('../base/fonts/SAP-VE-icons-bold-v1.4.woff2') format('woff2');
15
- }
@@ -8,8 +8,3 @@
8
8
  @import "../base/library.source.less";
9
9
  @import "../../../../../sap/ui/core/themes/sap_horizon_hcb/base.less";
10
10
  @import "../../../../../sap/ui/core/themes/sap_horizon_hcb/global.less";
11
-
12
- @font-face {
13
- font-family: 'vk-icons';
14
- src: url('../base/fonts/SAP-VE-icons-bold-v1.4.woff2') format('woff2');
15
- }
@@ -8,8 +8,3 @@
8
8
  @import "../base/library.source.less";
9
9
  @import "../../../../../sap/ui/core/themes/sap_horizon_hcw/base.less";
10
10
  @import "../../../../../sap/ui/core/themes/sap_horizon_hcw/global.less";
11
-
12
- @font-face {
13
- font-family: 'vk-icons';
14
- src: url('../base/fonts/SAP-VE-icons-bold-v1.4.woff2') format('woff2');
15
- }
@@ -54306,7 +54306,7 @@ class PDFDocument {
54306
54306
  if (PDF_VERSION_REGEXP.test(version)) {
54307
54307
  this._version = version;
54308
54308
  } else {
54309
- warn(`Invalid PDF header version: 1.136.0`);
54309
+ warn(`Invalid PDF header version: 1.138.0`);
54310
54310
  }
54311
54311
  }
54312
54312
  parseStartXRef() {
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  *
36
36
  * @private
37
37
  * @author SAP SE
38
- * @version 1.136.0
38
+ * @version 1.138.0
39
39
  */
40
40
  var AnimationHelper = function() {
41
41
  };
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  *
36
36
  * @public
37
37
  * @author SAP SE
38
- * @version 1.136.0
38
+ * @version 1.138.0
39
39
  * @extends sap.ui.vk.BaseNodeProxy
40
40
  * @implements sap.ui.base.Poolable
41
41
  * @alias sap.ui.vk.threejs.BaseNodeProxy
@@ -39,7 +39,7 @@ sap.ui.define([
39
39
  *
40
40
  * @private
41
41
  * @author SAP SE
42
- * @version 1.136.0
42
+ * @version 1.138.0
43
43
  * @extends sap.ui.base.ManagedObject
44
44
  * @alias sap.ui.vk.threejs.Billboard
45
45
  */
@@ -153,7 +153,7 @@ sap.ui.define([
153
153
  BaseObject.prototype.init.call(this);
154
154
  }
155
155
 
156
- var material = new THREE.MeshPhongMaterial({
156
+ var material = new THREE.MeshBasicMaterial({
157
157
  depthTest: false,
158
158
  depthWrite: false,
159
159
  transparent: true,
@@ -39,7 +39,7 @@ sap.ui.define([
39
39
  *
40
40
  * @private
41
41
  * @author SAP SE
42
- * @version 1.136.0
42
+ * @version 1.138.0
43
43
  * @extends sap.ui.vk.threejs.Billboard
44
44
  * @alias sap.ui.vk.threejs.Callout
45
45
  */
@@ -152,6 +152,16 @@ sap.ui.define([
152
152
 
153
153
  // set billboard scale
154
154
  var scale = pos4.w * 2 / (viewportSize.x * camera.projectionMatrix.elements[0]);
155
+ const outputSettings = renderer.userData?.outputSettings;
156
+ if (outputSettings) {
157
+ const outputDPI = 72; // ignore outputSettings.dpi as VEA ignores DPI setting and always uses 72 DPI
158
+ const mmToInch = 1 / 25.4; // 1 inch = 25.4 mm
159
+ const pointToPixel = 4 / 3; // 1 inch = 72 points(common for older screens) = 96 pixels(standard web displays), so 1 point = 96 / 72 pixels = 4 / 3 pixels
160
+ const mmToPixels = mmToInch * outputDPI * pointToPixel; // convert mm to pixels (mm -> inches -> points -> pixels)
161
+ const outputWidth = outputSettings.width * mmToPixels;
162
+ const outputHeight = outputSettings.height * mmToPixels;
163
+ scale *= Math.min(viewportSize.x / outputWidth, viewportSize.y / outputHeight);
164
+ }
155
165
  this._billboard.scale.set(scale * this._width, scale * this._height, 1);
156
166
 
157
167
  // add per pixel alignment to the billboard
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @class Provides a class to communicate with content delivery service.
34
34
  * @private
35
35
  * @author SAP SE
36
- * @version 1.136.0
36
+ * @version 1.138.0
37
37
  * @extends sap.ui.base.ManagedObject
38
38
  * @alias sap.ui.vk.threejs.ContentDeliveryService
39
39
  */
@@ -112,7 +112,7 @@ sap.ui.define([
112
112
  * @param {object} [mSettings] Initial settings for the new ContentManager object.
113
113
  * @protected
114
114
  * @author SAP SE
115
- * @version 1.136.0
115
+ * @version 1.138.0
116
116
  * @extends sap.ui.vk.ContentManager
117
117
  * @alias sap.ui.vk.threejs.ContentManager
118
118
  * @since 1.50.0
@@ -305,6 +305,7 @@ sap.ui.define([
305
305
  scene.backgroundBottomColor = value.backgroundBottomColor; // hex color or undefined
306
306
  scene.renderMode = value.renderMode; // sap.ui.vk.RenderMode or undefined
307
307
  scene.upAxis = value.upAxis; // (0 = +X, 1 = -X, 2 = +Y, 3 = -Y, 4 = +Z, 5 = -Z)
308
+ scene.outputSettings = value.outputSettings;
308
309
  }
309
310
  }
310
311
 
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  *
34
34
  * @private
35
35
  * @author SAP SE
36
- * @version 1.136.0
36
+ * @version 1.138.0
37
37
  * @extends sap.ui.base.ManagedObject
38
38
  * @alias sap.ui.vk.threejs.DetailView
39
39
  */
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  *
25
25
  * @private
26
26
  * @author SAP SE
27
- * @version 1.136.0
27
+ * @version 1.138.0
28
28
  * @extends sap.ui.base.Object
29
29
  * @alias sap.ui.vk.threejs.HighlightPlayer
30
30
  */