@sapui5/sap.ui.vk 1.136.1 → 1.139.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 (242) hide show
  1. package/package.json +1 -1
  2. package/src/sap/ui/vk/.library +9 -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 +19 -15
  12. package/src/sap/ui/vk/ContentManager.js +1 -1
  13. package/src/sap/ui/vk/ContentResource.js +3 -2
  14. package/src/sap/ui/vk/ContentType.js +1 -1
  15. package/src/sap/ui/vk/Core.js +1 -3
  16. package/src/sap/ui/vk/DownloadManager.js +1 -1
  17. package/src/sap/ui/vk/DrawerToolbar.js +152 -19
  18. package/src/sap/ui/vk/DrawerToolbarButton.js +12 -1
  19. package/src/sap/ui/vk/DvlException.js +1 -1
  20. package/src/sap/ui/vk/FlexibleControl.js +1 -2
  21. package/src/sap/ui/vk/FlexibleControlLayoutData.js +1 -2
  22. package/src/sap/ui/vk/Highlight.js +1 -1
  23. package/src/sap/ui/vk/ImageContentManager.js +1 -1
  24. package/src/sap/ui/vk/JointUtils.js +1 -1
  25. package/src/sap/ui/vk/LayerProxy.js +1 -1
  26. package/src/sap/ui/vk/LegendItem.js +1 -1
  27. package/src/sap/ui/vk/ListPanel.js +1 -1
  28. package/src/sap/ui/vk/ListPanelStack.js +1 -1
  29. package/src/sap/ui/vk/Loco.js +1 -1
  30. package/src/sap/ui/vk/Material.js +1 -1
  31. package/src/sap/ui/vk/NativeViewport.js +1 -1
  32. package/src/sap/ui/vk/NodeHierarchy.js +1 -1
  33. package/src/sap/ui/vk/NodeProxy.js +1 -1
  34. package/src/sap/ui/vk/NodeUtils.js +1 -1
  35. package/src/sap/ui/vk/Notifications.js +1 -1
  36. package/src/sap/ui/vk/OrthographicCamera.js +1 -1
  37. package/src/sap/ui/vk/OutputSettings.js +0 -1
  38. package/src/sap/ui/vk/Overlay.js +1 -1
  39. package/src/sap/ui/vk/PerspectiveCamera.js +1 -1
  40. package/src/sap/ui/vk/ProgressIndicator.js +1 -1
  41. package/src/sap/ui/vk/RedlineCollaboration.js +1 -1
  42. package/src/sap/ui/vk/RedlineConversation.js +1 -1
  43. package/src/sap/ui/vk/RedlineDesign.js +1 -1
  44. package/src/sap/ui/vk/RedlineElement.js +1 -1
  45. package/src/sap/ui/vk/RedlineElementComment.js +1 -1
  46. package/src/sap/ui/vk/RedlineElementEllipse.js +1 -1
  47. package/src/sap/ui/vk/RedlineElementFreehand.js +1 -1
  48. package/src/sap/ui/vk/RedlineElementLine.js +1 -1
  49. package/src/sap/ui/vk/RedlineElementRectangle.js +1 -1
  50. package/src/sap/ui/vk/RedlineElementText.js +1 -1
  51. package/src/sap/ui/vk/RedlineSurface.js +2 -2
  52. package/src/sap/ui/vk/SafeArea.js +1 -1
  53. package/src/sap/ui/vk/Scene.js +16 -1
  54. package/src/sap/ui/vk/SceneTree.js +23 -9
  55. package/src/sap/ui/vk/StepNavigation.js +1 -2
  56. package/src/sap/ui/vk/Texture.js +2 -2
  57. package/src/sap/ui/vk/ToggleMenuButton.js +1 -1
  58. package/src/sap/ui/vk/ToggleMenuItem.js +7 -4
  59. package/src/sap/ui/vk/ToggleMenuItemRenderer.js +224 -0
  60. package/src/sap/ui/vk/Toolbar.js +62 -100
  61. package/src/sap/ui/vk/View.js +7 -13
  62. package/src/sap/ui/vk/ViewGallery.js +2 -2
  63. package/src/sap/ui/vk/ViewGalleryThumbnail.js +1 -1
  64. package/src/sap/ui/vk/ViewGroup.js +1 -1
  65. package/src/sap/ui/vk/ViewManager.js +1 -1
  66. package/src/sap/ui/vk/ViewStateManager.js +4 -11
  67. package/src/sap/ui/vk/ViewStateManagerBase.js +4 -4
  68. package/src/sap/ui/vk/Viewer.js +408 -234
  69. package/src/sap/ui/vk/Viewport.js +2 -2
  70. package/src/sap/ui/vk/ViewportBase.js +24 -70
  71. package/src/sap/ui/vk/dvl/BaseNodeProxy.js +1 -1
  72. package/src/sap/ui/vk/dvl/ContentManager.js +1 -1
  73. package/src/sap/ui/vk/dvl/GraphicsCore.js +1 -1
  74. package/src/sap/ui/vk/dvl/LayerProxy.js +1 -1
  75. package/src/sap/ui/vk/dvl/NodeHierarchy.js +1 -1
  76. package/src/sap/ui/vk/dvl/NodeProxy.js +1 -1
  77. package/src/sap/ui/vk/dvl/Scene.js +1 -1
  78. package/src/sap/ui/vk/dvl/ViewStateManager.js +1 -1
  79. package/src/sap/ui/vk/dvl/Viewport.js +1 -1
  80. package/src/sap/ui/vk/ecad/ElementsPanel.js +627 -132
  81. package/src/sap/ui/vk/ecad/LayersPanel.js +247 -131
  82. package/src/sap/ui/vk/i18n/messagebundle.properties +70 -38
  83. package/src/sap/ui/vk/i18n/messagebundle_ar.properties +30 -12
  84. package/src/sap/ui/vk/i18n/messagebundle_bg.properties +30 -12
  85. package/src/sap/ui/vk/i18n/messagebundle_ca.properties +30 -12
  86. package/src/sap/ui/vk/i18n/messagebundle_cnr.properties +30 -12
  87. package/src/sap/ui/vk/i18n/messagebundle_cs.properties +30 -12
  88. package/src/sap/ui/vk/i18n/messagebundle_cy.properties +30 -12
  89. package/src/sap/ui/vk/i18n/messagebundle_da.properties +30 -12
  90. package/src/sap/ui/vk/i18n/messagebundle_de.properties +30 -12
  91. package/src/sap/ui/vk/i18n/messagebundle_el.properties +30 -12
  92. package/src/sap/ui/vk/i18n/messagebundle_en.properties +30 -12
  93. package/src/sap/ui/vk/i18n/messagebundle_en_GB.properties +30 -12
  94. package/src/sap/ui/vk/i18n/messagebundle_en_US_saprigi.properties +31 -12
  95. package/src/sap/ui/vk/i18n/messagebundle_es.properties +30 -12
  96. package/src/sap/ui/vk/i18n/messagebundle_es_MX.properties +30 -12
  97. package/src/sap/ui/vk/i18n/messagebundle_et.properties +30 -12
  98. package/src/sap/ui/vk/i18n/messagebundle_fi.properties +30 -12
  99. package/src/sap/ui/vk/i18n/messagebundle_fr.properties +30 -12
  100. package/src/sap/ui/vk/i18n/messagebundle_fr_CA.properties +30 -12
  101. package/src/sap/ui/vk/i18n/messagebundle_hi.properties +30 -12
  102. package/src/sap/ui/vk/i18n/messagebundle_hr.properties +30 -12
  103. package/src/sap/ui/vk/i18n/messagebundle_hu.properties +30 -12
  104. package/src/sap/ui/vk/i18n/messagebundle_id.properties +30 -12
  105. package/src/sap/ui/vk/i18n/messagebundle_it.properties +30 -12
  106. package/src/sap/ui/vk/i18n/messagebundle_iw.properties +30 -12
  107. package/src/sap/ui/vk/i18n/messagebundle_ja.properties +30 -12
  108. package/src/sap/ui/vk/i18n/messagebundle_kk.properties +30 -12
  109. package/src/sap/ui/vk/i18n/messagebundle_ko.properties +27 -9
  110. package/src/sap/ui/vk/i18n/messagebundle_lt.properties +30 -12
  111. package/src/sap/ui/vk/i18n/messagebundle_lv.properties +30 -12
  112. package/src/sap/ui/vk/i18n/messagebundle_mk.properties +30 -12
  113. package/src/sap/ui/vk/i18n/messagebundle_ms.properties +30 -12
  114. package/src/sap/ui/vk/i18n/messagebundle_nl.properties +30 -12
  115. package/src/sap/ui/vk/i18n/messagebundle_no.properties +30 -12
  116. package/src/sap/ui/vk/i18n/messagebundle_pl.properties +30 -12
  117. package/src/sap/ui/vk/i18n/messagebundle_pt.properties +30 -12
  118. package/src/sap/ui/vk/i18n/messagebundle_pt_PT.properties +30 -12
  119. package/src/sap/ui/vk/i18n/messagebundle_ro.properties +30 -12
  120. package/src/sap/ui/vk/i18n/messagebundle_ru.properties +30 -12
  121. package/src/sap/ui/vk/i18n/messagebundle_sh.properties +30 -12
  122. package/src/sap/ui/vk/i18n/messagebundle_sk.properties +30 -12
  123. package/src/sap/ui/vk/i18n/messagebundle_sl.properties +30 -12
  124. package/src/sap/ui/vk/i18n/messagebundle_sr.properties +30 -12
  125. package/src/sap/ui/vk/i18n/messagebundle_sv.properties +30 -12
  126. package/src/sap/ui/vk/i18n/messagebundle_th.properties +30 -12
  127. package/src/sap/ui/vk/i18n/messagebundle_tr.properties +30 -12
  128. package/src/sap/ui/vk/i18n/messagebundle_uk.properties +30 -12
  129. package/src/sap/ui/vk/i18n/messagebundle_vi.properties +30 -12
  130. package/src/sap/ui/vk/i18n/messagebundle_zh_CN.properties +30 -12
  131. package/src/sap/ui/vk/i18n/messagebundle_zh_TW.properties +30 -12
  132. package/src/sap/ui/vk/library.js +7 -4
  133. package/src/sap/ui/vk/measurements/Angle.js +1 -1
  134. package/src/sap/ui/vk/measurements/Area.js +1 -1
  135. package/src/sap/ui/vk/measurements/Distance.js +1 -1
  136. package/src/sap/ui/vk/measurements/Edge.js +1 -1
  137. package/src/sap/ui/vk/measurements/Face.js +1 -1
  138. package/src/sap/ui/vk/measurements/Feature.js +1 -1
  139. package/src/sap/ui/vk/measurements/Vertex.js +1 -1
  140. package/src/sap/ui/vk/pdf/ContentManager.js +1 -1
  141. package/src/sap/ui/vk/pdf/Page.js +9 -10
  142. package/src/sap/ui/vk/pdf/Utils.js +4 -2
  143. package/src/sap/ui/vk/pdf/Viewport.js +5 -8
  144. package/src/sap/ui/vk/svg/BaseNodeProxy.js +1 -1
  145. package/src/sap/ui/vk/svg/ContentDeliveryService.js +1 -1
  146. package/src/sap/ui/vk/svg/ContentManager.js +2 -1
  147. package/src/sap/ui/vk/svg/HotspotHelper.js +2 -2
  148. package/src/sap/ui/vk/svg/NodeHierarchy.js +1 -1
  149. package/src/sap/ui/vk/svg/NodeProxy.js +1 -1
  150. package/src/sap/ui/vk/svg/OrthographicCamera.js +1 -1
  151. package/src/sap/ui/vk/svg/Scene.js +1 -1
  152. package/src/sap/ui/vk/svg/SceneBuilder.js +12 -4
  153. package/src/sap/ui/vk/svg/ViewStateManager.js +2 -2
  154. package/src/sap/ui/vk/svg/Viewport.js +192 -2
  155. package/src/sap/ui/vk/themes/base/fonts/SAP-VE-icons-bold-v1.8.woff2 +0 -0
  156. package/src/sap/ui/vk/themes/base/fonts/SAP-VE-icons-regular-v1.8.woff2 +0 -0
  157. package/src/sap/ui/vk/themes/base/library.source.less +1 -1
  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/library.source.less +1 -1
  160. package/src/sap/ui/vk/themes/sap_hcb/library.source.less +1 -1
  161. package/src/sap/ui/vk/themes/sap_horizon/library.source.less +0 -5
  162. package/src/sap/ui/vk/themes/sap_horizon_dark/library.source.less +0 -5
  163. package/src/sap/ui/vk/themes/sap_horizon_hcb/library.source.less +0 -5
  164. package/src/sap/ui/vk/themes/sap_horizon_hcw/library.source.less +0 -5
  165. package/src/sap/ui/vk/thirdparty/pdf.worker.js +1 -1
  166. package/src/sap/ui/vk/threejs/AnimationHelper.js +1 -1
  167. package/src/sap/ui/vk/threejs/BaseNodeProxy.js +1 -1
  168. package/src/sap/ui/vk/threejs/Billboard.js +23 -11
  169. package/src/sap/ui/vk/threejs/Callout.js +11 -1
  170. package/src/sap/ui/vk/threejs/ContentDeliveryService.js +1 -1
  171. package/src/sap/ui/vk/threejs/ContentManager.js +3 -2
  172. package/src/sap/ui/vk/threejs/DetailView.js +1 -1
  173. package/src/sap/ui/vk/threejs/HighlightPlayer.js +14 -22
  174. package/src/sap/ui/vk/threejs/Material.js +2 -2
  175. package/src/sap/ui/vk/threejs/NodeHierarchy.js +1 -1
  176. package/src/sap/ui/vk/threejs/NodeProxy.js +9 -11
  177. package/src/sap/ui/vk/threejs/OrthographicCamera.js +1 -1
  178. package/src/sap/ui/vk/threejs/OutlineRenderer.js +4 -10
  179. package/src/sap/ui/vk/threejs/PerspectiveCamera.js +1 -1
  180. package/src/sap/ui/vk/threejs/PointCloudGroup.js +1 -1
  181. package/src/sap/ui/vk/threejs/Scene.js +1 -15
  182. package/src/sap/ui/vk/threejs/SceneBuilder.js +17 -4
  183. package/src/sap/ui/vk/threejs/Texture.js +2 -2
  184. package/src/sap/ui/vk/threejs/ThreeExtensions.js +10 -174
  185. package/src/sap/ui/vk/threejs/ThreeUtils.js +7 -18
  186. package/src/sap/ui/vk/threejs/Thrustline.js +1 -1
  187. package/src/sap/ui/vk/threejs/ViewStateManager.js +752 -447
  188. package/src/sap/ui/vk/threejs/Viewport.js +43 -33
  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/TooltipToolHandler.js +5 -0
  230. package/src/sap/ui/vk/tools/TransformSvgElementTool.js +1 -1
  231. package/src/sap/ui/vk/tools/TransformSvgElementToolGizmo.js +1 -1
  232. package/src/sap/ui/vk/totara/TotaraLoader.js +5 -1
  233. package/src/sap/ui/vk/ve/matai.js +1 -1
  234. package/src/sap/ui/vk/ve/matai.wasm +0 -0
  235. package/ui5.yaml +5 -3
  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
  242. package/src/sap/ui/vk/threejs/v2/ViewStateManager.js +0 -1445
