@sapui5/sap.ui.vk 1.134.0 → 1.135.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 (173) 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 -2
  4. package/src/sap/ui/vk/AnimationPlayer.js +1 -1
  5. package/src/sap/ui/vk/AnimationSequence.js +1 -5
  6. package/src/sap/ui/vk/AnimationTimeSlider.js +1 -2
  7. package/src/sap/ui/vk/AnimationTrack.js +2 -4
  8. package/src/sap/ui/vk/Annotation.js +1 -1
  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 +1 -1
  12. package/src/sap/ui/vk/ContentManager.js +1 -1
  13. package/src/sap/ui/vk/ContentResource.js +1 -1
  14. package/src/sap/ui/vk/Core.js +1 -1
  15. package/src/sap/ui/vk/DownloadManager.js +1 -1
  16. package/src/sap/ui/vk/DrawerToolbar.js +1 -1
  17. package/src/sap/ui/vk/DvlException.js +1 -1
  18. package/src/sap/ui/vk/FlexibleControl.js +1 -1
  19. package/src/sap/ui/vk/FlexibleControlLayoutData.js +1 -1
  20. package/src/sap/ui/vk/Highlight.js +40 -318
  21. package/src/sap/ui/vk/ImageContentManager.js +1 -1
  22. package/src/sap/ui/vk/JointUtils.js +1 -2
  23. package/src/sap/ui/vk/LayerProxy.js +1 -1
  24. package/src/sap/ui/vk/Loco.js +1 -1
  25. package/src/sap/ui/vk/Material.js +1 -1
  26. package/src/sap/ui/vk/NativeViewport.js +1 -1
  27. package/src/sap/ui/vk/NodeHierarchy.js +1 -1
  28. package/src/sap/ui/vk/NodeProxy.js +1 -1
  29. package/src/sap/ui/vk/NodeUtils.js +1 -2
  30. package/src/sap/ui/vk/Notifications.js +1 -1
  31. package/src/sap/ui/vk/OrthographicCamera.js +1 -1
  32. package/src/sap/ui/vk/OutputSettings.js +1 -1
  33. package/src/sap/ui/vk/PerspectiveCamera.js +1 -1
  34. package/src/sap/ui/vk/ProgressIndicator.js +1 -1
  35. package/src/sap/ui/vk/RedlineCollaboration.js +1 -1
  36. package/src/sap/ui/vk/RedlineConversation.js +1 -1
  37. package/src/sap/ui/vk/RedlineDesign.js +1 -1
  38. package/src/sap/ui/vk/RedlineElement.js +1 -1
  39. package/src/sap/ui/vk/RedlineElementComment.js +1 -1
  40. package/src/sap/ui/vk/RedlineElementEllipse.js +1 -1
  41. package/src/sap/ui/vk/RedlineElementFreehand.js +1 -1
  42. package/src/sap/ui/vk/RedlineElementLine.js +1 -1
  43. package/src/sap/ui/vk/RedlineElementRectangle.js +1 -1
  44. package/src/sap/ui/vk/RedlineElementText.js +1 -1
  45. package/src/sap/ui/vk/RedlineSurface.js +1 -1
  46. package/src/sap/ui/vk/SafeArea.js +1 -1
  47. package/src/sap/ui/vk/Scene.js +1 -1
  48. package/src/sap/ui/vk/SceneTree.js +1 -1
  49. package/src/sap/ui/vk/StepNavigation.js +1 -1
  50. package/src/sap/ui/vk/Texture.js +1 -1
  51. package/src/sap/ui/vk/ToggleMenuButton.js +1 -1
  52. package/src/sap/ui/vk/ToggleMenuItem.js +1 -1
  53. package/src/sap/ui/vk/Toolbar.js +1 -1
  54. package/src/sap/ui/vk/View.js +57 -75
  55. package/src/sap/ui/vk/ViewGallery.js +10 -2
  56. package/src/sap/ui/vk/ViewGalleryThumbnail.js +1 -1
  57. package/src/sap/ui/vk/ViewGroup.js +1 -1
  58. package/src/sap/ui/vk/ViewManager.js +1 -1
  59. package/src/sap/ui/vk/ViewStateManager.js +1 -5
  60. package/src/sap/ui/vk/ViewStateManagerBase.js +1 -3
  61. package/src/sap/ui/vk/Viewer.js +1 -131
  62. package/src/sap/ui/vk/Viewport.js +1 -1
  63. package/src/sap/ui/vk/ViewportBase.js +3 -1
  64. package/src/sap/ui/vk/dvl/BaseNodeProxy.js +1 -1
  65. package/src/sap/ui/vk/dvl/ContentManager.js +1 -1
  66. package/src/sap/ui/vk/dvl/GraphicsCore.js +1 -1
  67. package/src/sap/ui/vk/dvl/LayerProxy.js +1 -1
  68. package/src/sap/ui/vk/dvl/NodeHierarchy.js +1 -1
  69. package/src/sap/ui/vk/dvl/NodeProxy.js +1 -1
  70. package/src/sap/ui/vk/dvl/Scene.js +1 -1
  71. package/src/sap/ui/vk/dvl/ViewStateManager.js +1 -1
  72. package/src/sap/ui/vk/dvl/Viewport.js +1 -1
  73. package/src/sap/ui/vk/library.js +3 -2
  74. package/src/sap/ui/vk/matai/MataiLoaderWorker.js +4 -0
  75. package/src/sap/ui/vk/measurements/Angle.js +1 -1
  76. package/src/sap/ui/vk/measurements/Area.js +1 -1
  77. package/src/sap/ui/vk/measurements/Distance.js +1 -1
  78. package/src/sap/ui/vk/measurements/Edge.js +1 -1
  79. package/src/sap/ui/vk/measurements/Face.js +1 -1
  80. package/src/sap/ui/vk/measurements/Feature.js +1 -1
  81. package/src/sap/ui/vk/measurements/Surface.js +1 -1
  82. package/src/sap/ui/vk/measurements/Vertex.js +1 -1
  83. package/src/sap/ui/vk/pdf/ContentManager.js +1 -1
  84. package/src/sap/ui/vk/pdf/Viewport.js +1 -1
  85. package/src/sap/ui/vk/svg/BaseNodeProxy.js +1 -1
  86. package/src/sap/ui/vk/svg/ContentDeliveryService.js +1 -1
  87. package/src/sap/ui/vk/svg/ContentManager.js +1 -1
  88. package/src/sap/ui/vk/svg/HotspotHelper.js +2 -4
  89. package/src/sap/ui/vk/svg/NodeHierarchy.js +1 -1
  90. package/src/sap/ui/vk/svg/NodeProxy.js +1 -1
  91. package/src/sap/ui/vk/svg/OrthographicCamera.js +1 -1
  92. package/src/sap/ui/vk/svg/Scene.js +1 -1
  93. package/src/sap/ui/vk/svg/SceneBuilder.js +1 -2
  94. package/src/sap/ui/vk/svg/ViewStateManager.js +1 -2
  95. package/src/sap/ui/vk/svg/Viewport.js +1 -1
  96. package/src/sap/ui/vk/thirdparty/pdf.worker.js +1 -1
  97. package/src/sap/ui/vk/threejs/AnimationHelper.js +1 -2
  98. package/src/sap/ui/vk/threejs/BaseNodeProxy.js +1 -1
  99. package/src/sap/ui/vk/threejs/Billboard.js +1 -2
  100. package/src/sap/ui/vk/threejs/Callout.js +1 -2
  101. package/src/sap/ui/vk/threejs/ContentDeliveryService.js +1 -1
  102. package/src/sap/ui/vk/threejs/ContentManager.js +1 -1
  103. package/src/sap/ui/vk/threejs/DetailView.js +1 -2
  104. package/src/sap/ui/vk/threejs/HighlightPlayer.js +18 -25
  105. package/src/sap/ui/vk/threejs/Material.js +1 -4
  106. package/src/sap/ui/vk/threejs/NodeHierarchy.js +1 -1
  107. package/src/sap/ui/vk/threejs/NodeProxy.js +7 -26
  108. package/src/sap/ui/vk/threejs/OrthographicCamera.js +1 -1
  109. package/src/sap/ui/vk/threejs/ParametricGenerators.js +1 -1
  110. package/src/sap/ui/vk/threejs/PerspectiveCamera.js +1 -1
  111. package/src/sap/ui/vk/threejs/PointCloudGroup.js +1 -2
  112. package/src/sap/ui/vk/threejs/PolylineGeometry.js +29 -1
  113. package/src/sap/ui/vk/threejs/Scene.js +83 -76
  114. package/src/sap/ui/vk/threejs/SceneBuilder.js +7 -22
  115. package/src/sap/ui/vk/threejs/Texture.js +1 -4
  116. package/src/sap/ui/vk/threejs/ThreeExtensions.js +21 -74
  117. package/src/sap/ui/vk/threejs/ThreeUtils.js +1 -1
  118. package/src/sap/ui/vk/threejs/Thrustline.js +1 -4
  119. package/src/sap/ui/vk/threejs/ViewStateManager.js +7 -8
  120. package/src/sap/ui/vk/threejs/Viewport.js +1 -3
  121. package/src/sap/ui/vk/threejs/v2/ViewStateManager.js +12 -29
  122. package/src/sap/ui/vk/tools/AnchorPointTool.js +1 -1
  123. package/src/sap/ui/vk/tools/AnchorPointToolGizmo.js +11 -3
  124. package/src/sap/ui/vk/tools/AngleMeasurementToolGizmo.js +2 -1
  125. package/src/sap/ui/vk/tools/AreaMeasurementToolGizmo.js +2 -1
  126. package/src/sap/ui/vk/tools/AxisAngleRotationTool.js +1 -7
  127. package/src/sap/ui/vk/tools/AxisAngleRotationToolGizmo.js +1 -1
  128. package/src/sap/ui/vk/tools/CreateEllipseTool.js +1 -1
  129. package/src/sap/ui/vk/tools/CreateEllipseToolGizmo.js +3 -2
  130. package/src/sap/ui/vk/tools/CreateParametricGizmo.js +3 -2
  131. package/src/sap/ui/vk/tools/CreatePathTool.js +1 -1
  132. package/src/sap/ui/vk/tools/CreatePathToolGizmo.js +3 -2
  133. package/src/sap/ui/vk/tools/CreateRectangleTool.js +1 -1
  134. package/src/sap/ui/vk/tools/CreateRectangleToolGizmo.js +3 -2
  135. package/src/sap/ui/vk/tools/CreateTextTool.js +1 -1
  136. package/src/sap/ui/vk/tools/CreateTextToolGizmo.js +12 -1
  137. package/src/sap/ui/vk/tools/CrossSectionTool.js +1 -1
  138. package/src/sap/ui/vk/tools/CrossSectionToolGizmo.js +11 -1
  139. package/src/sap/ui/vk/tools/DistanceMeasurementToolGizmo.js +2 -1
  140. package/src/sap/ui/vk/tools/DuplicateSvgElementTool.js +1 -1
  141. package/src/sap/ui/vk/tools/DuplicateSvgElementToolGizmo.js +3 -2
  142. package/src/sap/ui/vk/tools/ExplodeItemGroup.js +1 -1
  143. package/src/sap/ui/vk/tools/ExplodeTool.js +3 -3
  144. package/src/sap/ui/vk/tools/ExplodeToolGizmo.js +3 -2
  145. package/src/sap/ui/vk/tools/Gizmo.js +2 -5
  146. package/src/sap/ui/vk/tools/HitTestTool.js +1 -1
  147. package/src/sap/ui/vk/tools/MeasurementToolGizmo.js +2 -1
  148. package/src/sap/ui/vk/tools/MoveTool.js +1 -1
  149. package/src/sap/ui/vk/tools/MoveToolGizmo.js +1 -1
  150. package/src/sap/ui/vk/tools/PointCloudSelectionTool.js +1 -1
  151. package/src/sap/ui/vk/tools/PointCloudSelectionToolGizmo.js +1 -1
  152. package/src/sap/ui/vk/tools/RectSelectTool.js +1 -1
  153. package/src/sap/ui/vk/tools/RedlineTool.js +1 -1
  154. package/src/sap/ui/vk/tools/RedlineToolGizmo.js +1 -1
  155. package/src/sap/ui/vk/tools/RotateOrbitTool.js +1 -1
  156. package/src/sap/ui/vk/tools/RotateTool.js +1 -1
  157. package/src/sap/ui/vk/tools/RotateToolGizmo.js +1 -1
  158. package/src/sap/ui/vk/tools/RotateTurntableTool.js +1 -1
  159. package/src/sap/ui/vk/tools/ScaleTool.js +1 -1
  160. package/src/sap/ui/vk/tools/ScaleToolGizmo.js +1 -1
  161. package/src/sap/ui/vk/tools/SceneOrientationTool.js +1 -1
  162. package/src/sap/ui/vk/tools/SceneOrientationToolGizmo.js +13 -1
  163. package/src/sap/ui/vk/tools/Tool.js +1 -1
  164. package/src/sap/ui/vk/tools/TooltipTool.js +1 -1
  165. package/src/sap/ui/vk/tools/TooltipToolGizmo.js +1 -1
  166. package/src/sap/ui/vk/tools/TransformSvgElementTool.js +1 -1
  167. package/src/sap/ui/vk/tools/TransformSvgElementToolGizmo.js +1 -1
  168. package/src/sap/ui/vk/ve/matai.js +1 -1
  169. package/src/sap/ui/vk/ve/matai.wasm +0 -0
  170. package/src/sap/ui/vk/tools/AnchorPointToolGizmoRenderer.js +0 -40
  171. package/src/sap/ui/vk/tools/CreateTextToolGizmoRenderer.js +0 -41
  172. package/src/sap/ui/vk/tools/CrossSectionToolGizmoRenderer.js +0 -40
  173. package/src/sap/ui/vk/tools/SceneOrientationToolGizmoRenderer.js +0 -39
@@ -20,18 +20,6 @@ sap.ui.define([
20
20
  ) {
21
21
  "use strict";
22
22
 
23
- THREE.Object3D.prototype.defaultEmissive = {
24
- r: 0.0235,
25
- g: 0.0235,
26
- b: 0.0235
27
- };
28
-
29
- THREE.Object3D.prototype.defaultSpecular = {
30
- r: 0.0602,
31
- g: 0.0602,
32
- b: 0.0602
33
- };
34
-
35
23
  // TODO(VSM): REMOVE
36
24
  THREE.Object3D.prototype._vkCalculateObjectOrientedBoundingBox = function() {
37
25
  ThreeUtils.computeObjectOrientedBoundingBox(this, this.userData.boundingBox = new THREE.Box3());
@@ -100,30 +88,12 @@ sap.ui.define([
100
88
  }
101
89
 
102
90
  var userData = this.userData;
91
+ userData.blendColor = null;
103
92
 
104
93
  if (userData.originalMaterial) {
105
- if (userData.originalMaterial.color.r === undefined) {
106
- // TODO(VSM): should we call `ThreeUtils.disposeMaterial(this.material)`?
107
- userData.originalMaterial = null;
108
- } else if (userData.originalMaterial.map !== this.material.map ||
109
- userData.originalMaterial.bumpMap !== this.material.bumpMap ||
110
- userData.originalMaterial.alphaMap !== this.material.alphaMap ||
111
- userData.originalMaterial.envMap !== this.material.envMap ||
112
- userData.originalMaterial.emissiveMap !== this.material.emissiveMap ||
113
- userData.originalMaterial.aoMap !== this.material.aoMap) {
114
- // textures are added to original material after node material is cloned, need to re-clone
115
- // the same original material may be shared among nodes, so need to check for each node
116
- // TODO(VSM): should we call `ThreeUtils.disposeMaterial(this.material)`?
117
- this.material = userData.originalMaterial.clone();
118
- } else {
119
- this.material.color.copy(userData.originalMaterial.color);
120
- if (this.material.emissive !== undefined) {
121
- this.material.emissive.copy(userData.originalMaterial.emissive);
122
- }
123
- if (this.material.specular !== undefined) {
124
- this.material.specular.copy(userData.originalMaterial.specular);
125
- }
126
- }
94
+ this.material.color.copy(userData.originalMaterial.color); // diffuse color, may be multiplied by material.map
95
+ this.material.emissive?.copy(userData.originalMaterial.emissive);
96
+ this.material.specular?.copy(userData.originalMaterial.specular);
127
97
  }
128
98
 
129
99
  if (userData.highlightColor !== undefined || userData.tintColor !== undefined || userData.highlightingColor !== undefined) {
@@ -134,52 +104,29 @@ sap.ui.define([
134
104
  this.material = this.material.clone();
135
105
  }
136
106
 
137
- if (userData.highlightingColor !== undefined) {
107
+ const color = new THREE.Vector4(0, 0, 0, 0);
138
108
 
139
- var color = new THREE.Color();
140
- color.fromArray(userData.highlightingColor).lerp(userData.originalMaterial.color, 1 - userData.highlightingColor[3]);
109
+ if (userData.highlightingColor !== undefined) { // highlighting animation of the view (HighlightPlayer)
110
+ color.fromArray(userData.highlightingColor);
111
+ }
141
112
 
142
- this.material.color.copy(color);
113
+ if (userData.tintColor !== undefined) { // tinting (ViewStateManangert)
114
+ const c = abgrToColor(userData.tintColor);
115
+ color.lerp(new THREE.Vector4(c.red / 255.0, c.green / 255.0, c.blue / 255.0, 1), c.alpha);
143
116
  }
144
117
 
145
- var c;
146
- if (userData.tintColor !== undefined) {
147
- c = abgrToColor(userData.tintColor);
148
- this.material.color.lerp(new THREE.Color(c.red / 255.0, c.green / 255.0, c.blue / 255.0), c.alpha);
149
- if (this.material.emissive !== undefined) {
150
- if (this.material.userData.defaultHighlightingEmissive) {
151
- this.material.emissive.copy(this.material.userData.defaultHighlightingEmissive);
152
- } else {
153
- this.material.emissive.copy(THREE.Object3D.prototype.defaultEmissive);
154
- }
155
- }
156
- if (this.material.specular !== undefined) {
157
- if (this.material.userData.defaultHighlightingSpecular) {
158
- this.material.specular.copy(this.material.userData.defaultHighlightingSpecular);
159
- } else {
160
- this.material.specular.copy(THREE.Object3D.prototype.defaultSpecular);
161
- }
162
- }
118
+ if (userData.highlightColor !== undefined) { // selection (ViewStateManangert)
119
+ const c = abgrToColor(userData.highlightColor);
120
+ color.lerp(new THREE.Vector4(c.red / 255.0, c.green / 255.0, c.blue / 255.0, 1), c.alpha);
163
121
  }
164
122
 
165
- if (userData.highlightColor !== undefined) {
166
- c = abgrToColor(userData.highlightColor);
167
- this.material.color.lerp(new THREE.Color(c.red / 255.0, c.green / 255.0, c.blue / 255.0), c.alpha);
168
- // when highlightColor = 0: total transparent, so do not change original emssive and specular
169
- if (this.material.emissive !== undefined && userData.highlightColor !== 0) {
170
- if (this.material.userData.defaultHighlightingEmissive) {
171
- this.material.emissive.copy(this.material.userData.defaultHighlightingEmissive);
172
- } else {
173
- this.material.emissive.copy(THREE.Object3D.prototype.defaultEmissive);
174
- }
175
- }
176
- if (this.material.specular !== undefined && userData.highlightColor !== 0) {
177
- if (this.material.userData.defaultHighlightingSpecular) {
178
- this.material.specular.copy(this.material.userData.defaultHighlightingSpecular);
179
- } else {
180
- this.material.specular.copy(THREE.Object3D.prototype.defaultSpecular);
181
- }
182
- }
123
+ if (color.w > 0) {
124
+ userData.blendColor = color.toArray();
125
+
126
+ const blendColor = new THREE.Color(color.x, color.y, color.z);
127
+ this.material.color.lerp(blendColor, color.w);
128
+ this.material.emissive?.lerp(blendColor, color.w * 0.5);
129
+ this.material.specular?.multiplyScalar(1 - 0.75 * color.w); // reduce specular as it may overexpose the highlighting
183
130
  }
184
131
  }
185
132
 
@@ -455,7 +455,7 @@ sap.ui.define([
455
455
  // '0' - hidden, '1' - draw as cluster, '2' - render by three js, '3' - cluster with custom color
456
456
  if (!cluster.isPoints && (ud.initialMaterialId !== ud.materialId
457
457
  || node.renderOrder != 0
458
- || ud.highlightingColor
458
+ || ud.blendColor != null
459
459
  || ud.defaultMaterial // defaultMaterial is used for Outline objects
460
460
  || node.material.transparent === true)) {
461
461
 
@@ -27,14 +27,11 @@ sap.ui.define([
27
27
  * Constructor for a new Thrustline.
28
28
  *
29
29
  * @class
30
- *
31
- *
32
30
  * @private
33
31
  * @author SAP SE
34
- * @version 1.134.0
32
+ * @version 1.135.0
35
33
  * @extends sap.ui.base.ManagedObject
36
34
  * @alias sap.ui.vk.threejs.Thrustline
37
- * @experimental Since 1.65.0 This class is experimental and might be modified or removed in future versions.
38
35
  */
39
36
  var Thrustline = BaseObject.extend("sap.ui.vk.threejs.Thrustline", /** @lends sap.ui.vk.threejs.Thrustline.prototype */ {
40
37
  metadata: {
@@ -67,7 +67,7 @@ sap.ui.define([
67
67
  * @param {object} [mSettings] Initial settings for the new ViewStateManager object.
68
68
  * @public
69
69
  * @author SAP SE
70
- * @version 1.134.0
70
+ * @version 1.135.0
71
71
  * @extends sap.ui.vk.ViewStateManagerBase
72
72
  * @alias sap.ui.vk.threejs.ViewStateManager
73
73
  * @since 1.32.0
@@ -2180,7 +2180,6 @@ sap.ui.define([
2180
2180
  *
2181
2181
  * @returns {?string} Image type string, or null
2182
2182
  * @private
2183
- * @experimental Since 1.82.0 This method is experimental and might be modified or removed in future versions
2184
2183
  */
2185
2184
  ViewStateManager.prototype.getBackgroundImageType = function() {
2186
2185
  // currently can only use background node name to determine the image type
@@ -2194,7 +2193,6 @@ sap.ui.define([
2194
2193
  * @param {string} imageType Image type string
2195
2194
  * @returns {object} Background node object
2196
2195
  * @private
2197
- * @experimental Since 1.82.0 This method is experimental and might be modified or removed in future versions
2198
2196
  */
2199
2197
  ViewStateManager.prototype.setBackgroundImageType = function(imageType) {
2200
2198
  var backgroundNodes = this._getBackgroundNodeInfos();
@@ -2512,8 +2510,9 @@ sap.ui.define([
2512
2510
  if (fadeInNodes && fadeInNodes.length) {
2513
2511
  var fadeInHighlight = new Highlight("FadeIn", {
2514
2512
  duration: timeInterval / 500.0,
2515
- opacities: [0.0, 1.0],
2516
- cycles: 1
2513
+ opacities: [1.0, 0.0],
2514
+ cycles: 0.5,
2515
+ type: "FadeIn"
2517
2516
  });
2518
2517
  this._transitionPlayer.addHighlights(fadeInHighlight, fadeInNodes);
2519
2518
  }
@@ -2521,9 +2520,9 @@ sap.ui.define([
2521
2520
  if (fadeOutNodes && fadeOutNodes.length) {
2522
2521
  var fadeOutHighlight = new Highlight("FadeOut", {
2523
2522
  duration: timeInterval / 500.0,
2524
- opacities: [1.0, 0.0],
2525
- cycles: 1,
2526
- fadeOut: true
2523
+ opacities: [0.0, 1.0],
2524
+ cycles: 0.5,
2525
+ type: "FadeOut"
2527
2526
  });
2528
2527
  this._transitionPlayer.addHighlights(fadeOutHighlight, fadeOutNodes);
2529
2528
  }
@@ -88,7 +88,7 @@ sap.ui.define([
88
88
  *
89
89
  * @public
90
90
  * @author SAP SE
91
- * @version 1.134.0
91
+ * @version 1.135.0
92
92
  * @extends sap.ui.vk.ViewportBase
93
93
  * @alias sap.ui.vk.threejs.Viewport
94
94
  */
@@ -835,7 +835,6 @@ sap.ui.define([
835
835
  *
836
836
  * @returns {?string} Background projection or undefined
837
837
  * @private
838
- * @experimental Since 1.106.0 This method is experimental and might be modified or removed in future versions
839
838
  */
840
839
  Viewport.prototype.getBackgroundProjection = function() {
841
840
  return bgNodeNameToProjectionType[this._backgroundNode && this._backgroundNode.name];
@@ -2673,7 +2672,6 @@ sap.ui.define([
2673
2672
  * @param {object} options.parametricContent parametric content object
2674
2673
  * @returns {any[]} An array of Background nodes
2675
2674
  * @private
2676
- * @experimental Since 1.82.0 This method is experimental and might be modified or removed in future versions
2677
2675
  */
2678
2676
  Viewport.prototype.setBackgroundNode = function(options) {
2679
2677
  var nodeHierarchy = this._viewStateManager.getNodeHierarchy();
@@ -43,7 +43,7 @@ sap.ui.define([
43
43
  * @param {object} [mSettings] Initial settings for the new ViewStateManager object.
44
44
  * @private
45
45
  * @author SAP SE
46
- * @version 1.134.0
46
+ * @version 1.135.0
47
47
  * @extends sap.ui.vk.threejs.ViewStateManager
48
48
  * @alias sap.ui.vk.threejs.v2.ViewStateManager
49
49
  * @since 1.99.0
@@ -1338,6 +1338,11 @@ sap.ui.define([
1338
1338
  ViewStateManager.prototype._updateNodeStateMaterials = function() {
1339
1339
  var materialCache = this._materialCache;
1340
1340
 
1341
+ // node highlighting and tinting may work and look differently in the default ViewStateManager.js as it uses
1342
+ // THREE.Object3D._vkUpdateMaterialColorAndOpacity() method to update the material color and opacity
1343
+
1344
+ const defaultHighlightingEmissive = { r: 0.0235, g: 0.0235, b: 0.0235 };
1345
+ const defaultHighlightingSpecular = { r: 0.0602, g: 0.0602, b: 0.0602 };
1341
1346
  var highlightColorABGR = this.getHighlightColor(true);
1342
1347
  var highlightColor = abgrToColor(highlightColorABGR);
1343
1348
  var highlightColorThreeJS = new THREE.Color(highlightColor.red / 255.0, highlightColor.green / 255.0, highlightColor.blue / 255.0);
@@ -1350,6 +1355,8 @@ sap.ui.define([
1350
1355
  // TODO(VSM): do we really need this? I added this in case if material.color was
1351
1356
  // modified in a previous iteration. When can it happen?
1352
1357
  state.material.color.copy(nodeRef.material.color);
1358
+ state.material.emissive?.copy(nodeRef.material.emissive);
1359
+ state.material.specular?.copy(nodeRef.material.specular);
1353
1360
  }
1354
1361
 
1355
1362
  var material = state.material;
@@ -1359,39 +1366,15 @@ sap.ui.define([
1359
1366
  if (tintColor != null) {
1360
1367
  color = abgrToColor(tintColor);
1361
1368
  material.color.lerp(new THREE.Color(color.red / 255.0, color.green / 255.0, color.blue / 255.0), color.alpha);
1362
- if (material.emissive != null) {
1363
- if (material.userData.defaultHighlightingEmissive) {
1364
- material.emissive.copy(material.userData.defaultHighlightingEmissive);
1365
- } else {
1366
- material.emissive.copy(THREE.Object3D.prototype.defaultEmissive);
1367
- }
1368
- }
1369
- if (material.specular != null) {
1370
- if (material.userData.defaultHighlightingSpecular) {
1371
- material.specular.copy(material.userData.defaultHighlightingSpecular);
1372
- } else {
1373
- material.specular.copy(THREE.Object3D.prototype.defaultSpecular);
1374
- }
1375
- }
1369
+ material.emissive?.copy(defaultHighlightingEmissive);
1370
+ material.specular?.copy(defaultHighlightingSpecular);
1376
1371
  }
1377
1372
 
1378
1373
  if (state.selected || state.ancestorSelected) {
1379
1374
  material.color.lerp(highlightColorThreeJS, highlightColor.alpha);
1380
1375
  // when highlightColor = 0: total transparent, so do not change original emissive and specular
1381
- if (material.emissive != null && highlightColorABGR !== 0) {
1382
- if (material.userData.defaultHighlightingEmissive) {
1383
- material.emissive.copy(material.userData.defaultHighlightingEmissive);
1384
- } else {
1385
- material.emissive.copy(THREE.Object3D.prototype.defaultEmissive);
1386
- }
1387
- }
1388
- if (material.specular != null && highlightColorABGR !== 0) {
1389
- if (material.userData.defaultHighlightingSpecular) {
1390
- material.specular.copy(material.userData.defaultHighlightingSpecular);
1391
- } else {
1392
- material.specular.copy(THREE.Object3D.prototype.defaultSpecular);
1393
- }
1394
- }
1376
+ material.emissive?.copy(defaultHighlightingEmissive);
1377
+ material.specular?.copy(defaultHighlightingSpecular);
1395
1378
  }
1396
1379
 
1397
1380
  var worldOpacity = this._computeWorldOpacity(nodeRef, state);
@@ -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.134.0
35
+ * @version 1.135.0
36
36
  * @extends sap.ui.vk.tools.Tool
37
37
  * @alias sap.ui.vk.tools.AnchorPointTool
38
38
  */
@@ -11,7 +11,6 @@ sap.ui.define([
11
11
  "../thirdparty/three",
12
12
  "../thirdparty/BufferGeometryUtils",
13
13
  "./Gizmo",
14
- "./AnchorPointToolGizmoRenderer",
15
14
  "./CoordinateSystem",
16
15
  "./AxisColours",
17
16
  "./AnchorPointToolOperation",
@@ -21,7 +20,6 @@ sap.ui.define([
21
20
  THREE,
22
21
  BufferGeometryUtils,
23
22
  Gizmo,
24
- AnchorPointToolGizmoRenderer,
25
23
  CoordinateSystem,
26
24
  AxisColours,
27
25
  AnchorPointToolOperation,
@@ -40,7 +38,7 @@ sap.ui.define([
40
38
  * @extends sap.ui.vk.tools.Gizmo
41
39
  *
42
40
  * @author SAP SE
43
- * @version 1.134.0
41
+ * @version 1.135.0
44
42
  *
45
43
  * @constructor
46
44
  * @private
@@ -50,6 +48,16 @@ sap.ui.define([
50
48
  var AnchorPointToolGizmo = Gizmo.extend("sap.ui.vk.tools.AnchorPointToolGizmo", /** @lends sap.ui.vk.tools.AnchorPointToolGizmo.prototype */ {
51
49
  metadata: {
52
50
  library: "sap.ui.vk"
51
+ },
52
+ renderer: {
53
+ apiVersion: 2,
54
+ render: function(rm, control) {
55
+ rm.openStart("div", control);
56
+ rm.class("sapUiVkTransformationToolEdit");
57
+ rm.openEnd();
58
+ rm.renderControl(control._editingForm);
59
+ rm.close("div");
60
+ }
53
61
  }
54
62
  });
55
63
 
@@ -21,7 +21,8 @@ sap.ui.define([
21
21
  var AngleMeasurementToolGizmo = MeasurementToolGizmo.extend("sap.ui.vk.tools.AngleMeasurementToolGizmo", /** @lends sap.ui.vk.tools.AngleMeasurementToolGizmo */ {
22
22
  metadata: {
23
23
  library: "sap.ui.vk"
24
- }
24
+ },
25
+ renderer: null
25
26
  });
26
27
 
27
28
  var basePrototype = AngleMeasurementToolGizmo.getMetadata().getParent().getClass().prototype;
@@ -23,7 +23,8 @@ sap.ui.define([
23
23
  var AreaMeasurementToolGizmo = MeasurementToolGizmo.extend("sap.ui.vk.tools.AreaMeasurementToolGizmo", /** @lends sap.ui.vk.tools.AreaMeasurementToolGizmo */ {
24
24
  metadata: {
25
25
  library: "sap.ui.vk"
26
- }
26
+ },
27
+ renderer: null
27
28
  });
28
29
 
29
30
  var basePrototype = AreaMeasurementToolGizmo.getMetadata().getParent().getClass().prototype;
@@ -32,10 +32,9 @@ 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.134.0
35
+ * @version 1.135.0
36
36
  * @extends sap.ui.vk.tools.Tool
37
37
  * @alias sap.ui.vk.tools.AxisAngleRotationTool
38
- * @experimental
39
38
  */
40
39
  var AxisAngleRotationTool = Tool.extend("sap.ui.vk.tools.AxisAngleRotationTool", /** @lends sap.ui.vk.tools.AxisAngleRotationTool.prototype */ {
41
40
  metadata: {
@@ -208,7 +207,6 @@ sap.ui.define([
208
207
  * @param {float} deltaAngle A delta angle.
209
208
  * @returns {this} <code>this</code> to allow method chaining.
210
209
  * @private
211
- * @experimental
212
210
  */
213
211
  AxisAngleRotationTool.prototype.rotateBy = function(deltaAngle) {
214
212
  this.getGizmo().rotateBy(deltaAngle);
@@ -227,7 +225,6 @@ sap.ui.define([
227
225
  * defined in degrees.
228
226
  * @returns {this} <code>this</code> to allow method chaining.
229
227
  * @private
230
- * @experimental
231
228
  */
232
229
  AxisAngleRotationTool.prototype.setAxis = function(axis) {
233
230
  this.getGizmo().setAxis(axis);
@@ -248,13 +245,11 @@ sap.ui.define([
248
245
  * An axis of rotation in animation keys is stored in cartesian coordinates, in UI an axis of rotation
249
246
  * is displayed in polar coordinates using azimuth and elevation.
250
247
  * @private
251
- * @experimental
252
248
  */
253
249
  AxisAngleRotationTool.prototype.getValues = function() {
254
250
  return this.getGizmo().getValues();
255
251
  };
256
252
 
257
-
258
253
  /**
259
254
  * Set angles and axes of rotation for nodes in the node set.
260
255
  * @param {object[]} values An array of objects with axis-angle parameters for each node in the node set. Each
@@ -271,7 +266,6 @@ sap.ui.define([
271
266
  * <code>axis</code> has priority over pair (<code>azimuth</code>, <code>elevation</code>).
272
267
  * @returns {this} <code>this</code> to allow method chaining.
273
268
  * @private
274
- * @experimental
275
269
  */
276
270
  AxisAngleRotationTool.prototype.setValues = function(values) {
277
271
  this.getGizmo().setValues(values);
@@ -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.134.0
37
+ * @version 1.135.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.134.0
37
+ * @version 1.135.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.134.0
31
+ * @version 1.135.0
32
32
  *
33
33
  * @constructor
34
34
  * @private
@@ -38,7 +38,8 @@ sap.ui.define([
38
38
  var CreateEllipseToolGizmo = CreateParametricGizmo.extend("sap.ui.vk.tools.CreateEllipseToolGizmo", /** @lends sap.ui.vk.tools.CreateEllipseToolGizmo.prototype */ {
39
39
  metadata: {
40
40
  library: "sap.ui.vk"
41
- }
41
+ },
42
+ renderer: null
42
43
  });
43
44
 
44
45
  /**
@@ -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.134.0
29
+ * @version 1.135.0
30
30
  *
31
31
  * @constructor
32
32
  * @private
@@ -36,7 +36,8 @@ sap.ui.define([
36
36
  var CreateParametricGizmo = Gizmo.extend("sap.ui.vk.tools.CreateParametricGizmo", /** @lends sap.ui.vk.tools.CreateParametricGizmo.prototype */ {
37
37
  metadata: {
38
38
  library: "sap.ui.vk"
39
- }
39
+ },
40
+ renderer: null
40
41
  });
41
42
 
42
43
  // Override initialization method
@@ -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.134.0
33
+ * @version 1.135.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.134.0
33
+ * @version 1.135.0
34
34
  *
35
35
  * @constructor
36
36
  * @private
@@ -40,7 +40,8 @@ sap.ui.define([
40
40
  var CreatePathToolGizmo = CreateParametricGizmo.extend("sap.ui.vk.tools.CreatePathToolGizmo", /** @lends sap.ui.vk.tools.CreatePathToolGizmo.prototype */ {
41
41
  metadata: {
42
42
  library: "sap.ui.vk"
43
- }
43
+ },
44
+ renderer: null
44
45
  });
45
46
 
46
47
  /**
@@ -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.134.0
33
+ * @version 1.135.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.134.0
31
+ * @version 1.135.0
32
32
  *
33
33
  * @constructor
34
34
  * @private
@@ -38,7 +38,8 @@ sap.ui.define([
38
38
  var CreateRectangleToolGizmo = CreateParametricGizmo.extend("sap.ui.vk.tools.CreateRectangleToolGizmo", /** @lends sap.ui.vk.tools.CreateRectangleToolGizmo.prototype */ {
39
39
  metadata: {
40
40
  library: "sap.ui.vk"
41
- }
41
+ },
42
+ renderer: null
42
43
  });
43
44
 
44
45
  /**
@@ -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.134.0
31
+ * @version 1.135.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.134.0
43
+ * @version 1.135.0
44
44
  *
45
45
  * @constructor
46
46
  * @private
@@ -50,6 +50,17 @@ sap.ui.define([
50
50
  var CreateTextToolGizmo = CreateParametricGizmo.extend("sap.ui.vk.tools.CreateTextToolGizmo", /** @lends sap.ui.vk.tools.CreateTextToolGizmo.prototype */ {
51
51
  metadata: {
52
52
  library: "sap.ui.vk"
53
+ },
54
+ renderer: {
55
+ apiVersion: 2,
56
+ render: function(rm, control) {
57
+ // an empty div to which the edit dialog will be attached
58
+ rm.openStart("div", control);
59
+ rm.style("position", "absolute");
60
+ rm.style("pointer-events", "none");
61
+ rm.openEnd();
62
+ rm.close("div");
63
+ }
53
64
  }
54
65
  });
55
66
 
@@ -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.134.0
31
+ * @version 1.135.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.134.0
37
+ * @version 1.135.0
38
38
  *
39
39
  * @constructor
40
40
  * @private
@@ -44,6 +44,16 @@ sap.ui.define([
44
44
  var CrossSectionToolGizmo = Gizmo.extend("sap.ui.vk.tools.CrossSectionToolGizmo", /** @lends sap.ui.vk.tools.CrossSectionToolGizmo.prototype */ {
45
45
  metadata: {
46
46
  library: "sap.ui.vk"
47
+ },
48
+ renderer: {
49
+ apiVersion: 2,
50
+ render: function(rm, control) {
51
+ rm.openStart("div", control);
52
+ rm.class("sapUiVkTransformationToolEdit");
53
+ rm.openEnd();
54
+ rm.renderControl(control._editingForm);
55
+ rm.close("div");
56
+ }
47
57
  }
48
58
  });
49
59
 
@@ -21,7 +21,8 @@ sap.ui.define([
21
21
  var DistanceMeasurementToolGizmo = MeasurementToolGizmo.extend("sap.ui.vk.tools.DistanceMeasurementToolGizmo", /** @lends sap.ui.vk.tools.DistanceMeasurementToolGizmo */ {
22
22
  metadata: {
23
23
  library: "sap.ui.vk"
24
- }
24
+ },
25
+ renderer: null
25
26
  });
26
27
 
27
28
  var basePrototype = DistanceMeasurementToolGizmo.getMetadata().getParent().getClass().prototype;
@@ -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.134.0
35
+ * @version 1.135.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.134.0
31
+ * @version 1.135.0
32
32
  *
33
33
  * @constructor
34
34
  * @private
@@ -38,7 +38,8 @@ sap.ui.define([
38
38
  var DuplicateSvgElementToolGizmo = CreateParametricGizmo.extend("sap.ui.vk.tools.DuplicateSvgElementToolGizmo", /** @lends sap.ui.vk.tools.DuplicateSvgElementToolGizmo.prototype */ {
39
39
  metadata: {
40
40
  library: "sap.ui.vk"
41
- }
41
+ },
42
+ renderer: null
42
43
  });
43
44
 
44
45
  /**