@@ -9,6 +9,7 @@
9
9
  sap.ui.define([
10
10
  "../Core",
11
11
  "../ViewportBase",
12
+ "../abgrToColor",
12
13
  "sap/ui/core/Element",
13
14
  "sap/ui/core/ResizeHandler",
14
15
  "sap/ui/events/KeyCodes",
@@ -18,6 +19,7 @@ sap.ui.define([
18
19
  "./ViewportGestureHandler",
19
20
  "./OrthographicCamera",
20
21
  "./PerspectiveCamera",
22
+ "./OutlineRenderer",
21
23
  "../Messages",
22
24
  "sap/ui/base/ManagedObjectObserver",
23
25
  "../CameraProjectionType",
@@ -37,6 +39,7 @@ sap.ui.define([
37
39
  "../Annotation",
38
40
  "../measurements/Surface",
39
41
  "../NodeContentType",
42
+ "../SelectionDisplayMode",
40
43
  "sap/base/assert",
41
44
  "sap/base/Log",
42
45
  "../findIndexInArray",
@@ -44,6 +47,7 @@ sap.ui.define([
44
47
  ], function(
45
48
  vkCore,
46
49
  ViewportBase,
50
+ abgrToColor,
47
51
  Element,
48
52
  ResizeHandler,
49
53
  KeyCodes,
@@ -53,6 +57,7 @@ sap.ui.define([
53
57
  ViewportGestureHandler,
54
58
  OrthographicCamera,
55
59
  PerspectiveCamera,
60
+ OutlineRenderer,
56
61
  Messages,
57
62
  ManagedObjectObserver,
58
63
  CameraProjectionType,
@@ -72,6 +77,7 @@ sap.ui.define([
72
77
  Annotation,
73
78
  MeasurementSurface,
74
79
  NodeContentType,
80
+ SelectionDisplayMode,
75
81
  assert,
76
82
  Log,
77
83
  findIndexInArray,
@@ -88,7 +94,7 @@ sap.ui.define([
88
94
  *
89
95
  * @public
90
96
  * @author SAP SE
91
- * @version 1.136.1
97
+ * @version 1.139.0
92
98
  * @extends sap.ui.vk.ViewportBase
93
99
  * @alias sap.ui.vk.threejs.Viewport
94
100
  */
@@ -219,6 +225,8 @@ sap.ui.define([
219
225
  this._underlayGroup = new THREE.Group();
220
226
  this._overlayGroup = new THREE.Group();
221
227
 
228
+ this._outlineRenderer = new OutlineRenderer(1.0);
229
+
222
230
  this._showPMI = true;
223
231
 
224
232
  this._xrayColor1 = new THREE.Vector4(0, 0.75, 1, 0.45);
@@ -320,6 +328,9 @@ sap.ui.define([
320
328
  this._setContent(null);
321
329
  this.setCamera(null);
322
330
 
331
+ this._outlineRenderer?.dispose();
332
+ this._outlineRenderer = null;
333
+
323
334
  this._backgroundCamera = null;
324
335
  this._backgroundMaterial = null;
325
336
  this._backgroundScene = null;
@@ -774,18 +785,14 @@ sap.ui.define([
774
785
  }
775
786
 
776
787
  var vsm = this._getViewStateManagerThreeJS();
777
- if (vsm && vsm.applyNodeStates) {
778
- vsm.applyNodeStates();
779
- }
788
+ vsm?.applyNodeStates?.();
780
789
 
781
790
  try {
782
791
  var canvas = this._canvas;
783
792
  return this._hitTester.hitTest(x - canvas.clientLeft, y - canvas.clientTop, canvas.clientWidth, canvas.clientHeight,
784
793
  this._renderer, nativeScene, nativeCamera, this._clippingPlanes, options);
785
794
  } finally {
786
- if (vsm && vsm.revertNodeStates) {
787
- vsm.revertNodeStates();
788
- }
795
+ vsm?.revertNodeStates?.();
789
796
  }
790
797
  };
791
798
 
@@ -1071,17 +1078,19 @@ sap.ui.define([
1071
1078
  }
1072
1079
  };
1073
1080
 
1074
- function _updateDynamicObjects(renderer, camera, scene, viewport) {
1081
+ function _updateDynamicObjects(renderer, camera, scene, viewport, vsm) {
1075
1082
  var viewportSize = new THREE.Vector2(viewport._width, viewport._height);
1076
1083
  var backgroundProjection = viewport.getBackgroundProjection();
1077
1084
  let somethingWasChanged = false;
1085
+ renderer.userData ??= {};
1086
+ renderer.userData.outputSettings = viewport._outputSettings;
1078
1087
 
1079
1088
  // update billboards, callouts, lock to viewport nodes, etc
1080
1089
  scene.children.forEach(function(root) {
1081
1090
  if (root.userData._vkDynamicObjects) {
1082
1091
  root.userData._vkDynamicObjects.forEach(function(object) {
1083
1092
  if (object.parent) {
1084
- object._vkUpdate(renderer, camera, viewportSize, backgroundProjection);
1093
+ object._vkUpdate(renderer, camera, viewportSize, backgroundProjection, vsm);
1085
1094
  somethingWasChanged = true;
1086
1095
  }
1087
1096
  });
@@ -1196,9 +1205,7 @@ sap.ui.define([
1196
1205
  var timerStart = performance.now();
1197
1206
  var vsm = this._getViewStateManagerThreeJS();
1198
1207
 
1199
- if (vsm && vsm.applyNodeStates) {
1200
- vsm.applyNodeStates();
1201
- }
1208
+ vsm?.applyNodeStates?.(this.getSelectionDisplayMode() === SelectionDisplayMode.Outline);
1202
1209
 
1203
1210
  try {
1204
1211
  renderer.setViewport(0, 0, this._canvas.width / window.devicePixelRatio, this._canvas.height / window.devicePixelRatio);
@@ -1271,7 +1278,7 @@ sap.ui.define([
1271
1278
  var tools = this.getTools();
1272
1279
  var i, tool, gizmo, boundingBox;
1273
1280
 
1274
- const someObjectsWereUpdated = _updateDynamicObjects(renderer, nativeCamera, nativeScene, this);
1281
+ const someObjectsWereUpdated = _updateDynamicObjects(renderer, nativeCamera, nativeScene, this, vsm);
1275
1282
  const mustUpdateDynamicObjectsAgain = someObjectsWereUpdated && (nativeCamera.near <= 0 || nativeCamera.far <= 0);
1276
1283
 
1277
1284
  // todo: we need to _updateBoundingBoxes() only if some dynamic objects are currently selected
@@ -1320,7 +1327,7 @@ sap.ui.define([
1320
1327
  // Usually it is fine to use Z near/far computed in previous frame, but it would not work
1321
1328
  // if Z near and far equal to -1.0 default values for "auto evaluate", so we must
1322
1329
  // update dynamic objects twice in such case (it happens on view activation only).
1323
- _updateDynamicObjects(renderer, nativeCamera, nativeScene, this);
1330
+ _updateDynamicObjects(renderer, nativeCamera, nativeScene, this, vsm);
1324
1331
  }
1325
1332
 
1326
1333
  // check scene dimension and distance from camera
@@ -1433,8 +1440,12 @@ sap.ui.define([
1433
1440
 
1434
1441
  _renderDetailViews(renderer, nativeCamera, nativeScene, boundingBox, this._cameraLight);
1435
1442
 
1436
- if (vsm) {
1437
- vsm._renderOutline(renderer, nativeScene, nativeCamera);
1443
+ if (vsm?._outlinedNodes.size > 0) {
1444
+ this._renderOutline(nativeScene, nativeCamera, Array.from(vsm._outlinedNodes), vsm._outlineColorABGR, vsm);
1445
+ }
1446
+
1447
+ if (this.getSelectionDisplayMode() === SelectionDisplayMode.Outline && vsm?._selectedNodes.size > 0) {
1448
+ this._renderOutline(nativeScene, nativeCamera, Array.from(vsm._selectedNodes), vsm._highlightColorABGR, vsm);
1438
1449
  }
1439
1450
 
1440
1451
  for (i = 0; i < tools.length; i++) { // loop over all oTools
@@ -1486,14 +1497,18 @@ sap.ui.define([
1486
1497
  + tail
1487
1498
  );
1488
1499
  } finally {
1489
- if (vsm && vsm.revertNodeStates) {
1490
- vsm.revertNodeStates();
1491
- }
1500
+ vsm?.revertNodeStates?.();
1492
1501
  }
1493
1502
 
1494
1503
  this.fireFrameRenderingFinished();
1495
1504
  };
1496
1505
 
1506
+ Viewport.prototype._renderOutline = function(scene, camera, nodes, colorABGR, vsm) {
1507
+ const c = abgrToColor(colorABGR);
1508
+ const color = new THREE.Color(c.red / 255.0, c.green / 255.0, c.blue / 255.0);
1509
+ this._outlineRenderer.render(this._renderer, scene, camera, nodes, color, vsm.getOutlineWidth(), vsm._jointCollection);
1510
+ };
1511
+
1497
1512
  /**
1498
1513
  * Returns viewport content as an image of desired size.
1499
1514
  *
@@ -1684,7 +1699,7 @@ sap.ui.define([
1684
1699
  * @param {float} margin The object margin
1685
1700
  * @returns {string} Base64 encoded PNG image
1686
1701
  * @public
1687
- * @experimental Since 1.82.0 This method is experimental and might be modified or removed in future versions
1702
+ * @since 1.82.0
1688
1703
  */
1689
1704
  Viewport.prototype.getObjectImage = function(nodeRef, width, height, topColor, bottomColor, quaternion, margin) {
1690
1705
  return this.getObjectImageEx(nodeRef, width, height, topColor, bottomColor, {
@@ -1712,7 +1727,7 @@ sap.ui.define([
1712
1727
  * @param {boolean} [options.includeUnderlay=false] If set to <code>true</code> then underlay nodes will be rendered
1713
1728
  * @returns {string} Base64 encoded image
1714
1729
  * @public
1715
- * @experimental Since 1.102.0 This method is experimental and might be modified or removed in future versions
1730
+ * @since 1.102.0
1716
1731
  */
1717
1732
  Viewport.prototype.getObjectImageEx = function(nodeRefs, width, height, topColor, bottomColor, options) {
1718
1733
  var nativeScene = this._getNativeScene();
@@ -1750,9 +1765,7 @@ sap.ui.define([
1750
1765
  document.body.appendChild(renderer.domElement);
1751
1766
 
1752
1767
  var vsm = this._getViewStateManagerThreeJS();
1753
- if (vsm && vsm.applyNodeStates) {
1754
- vsm.applyNodeStates();
1755
- }
1768
+ vsm?.applyNodeStates?.();
1756
1769
 
1757
1770
  try {
1758
1771
  if (nodeRefs == null) {
@@ -1785,13 +1798,8 @@ sap.ui.define([
1785
1798
  var hiddenNodes = [];
1786
1799
  nodeRefs.forEach(function(nodeRef) {
1787
1800
  nodeRef.traverseVisible(function(node) {
1788
- if (node._vkUpdate) {
1789
- node._vkUpdate(renderer, cameraRef, viewportSize);
1801
+ node._vkUpdate?.(renderer, cameraRef, viewportSize, null, vsm);
1790
1802
 
1791
- if (node._vkGetNodeContentType() === NodeContentType.Symbol) {// reset symbol opacity
1792
- node._vkSetOpacity(1);
1793
- }
1794
- }
1795
1803
  if ((!options.includeOverlay && node.userData.renderStage > 0) ||
1796
1804
  (!options.includeUnderlay && node.userData.renderStage < 0)) {
1797
1805
  // hide overlay/underlay node
@@ -1850,9 +1858,7 @@ sap.ui.define([
1850
1858
  scene.remove(lightNode);
1851
1859
  scene.children = [];
1852
1860
  } finally {
1853
- if (vsm && vsm.revertNodeStates) {
1854
- vsm.revertNodeStates();
1855
- }
1861
+ vsm?.revertNodeStates?.();
1856
1862
  }
1857
1863
 
1858
1864
  var imageData = renderer.getContext().canvas.toDataURL(options.type, options.encoderOptions);
@@ -1959,6 +1965,8 @@ sap.ui.define([
1959
1965
  if (content.renderMode !== undefined) { // sap.ui.vk.RenderMode
1960
1966
  this.setRenderMode(content.renderMode);
1961
1967
  }
1968
+
1969
+ this._outputSettings = content.outputSettings;
1962
1970
  }
1963
1971
 
1964
1972
  if (this._measurementSurface != null) {
@@ -2062,6 +2070,8 @@ sap.ui.define([
2062
2070
  this.setRenderMode(view.renderMode);
2063
2071
  }
2064
2072
 
2073
+ this._outputSettings = view.outputSettings;
2074
+
2065
2075
  var camera = view.getCamera();
2066
2076
  var vsm = this._getViewStateManagerThreeJS();
2067
2077
  var timeInterval = view.flyToTime != null ? view.flyToTime : 2000;
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
33
33
  * @public
34
34
  * @author SAP SE
35
- * @version 1.136.1
35
+ * @version 1.139.0
36
36
  * @extends sap.ui.vk.tools.Tool
37
37
  * @alias sap.ui.vk.tools.AnchorPointTool
38
38
  */
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @extends sap.ui.vk.tools.Gizmo
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.136.1
41
+ * @version 1.139.0
42
42
  *
43
43
  * @constructor
44
44
  * @private
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
33
33
  * @public
34
34
  * @author SAP SE
35
- * @version 1.136.1
35
+ * @version 1.139.0
36
36
  * @extends sap.ui.vk.tools.Tool
37
37
  * @alias sap.ui.vk.tools.AxisAngleRotationTool
38
38
  */
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @extends sap.ui.vk.tools.Gizmo
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.136.1
37
+ * @version 1.139.0
38
38
  *
39
39
  * @constructor
40
40
  * @private
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
35
35
  * @public
36
36
  * @author SAP SE
37
- * @version 1.136.1
37
+ * @version 1.139.0
38
38
  * @extends sap.ui.vk.tools.Tool
39
39
  * @alias sap.ui.vk.tools.CreateEllipseTool
40
40
  */
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.ui.vk.tools.CreateParametricGizmo
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.136.1
31
+ * @version 1.139.0
32
32
  *
33
33
  * @constructor
34
34
  * @private
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.vk.tools.Gizmo
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.136.1
29
+ * @version 1.139.0
30
30
  *
31
31
  * @constructor
32
32
  * @private
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
31
31
  * @public
32
32
  * @author SAP SE
33
- * @version 1.136.1
33
+ * @version 1.139.0
34
34
  * @extends sap.ui.vk.tools.Tool
35
35
  * @alias sap.ui.vk.tools.CreatePathTool
36
36
  */
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.ui.vk.tools.CreateParametricGizmo
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.136.1
33
+ * @version 1.139.0
34
34
  *
35
35
  * @constructor
36
36
  * @private
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
31
31
  * @public
32
32
  * @author SAP SE
33
- * @version 1.136.1
33
+ * @version 1.139.0
34
34
  * @extends sap.ui.vk.tools.Tool
35
35
  * @alias sap.ui.vk.tools.CreateRectangleTool
36
36
  */
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.ui.vk.tools.CreateParametricGizmo
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.136.1
31
+ * @version 1.139.0
32
32
  *
33
33
  * @constructor
34
34
  * @private
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
29
29
  * @public
30
30
  * @author SAP SE
31
- * @version 1.136.1
31
+ * @version 1.139.0
32
32
  * @extends sap.ui.vk.tools.Tool
33
33
  * @alias sap.ui.vk.tools.CreateTextTool
34
34
  */
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @extends sap.ui.vk.tools.CreateParametricGizmo
41
41
  *
42
42
  * @author SAP SE
43
- * @version 1.136.1
43
+ * @version 1.139.0
44
44
  *
45
45
  * @constructor
46
46
  * @private
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
29
29
  * @public
30
30
  * @author SAP SE
31
- * @version 1.136.1
31
+ * @version 1.139.0
32
32
  * @extends sap.ui.vk.tools.Tool
33
33
  * @alias sap.ui.vk.tools.CrossSectionTool
34
34
  */
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @extends sap.ui.vk.tools.Gizmo
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.136.1
37
+ * @version 1.139.0
38
38
  *
39
39
  * @constructor
40
40
  * @private
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
33
33
  * @public
34
34
  * @author SAP SE
35
- * @version 1.136.1
35
+ * @version 1.139.0
36
36
  * @extends sap.ui.vk.tools.Tool
37
37
  * @alias sap.ui.vk.tools.DuplicateSvgElementTool
38
38
  */
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.ui.vk.tools.CreateParametricGizmo
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.136.1
31
+ * @version 1.139.0
32
32
  *
33
33
  * @constructor
34
34
  * @private
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @public
27
27
  * @alias sap.ui.vk.tools.ExplodeItemGroup
28
28
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
29
- * @experimental Since 1.82.0 This method is experimental and might be modified or removed in future versions
29
+ * @since 1.82.0
30
30
  */
31
31
  var ExplodeItemGroup = Element.extend("sap.ui.vk.tools.ExplodeItemGroup", /** @lends sap.ui.vk.tools.ExplodeItemGroup.prototype */ {
32
32
  metadata: {
@@ -52,7 +52,7 @@ sap.ui.define([
52
52
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
53
53
  * @public
54
54
  * @author SAP SE
55
- * @version 1.136.1
55
+ * @version 1.139.0
56
56
  * @extends sap.ui.vk.tools.Tool
57
57
  * @alias sap.ui.vk.tools.ExplodeTool
58
58
  */
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  * @extends sap.ui.vk.tools.Gizmo
47
47
  *
48
48
  * @author SAP SE
49
- * @version 1.136.1
49
+ * @version 1.139.0
50
50
  *
51
51
  * @constructor
52
52
  * @private
@@ -53,7 +53,7 @@ sap.ui.define([
53
53
  * @extends sap.ui.core.Control
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.136.1
56
+ * @version 1.139.0
57
57
  *
58
58
  * @constructor
59
59
  * @public
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
30
30
  * @public
31
31
  * @author SAP SE
32
- * @version 1.136.1
32
+ * @version 1.139.0
33
33
  * @extends sap.ui.vk.tools.Tool
34
34
  * @alias sap.ui.vk.tools.HitTestTool
35
35
  */
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
35
35
  * @public
36
36
  * @author SAP SE
37
- * @version 1.136.1
37
+ * @version 1.139.0
38
38
  * @extends sap.ui.vk.tools.Tool
39
39
  * @alias sap.ui.vk.tools.MoveTool
40
40
  */
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @extends sap.ui.vk.tools.Gizmo
43
43
  *
44
44
  * @author SAP SE
45
- * @version 1.136.1
45
+ * @version 1.139.0
46
46
  *
47
47
  * @constructor
48
48
  * @private
@@ -28,10 +28,10 @@ sap.ui.define([
28
28
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
29
29
  * @public
30
30
  * @author SAP SE
31
- * @version 1.136.1
31
+ * @version 1.139.0
32
32
  * @extends sap.ui.vk.tools.Tool
33
33
  * @alias sap.ui.vk.tools.PointCloudSelectionTool
34
- * @experimental Since 1.118.0 This class is experimental and might be modified or removed in future versions.
34
+ * @since 1.118.0
35
35
  */
36
36
  const PointCloudSelectionTool = Tool.extend("sap.ui.vk.tools.PointCloudSelectionTool", /** @lends sap.ui.vk.tools.PointCloudSelectionTool.prototype */ {
37
37
  metadata: {
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @extends sap.ui.vk.tools.Gizmo
43
43
  *
44
44
  * @author SAP SE
45
- * @version 1.136.1
45
+ * @version 1.139.0
46
46
  *
47
47
  * @constructor
48
48
  * @private
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
32
32
  * @public
33
33
  * @author SAP SE
34
- * @version 1.136.1
34
+ * @version 1.139.0
35
35
  * @extends sap.ui.vk.tools.Tool
36
36
  * @alias sap.ui.vk.tools.RectSelectTool
37
37
  */
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
43
43
  * @public
44
44
  * @author SAP SE
45
- * @version 1.136.1
45
+ * @version 1.139.0
46
46
  * @extends sap.ui.vk.tools.Tool
47
47
  * @alias sap.ui.vk.tools.RedlineTool
48
48
  */
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.vk.tools.Gizmo
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.136.1
29
+ * @version 1.139.0
30
30
  *
31
31
  * @constructor
32
32
  * @private
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
29
29
  * @public
30
30
  * @author SAP SE
31
- * @version 1.136.1
31
+ * @version 1.139.0
32
32
  * @extends sap.ui.vk.tools.Tool
33
33
  * @alias sap.ui.vk.tools.RotateOrbitTool
34
34
  */
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
39
39
  * @public
40
40
  * @author SAP SE
41
- * @version 1.136.1
41
+ * @version 1.139.0
42
42
  * @extends sap.ui.vk.tools.Tool
43
43
  * @alias sap.ui.vk.tools.RotateTool
44
44
  */
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @extends sap.ui.vk.tools.Gizmo
43
43
  *
44
44
  * @author SAP SE
45
- * @version 1.136.1
45
+ * @version 1.139.0
46
46
  *
47
47
  * @constructor
48
48
  * @private
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
29
29
  * @public
30
30
  * @author SAP SE
31
- * @version 1.136.1
31
+ * @version 1.139.0
32
32
  * @extends sap.ui.vk.tools.Tool
33
33
  * @alias sap.ui.vk.tools.RotateTurntableTool
34
34
  */
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
35
35
  * @public
36
36
  * @author SAP SE
37
- * @version 1.136.1
37
+ * @version 1.139.0
38
38
  * @extends sap.ui.vk.tools.Tool
39
39
  * @alias sap.ui.vk.tools.ScaleTool
40
40
  */
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @extends sap.ui.vk.tools.Gizmo
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.136.1
39
+ * @version 1.139.0
40
40
  *
41
41
  * @constructor
42
42
  * @private
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
27
27
  * @public
28
28
  * @author SAP SE
29
- * @version 1.136.1
29
+ * @version 1.139.0
30
30
  * @extends sap.ui.vk.tools.Tool
31
31
  * @alias sap.ui.vk.tools.SceneOrientationTool
32
32
  */
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @extends sap.ui.vk.tools.Gizmo
43
43
  *
44
44
  * @author SAP SE
45
- * @version 1.136.1
45
+ * @version 1.139.0
46
46
  *
47
47
  * @constructor
48
48
  * @private
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @param {object} [oScope] scope An object for resolving string-based type and formatter references in bindings.
28
28
  * @public
29
29
  * @author SAP SE
30
- * @version 1.136.1
30
+ * @version 1.139.0
31
31
  * @extends sap.ui.core.Element
32
32
  * @alias sap.ui.vk.tools.Tool
33
33
  */
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @param {object} [mSettings] An optional map/JSON object with initial property values, aggregated objects etc. for the new tool instance.
29
29
  * @public
30
30
  * @author SAP SE
31
- * @version 1.136.1
31
+ * @version 1.139.0
32
32
  * @extends sap.ui.vk.tools.Tool
33
33
  * @alias sap.ui.vk.tools.TooltipTool
34
34
  */