@sapui5/sap.ui.vbm 1.96.4 → 1.96.5
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.
- package/package.json +1 -1
- package/src/sap/ui/vbm/.library +1 -1
- package/src/sap/ui/vbm/Adapter.js +1 -1
- package/src/sap/ui/vbm/Adapter3D.js +4 -1
- package/src/sap/ui/vbm/ClusterBase.js +2 -2
- package/src/sap/ui/vbm/Viewport.js +7 -2
- package/src/sap/ui/vbm/adapter3d/ModelHandler.js +25 -14
- package/src/sap/ui/vbm/adapter3d/ObjectFactory.js +1 -1
- package/src/sap/ui/vbm/adapter3d/PolygonHandler.js +31 -25
- package/src/sap/ui/vbm/adapter3d/SceneBuilder.js +11 -2
- package/src/sap/ui/vbm/adapter3d/VBIJSONParser.js +1 -1
- package/src/sap/ui/vbm/lib/sapscene.js +1 -1
- package/src/sap/ui/vbm/lib/saputilities.js +5 -0
- package/src/sap/ui/vbm/library.js +2 -2
- package/src/sap/ui/vbm/themes/sap_fiori_3_hcb/AnalyticMap.less +4 -0
- package/src/sap/ui/vbm/themes/sap_fiori_3_hcb/VBI.less +96 -0
- package/src/sap/ui/vbm/themes/sap_fiori_3_hcb/library.source.less +3 -0
package/package.json
CHANGED
package/src/sap/ui/vbm/.library
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<name>sap.ui.vbm</name>
|
|
4
4
|
<vendor>SAP SE</vendor>
|
|
5
5
|
<copyright>SAP UI development toolkit for HTML5 (SAPUI5) (c) Copyright 2009-2012 SAP AG. All rights reserved</copyright>
|
|
6
|
-
<version>1.96.
|
|
6
|
+
<version>1.96.5</version>
|
|
7
7
|
|
|
8
8
|
<documentation>SAP UI library: sap.ui.vbm</documentation>
|
|
9
9
|
|
|
@@ -23,7 +23,7 @@ sap.ui.define([
|
|
|
23
23
|
* @param {string} [sId] id for the new control, generated automatically if no id is given
|
|
24
24
|
* @param {object} [mSettings] initial settings for the new object
|
|
25
25
|
* @author SAP SE
|
|
26
|
-
* @version 1.96.
|
|
26
|
+
* @version 1.96.5
|
|
27
27
|
* @extends sap.ui.core.Element
|
|
28
28
|
* @constructor
|
|
29
29
|
* @public
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @param {string} [sId] id for the new control, generated automatically if no id is given
|
|
43
43
|
* @param {object} [mSettings] initial settings for the new object
|
|
44
44
|
* @author SAP SE
|
|
45
|
-
* @version 1.96.
|
|
45
|
+
* @version 1.96.5
|
|
46
46
|
* @extends sap.ui.core.Element
|
|
47
47
|
* @constructor
|
|
48
48
|
* @public
|
|
@@ -247,7 +247,10 @@ sap.ui.define([
|
|
|
247
247
|
this._parser = null;
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
+
this._detail = null;
|
|
250
251
|
this._context = null;
|
|
252
|
+
this._raycaster = null;
|
|
253
|
+
this._hoverInstance = null;
|
|
251
254
|
|
|
252
255
|
if (basePrototype.exit) {
|
|
253
256
|
basePrototype.exit.call(this);
|
|
@@ -125,7 +125,7 @@ sap.ui.define([
|
|
|
125
125
|
clusterVos: {
|
|
126
126
|
type: "sap.ui.core.Control",
|
|
127
127
|
multiple: true,
|
|
128
|
-
|
|
128
|
+
visibility: "hidden",
|
|
129
129
|
singularName: "clusterVo"
|
|
130
130
|
},
|
|
131
131
|
/**
|
|
@@ -134,7 +134,7 @@ sap.ui.define([
|
|
|
134
134
|
clusterContainers: {
|
|
135
135
|
type: "sap.ui.vbm.ClusterContainer",
|
|
136
136
|
multiple: true,
|
|
137
|
-
|
|
137
|
+
visibility: "hidden",
|
|
138
138
|
singularName: "clusterContainer"
|
|
139
139
|
}
|
|
140
140
|
|
|
@@ -24,7 +24,7 @@ sap.ui.define([
|
|
|
24
24
|
*
|
|
25
25
|
* @public
|
|
26
26
|
* @author SAP SE
|
|
27
|
-
* @version 1.96.
|
|
27
|
+
* @version 1.96.5
|
|
28
28
|
* @extends sap.ui.core.Control
|
|
29
29
|
* @alias sap.ui.vbm.Viewport
|
|
30
30
|
*/
|
|
@@ -190,9 +190,14 @@ sap.ui.define([
|
|
|
190
190
|
}
|
|
191
191
|
this._stopRenderLoop();
|
|
192
192
|
|
|
193
|
+
this._cameraController.dispose();
|
|
194
|
+
this._cameraController = null;
|
|
195
|
+
|
|
196
|
+
this._renderer.dispose();
|
|
197
|
+
this._renderer = null;
|
|
198
|
+
|
|
193
199
|
this._scene = null;
|
|
194
200
|
this._camera = null;
|
|
195
|
-
this._renderer = null;
|
|
196
201
|
|
|
197
202
|
if (basePrototype.exit) {
|
|
198
203
|
basePrototype.exit.call(this);
|
|
@@ -30,9 +30,9 @@ sap.ui.define([
|
|
|
30
30
|
*
|
|
31
31
|
* @private
|
|
32
32
|
* @author SAP SE
|
|
33
|
-
* @version 1.96.
|
|
33
|
+
* @version 1.96.5
|
|
34
34
|
* @alias sap.ui.vbm.adapter3d.ModelHandler
|
|
35
|
-
*/
|
|
35
|
+
*/
|
|
36
36
|
var ModelHandler = BaseObject.extend("sap.ui.vbm.adapter3d.ModelHandler", /** @lends sap.ui.vbm.adapter3d.ModelHandler.prototype */ {
|
|
37
37
|
|
|
38
38
|
constructor: function(resources, textures, scene, root) {
|
|
@@ -95,11 +95,14 @@ sap.ui.define([
|
|
|
95
95
|
this._textures = null;
|
|
96
96
|
this._scene = null;
|
|
97
97
|
this._root = null;
|
|
98
|
+
this._hotInstance = null;
|
|
98
99
|
|
|
99
100
|
// destroy 'meta' meshes
|
|
100
|
-
this._meshes.forEach(function(
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
this._meshes.forEach(function(array) {
|
|
102
|
+
array.forEach(function(item) {
|
|
103
|
+
item.objects3D.forEach(function(object) {
|
|
104
|
+
this._deleteObject3D(object);
|
|
105
|
+
}, this);
|
|
103
106
|
}, this);
|
|
104
107
|
}, this);
|
|
105
108
|
|
|
@@ -109,15 +112,23 @@ sap.ui.define([
|
|
|
109
112
|
subRef(instance.texture);
|
|
110
113
|
}
|
|
111
114
|
});
|
|
112
|
-
|
|
115
|
+
|
|
113
116
|
// destroy models
|
|
114
117
|
this._models.forEach(function(model, resource) {
|
|
115
118
|
this._deleteModel(model);
|
|
116
119
|
}, this);
|
|
117
120
|
|
|
118
121
|
this._meshes.clear();
|
|
122
|
+
this._meshes = null;
|
|
123
|
+
|
|
119
124
|
this._instances.clear();
|
|
125
|
+
this._instances = null;
|
|
126
|
+
|
|
120
127
|
this._models.clear();
|
|
128
|
+
this._models = null;
|
|
129
|
+
|
|
130
|
+
this._glTFLoader = null;
|
|
131
|
+
this._colladaLoader = null;
|
|
121
132
|
|
|
122
133
|
BaseObject.prototype.destroy.call(this);
|
|
123
134
|
};
|
|
@@ -147,7 +158,7 @@ sap.ui.define([
|
|
|
147
158
|
* @param {object} instance Model instance.
|
|
148
159
|
* @public
|
|
149
160
|
*/
|
|
150
|
-
ModelHandler.prototype.updateInstance = function(instance) {
|
|
161
|
+
ModelHandler.prototype.updateInstance = function(instance) {
|
|
151
162
|
var data = this._instances.get(instance), update = false, hot = this._hotInstance && this._hotInstance === instance;
|
|
152
163
|
if (data) {
|
|
153
164
|
var normalized = Utilities.toBoolean(instance.normalize);
|
|
@@ -186,7 +197,7 @@ sap.ui.define([
|
|
|
186
197
|
}
|
|
187
198
|
update = true;
|
|
188
199
|
}
|
|
189
|
-
|
|
200
|
+
|
|
190
201
|
// when model normalization changed -> update model properties -> reset instance model matrices
|
|
191
202
|
if (propertyChanged(instance, ["normalize", "model"])) {
|
|
192
203
|
this._updateModel(data.model, normalized);
|
|
@@ -218,9 +229,9 @@ sap.ui.define([
|
|
|
218
229
|
if (data.matrices.length === 0) {
|
|
219
230
|
var world = this._root.matrixWorld.clone(); // start from the _root
|
|
220
231
|
world.multiply(data.world); // apply instance world matrix
|
|
221
|
-
|
|
232
|
+
|
|
222
233
|
// if instance normalized -> apply normalized model root matrix as otherwise (non normalized case) model root has identity matrix
|
|
223
|
-
if (normalized) {
|
|
234
|
+
if (normalized) {
|
|
224
235
|
world.multiply(data.model.normalized.world);
|
|
225
236
|
}
|
|
226
237
|
// apply individual mesh matrices from the model at last
|
|
@@ -254,7 +265,7 @@ sap.ui.define([
|
|
|
254
265
|
this._instances.delete(instance);
|
|
255
266
|
this._removeInstanceFromMesh(data);
|
|
256
267
|
instance._last = {}; // reset all LRU variables at once
|
|
257
|
-
|
|
268
|
+
|
|
258
269
|
if (data.model) {
|
|
259
270
|
subRef(data.model); // model can be null if removing 'broken' instance
|
|
260
271
|
}
|
|
@@ -429,7 +440,7 @@ sap.ui.define([
|
|
|
429
440
|
ModelHandler.prototype._postprocess = function(model, content) {
|
|
430
441
|
// mirror on Z axis entire collada root which is effectively the same as collada processing with baking transformations and inverting Z coordinates in ActiveX
|
|
431
442
|
model.scene.scale.set(1,1,-1);
|
|
432
|
-
|
|
443
|
+
|
|
433
444
|
var meshes = [], materials = new Set(), marked = "_sapUsed";
|
|
434
445
|
// collect meshes only + calculate world matrix, mark used materials & maps
|
|
435
446
|
model.scene.traverse(function(object) {
|
|
@@ -559,7 +570,7 @@ sap.ui.define([
|
|
|
559
570
|
// remove instanced mesh from scene
|
|
560
571
|
if (object.parent) {
|
|
561
572
|
object.parent.remove(object);
|
|
562
|
-
}
|
|
573
|
+
}
|
|
563
574
|
// geometries are shared -> cannot dispose
|
|
564
575
|
Utilities.toArray(object.material).forEach(function(material) {
|
|
565
576
|
material.dispose(); // materials are cloned -> can be disposed, maps are shared -> don't touch, cannot be disposes
|
|
@@ -583,7 +594,7 @@ sap.ui.define([
|
|
|
583
594
|
// target has to be added to _root to mimic original model and must have same world matrix as original model
|
|
584
595
|
// so we calculate world matrix for target which will be under _root and not under _scene as instance mesh
|
|
585
596
|
var world = data.world.clone(); // use instance world as starting point
|
|
586
|
-
if (data.model.normalized) {
|
|
597
|
+
if (data.model.normalized) {
|
|
587
598
|
world.multiply(data.model.normalized.world);
|
|
588
599
|
}
|
|
589
600
|
world.multiply(data.model.root.children[0].matrixWorld);
|
|
@@ -378,7 +378,7 @@ sap.ui.define([
|
|
|
378
378
|
*
|
|
379
379
|
* @private
|
|
380
380
|
* @author SAP SE
|
|
381
|
-
* @version 1.96.
|
|
381
|
+
* @version 1.96.5
|
|
382
382
|
* @alias sap.ui.vbm.adapter3d.ObjectFactory
|
|
383
383
|
*/
|
|
384
384
|
var ObjectFactory = BaseObject.extend("sap.ui.vbm.adapter3d.ObjectFactory", /** @lends sap.ui.vbm.adapter3d.ObjectFactory.prototype */ {});
|
|
@@ -33,9 +33,9 @@ sap.ui.define([
|
|
|
33
33
|
*
|
|
34
34
|
* @private
|
|
35
35
|
* @author SAP SE
|
|
36
|
-
* @version 1.96.
|
|
36
|
+
* @version 1.96.5
|
|
37
37
|
* @alias sap.ui.vbm.adapter3d.PolygonHandler
|
|
38
|
-
*/
|
|
38
|
+
*/
|
|
39
39
|
var PolygonHandler = BaseObject.extend("sap.ui.vbm.adapter3d.PolygonHandler", /** @lends sap.ui.vbm.adapter3d.PolygonHandler.prototype */ {
|
|
40
40
|
|
|
41
41
|
constructor: function(root) {
|
|
@@ -98,7 +98,7 @@ sap.ui.define([
|
|
|
98
98
|
PolygonHandler.prototype.destroy = function() {
|
|
99
99
|
// Reset references to shared objects.
|
|
100
100
|
this._root = null;
|
|
101
|
-
this.
|
|
101
|
+
this._hotInstance = null;
|
|
102
102
|
|
|
103
103
|
// destroy 'meta' meshes
|
|
104
104
|
this._meshes.forEach(function(key, array) {
|
|
@@ -113,10 +113,16 @@ sap.ui.define([
|
|
|
113
113
|
this._deleteObject3D(border.object3D);
|
|
114
114
|
}, this);
|
|
115
115
|
}, this);
|
|
116
|
-
|
|
116
|
+
|
|
117
117
|
// clear
|
|
118
|
+
this._instances.clear();
|
|
119
|
+
this._instances = null;
|
|
120
|
+
|
|
118
121
|
this._meshes.clear();
|
|
122
|
+
this._meshes = null;
|
|
123
|
+
|
|
119
124
|
this._borders.clear();
|
|
125
|
+
this._borders = null;
|
|
120
126
|
|
|
121
127
|
BaseObject.prototype.destroy.call(this);
|
|
122
128
|
};
|
|
@@ -136,11 +142,11 @@ sap.ui.define([
|
|
|
136
142
|
|
|
137
143
|
/**
|
|
138
144
|
* Adds polygon instance to polygon handler.
|
|
139
|
-
*
|
|
145
|
+
*
|
|
140
146
|
* @param {object} instance Polygon instance.
|
|
141
147
|
* @public
|
|
142
148
|
*/
|
|
143
|
-
PolygonHandler.prototype.addInstance = function(instance) {
|
|
149
|
+
PolygonHandler.prototype.addInstance = function(instance) {
|
|
144
150
|
this._instances.set(instance, {
|
|
145
151
|
instance : instance,
|
|
146
152
|
indices: [],
|
|
@@ -160,11 +166,11 @@ sap.ui.define([
|
|
|
160
166
|
|
|
161
167
|
/**
|
|
162
168
|
* Updates polygon instance in polygon handler
|
|
163
|
-
*
|
|
169
|
+
*
|
|
164
170
|
* @param {object} instance Polygon instance.
|
|
165
171
|
* @public
|
|
166
172
|
*/
|
|
167
|
-
PolygonHandler.prototype.updateInstance = function(instance) {
|
|
173
|
+
PolygonHandler.prototype.updateInstance = function(instance) {
|
|
168
174
|
var data = this._instances.get(instance), updateMesh = false, updateBorder = false;
|
|
169
175
|
if (data) {
|
|
170
176
|
// position, rotation, scale [mandatory attributes] when change -> recalculate matrix
|
|
@@ -187,7 +193,7 @@ sap.ui.define([
|
|
|
187
193
|
}
|
|
188
194
|
|
|
189
195
|
// if any property which affects polygon color changed -> check if polygon color actually changed
|
|
190
|
-
// then update polygon color and remove polygon from current 'meta' mesh if it exists
|
|
196
|
+
// then update polygon color and remove polygon from current 'meta' mesh if it exists
|
|
191
197
|
// and put it into another 'meta' mesh according to polygon updated color
|
|
192
198
|
// color, selectColor, VB:s [mandatory attributes]
|
|
193
199
|
if (propertyChanged(instance, ["color", "selectColor", "VB:s"])) {
|
|
@@ -328,13 +334,13 @@ sap.ui.define([
|
|
|
328
334
|
// create 3 or 2 groups, depends on where hot instance geometry is within 'meta' mesh geometry
|
|
329
335
|
geometry.addGroup(range.start, data.indices.length, 1); // use hot material with index #1
|
|
330
336
|
|
|
331
|
-
if (range.start !== 0) {
|
|
337
|
+
if (range.start !== 0) {
|
|
332
338
|
geometry.addGroup(0, range.start, 0); // use original material with index #0
|
|
333
339
|
}
|
|
334
340
|
if (range.start + data.indices.length < geometry.index.count) {
|
|
335
341
|
geometry.addGroup(range.start + data.indices.length, geometry.index.count - range.start - data.indices.length, 0); // use original material with index #0
|
|
336
342
|
}
|
|
337
|
-
}
|
|
343
|
+
}
|
|
338
344
|
}
|
|
339
345
|
if (data.border) { // apply hover on polygon border geometry
|
|
340
346
|
material = data.border.material;
|
|
@@ -364,13 +370,13 @@ sap.ui.define([
|
|
|
364
370
|
var vertexCount = data.lines.length/3;
|
|
365
371
|
geometry.addGroup(range.start, vertexCount, 1); // use hot material with index #1
|
|
366
372
|
|
|
367
|
-
if (range.start !== 0) {
|
|
373
|
+
if (range.start !== 0) {
|
|
368
374
|
geometry.addGroup(0, range.start, 0); // use original material with index #0
|
|
369
375
|
}
|
|
370
376
|
if (range.start + vertexCount < positions.count) {
|
|
371
377
|
geometry.addGroup(range.start + vertexCount, positions.count - range.start - vertexCount, 0); // use original material with index #0
|
|
372
378
|
}
|
|
373
|
-
}
|
|
379
|
+
}
|
|
374
380
|
}
|
|
375
381
|
} else {
|
|
376
382
|
Log.error("Unable to find polygon instance data", "", thisModule);
|
|
@@ -429,7 +435,7 @@ sap.ui.define([
|
|
|
429
435
|
|
|
430
436
|
/**
|
|
431
437
|
* Updates 'meta' meshes requested for rebuild by combining geometry of all instances with the same color into one mesh.
|
|
432
|
-
*
|
|
438
|
+
*
|
|
433
439
|
* @returns {boolean} True if hot instance 'meta' mesh has been recreated.
|
|
434
440
|
* @private
|
|
435
441
|
*/
|
|
@@ -440,11 +446,11 @@ sap.ui.define([
|
|
|
440
446
|
for (var i = 0; i < array.length;) {
|
|
441
447
|
if (array[i].dirty) {
|
|
442
448
|
var j, instance, base, indices = [], vertices = [], normals = [], data = array[i];
|
|
443
|
-
|
|
449
|
+
|
|
444
450
|
this._deleteObject3D(data.object3D);
|
|
445
451
|
data.object3D = null;
|
|
446
452
|
data.hitInfo.length = 0; // erase hitInfo
|
|
447
|
-
|
|
453
|
+
|
|
448
454
|
data.instances.forEach(function(range, key) {
|
|
449
455
|
instance = key; // to access instance outside forEach
|
|
450
456
|
|
|
@@ -480,24 +486,24 @@ sap.ui.define([
|
|
|
480
486
|
|
|
481
487
|
if (indices.length) {
|
|
482
488
|
var geometry = new THREE.BufferGeometry();
|
|
483
|
-
|
|
489
|
+
|
|
484
490
|
geometry.setIndex(indices);
|
|
485
491
|
geometry.setAttribute("position", new THREE.Float32BufferAttribute(vertices, 3));
|
|
486
492
|
geometry.setAttribute("normal", new THREE.Float32BufferAttribute(normals, 3));
|
|
487
493
|
geometry.computeBoundingBox(); // needed for ray casting
|
|
488
494
|
geometry.computeBoundingSphere(); // needed for ray casting
|
|
489
|
-
|
|
495
|
+
|
|
490
496
|
var material = createMaterial(true);
|
|
491
497
|
material.color.copy(instance.color.rgb);
|
|
492
498
|
material.opacity = instance.color.opacity;
|
|
493
499
|
material.transparent = material.opacity < 1;
|
|
494
500
|
material.needsUpdate = true;
|
|
495
|
-
|
|
501
|
+
|
|
496
502
|
data.object3D = new THREE.Mesh(geometry, material);
|
|
497
503
|
data.object3D.matrixAutoUpdate = false;
|
|
498
504
|
data.object3D.layers.set(0); // put it to layer #0 to enable raycasting
|
|
499
505
|
this._root.add(data.object3D);
|
|
500
|
-
|
|
506
|
+
|
|
501
507
|
data.object3D._instanceHitTest = this._instanceHitTest.bind(data); // helper function to return instance based on hit test info
|
|
502
508
|
data.triangleCount = indices.length/3; // update triangle count on full rebuild
|
|
503
509
|
}
|
|
@@ -528,7 +534,7 @@ sap.ui.define([
|
|
|
528
534
|
|
|
529
535
|
/**
|
|
530
536
|
* Updates 'meta' borders requested for rebuild by combining geometry of all instances with the same color into one mesh.
|
|
531
|
-
*
|
|
537
|
+
*
|
|
532
538
|
* @returns {boolean} True if hot instance 'meta' border has been recreated.
|
|
533
539
|
* @private
|
|
534
540
|
*/
|
|
@@ -566,13 +572,13 @@ sap.ui.define([
|
|
|
566
572
|
var geometry = new THREE.BufferGeometry();
|
|
567
573
|
geometry.setAttribute("position", new THREE.Float32BufferAttribute(vertices, 3));
|
|
568
574
|
geometry.computeBoundingBox();
|
|
569
|
-
|
|
575
|
+
|
|
570
576
|
var material = createLineMaterial();
|
|
571
577
|
material.color.copy(instance.colorBorder.rgb);
|
|
572
578
|
material.opacity = instance.colorBorder.opacity;
|
|
573
579
|
material.transparent = material.opacity < 1;
|
|
574
580
|
material.needsUpdate = true;
|
|
575
|
-
|
|
581
|
+
|
|
576
582
|
data.object3D = new THREE.LineSegments(geometry, material);
|
|
577
583
|
data.object3D.matrixAutoUpdate = false;
|
|
578
584
|
data.object3D.layers.set(1); // put it to layer #1 to disable hit test
|
|
@@ -740,10 +746,10 @@ sap.ui.define([
|
|
|
740
746
|
if (object) {
|
|
741
747
|
if (object.parent) {
|
|
742
748
|
object.parent.remove(object);
|
|
743
|
-
}
|
|
749
|
+
}
|
|
744
750
|
if (object.geometry) {
|
|
745
751
|
object.geometry.dispose();
|
|
746
|
-
}
|
|
752
|
+
}
|
|
747
753
|
Utilities.toArray(object.material).forEach(function(material) {
|
|
748
754
|
material.dispose(); // no maps to dispose
|
|
749
755
|
});
|
|
@@ -47,7 +47,7 @@ sap.ui.define([
|
|
|
47
47
|
*
|
|
48
48
|
* @private
|
|
49
49
|
* @author SAP SE
|
|
50
|
-
* @version 1.96.
|
|
50
|
+
* @version 1.96.5
|
|
51
51
|
* @alias sap.ui.vbm.adapter3d.SceneBuilder
|
|
52
52
|
*/
|
|
53
53
|
var SceneBuilder = BaseObject.extend("sap.ui.vbm.adapter3d.SceneBuilder", /** @lends sap.ui.vbm.adapter3d.SceneBuilder.prototype */ {
|
|
@@ -104,9 +104,11 @@ sap.ui.define([
|
|
|
104
104
|
this._scene = null;
|
|
105
105
|
this._viewport = null;
|
|
106
106
|
this._context = null;
|
|
107
|
+
this._hotInstance = null;
|
|
108
|
+
|
|
107
109
|
|
|
108
110
|
if (this._box4) {
|
|
109
|
-
this.
|
|
111
|
+
this._box4.dispose();
|
|
110
112
|
}
|
|
111
113
|
if (this._box6) {
|
|
112
114
|
this._box6.dispose();
|
|
@@ -122,15 +124,22 @@ sap.ui.define([
|
|
|
122
124
|
this._decalHelper.material.dispose();
|
|
123
125
|
this._decalHelper.geometry.dispose();
|
|
124
126
|
this._scene.remove(this._decalHelper);
|
|
127
|
+
this._decalHelper = null;
|
|
125
128
|
}
|
|
126
129
|
|
|
127
130
|
this._polygonHandler.destroy();
|
|
131
|
+
this._polygonHandler = null;
|
|
132
|
+
|
|
128
133
|
this._modelHandler.destroy();
|
|
134
|
+
this._modelHandler = null;
|
|
129
135
|
|
|
130
136
|
this._textures.forEach(function(texture) {
|
|
131
137
|
texture.dispose();
|
|
132
138
|
});
|
|
133
139
|
|
|
140
|
+
this._targets.clear();
|
|
141
|
+
this._targets = null;
|
|
142
|
+
|
|
134
143
|
BaseObject.prototype.destroy.call(this);
|
|
135
144
|
};
|
|
136
145
|
|
|
@@ -57,7 +57,7 @@ sap.ui.define([
|
|
|
57
57
|
*
|
|
58
58
|
* @private
|
|
59
59
|
* @author SAP SE
|
|
60
|
-
* @version 1.96.
|
|
60
|
+
* @version 1.96.5
|
|
61
61
|
* @alias sap.ui.vbm.adapter3d.VBIJSONParser
|
|
62
62
|
*/
|
|
63
63
|
var VBIJSONParser = BaseObject.extend("sap.ui.vbm.adapter3d.VBIJSONParser", /** @lends sap.ui.vbm.adapter3d.VBIJSONParser.prototype */ {
|
|
@@ -3358,7 +3358,7 @@ VBI.GeoScene = function(target, mapmanager, maplayerstack) {
|
|
|
3358
3358
|
}
|
|
3359
3359
|
var sCopyright = scene.m_MapLayerStack.GetCopyright();
|
|
3360
3360
|
if (sCopyright) {
|
|
3361
|
-
scene.m_DivCopyright.innerHTML =
|
|
3361
|
+
scene.m_DivCopyright.innerHTML = sCopyright;
|
|
3362
3362
|
} else {
|
|
3363
3363
|
scene.m_DivCopyright.style.paddingRight = 0;
|
|
3364
3364
|
scene.m_DivCopyright.style.paddingLeft = 0;
|
|
@@ -1892,6 +1892,11 @@ VBI.Utilities.AssembleCopyrightString = function(Copyright, CopyrightLink, Copyr
|
|
|
1892
1892
|
var regex3 = /\{LINK\|([^\}]+)\}/;
|
|
1893
1893
|
|
|
1894
1894
|
if (Copyright) {
|
|
1895
|
+
if (!CopyrightLink && !CopyrightImage) {
|
|
1896
|
+
Copyright = jQuery.sap.encodeHTML(Copyright);
|
|
1897
|
+
}
|
|
1898
|
+
CopyrightLink = CopyrightLink ? jQuery.sap.encodeHTML(CopyrightLink):CopyrightLink;
|
|
1899
|
+
CopyrightImage = CopyrightImage ? jQuery.sap.encodeHTML(CopyrightImage):CopyrightImage;
|
|
1895
1900
|
var tmp = Copyright.replace(regex1, "<a href='" + CopyrightLink + "'><img src='" + CopyrightImage + "' width='10' height='10' border='none'></a>");
|
|
1896
1901
|
tmp = tmp.replace(regex2, "<img src='" + CopyrightImage + "' width='10' height='10' border='none' >");
|
|
1897
1902
|
return tmp.replace(regex3, "<a href='" + CopyrightLink + "'>$1</a>");
|
|
@@ -20,7 +20,7 @@ sap.ui.define([
|
|
|
20
20
|
* @namespace
|
|
21
21
|
* @name sap.ui.vbm
|
|
22
22
|
* @author SAP SE
|
|
23
|
-
* @version 1.96.
|
|
23
|
+
* @version 1.96.5
|
|
24
24
|
* @public
|
|
25
25
|
*/
|
|
26
26
|
|
|
@@ -43,7 +43,7 @@ sap.ui.define([
|
|
|
43
43
|
"sap.ui.vbm.ClusterBase", "sap.ui.vbm.ClusterTree", "sap.ui.vbm.ClusterGrid", "sap.ui.vbm.ClusterDistance", "sap.ui.vbm.Heatmap",
|
|
44
44
|
"sap.ui.vbm.HeatPoint", "sap.ui.vbm.ClusterContainer", "sap.ui.vbm.Adapter", "sap.ui.vbm.Adapter3D"
|
|
45
45
|
],
|
|
46
|
-
version: "1.96.
|
|
46
|
+
version: "1.96.5"
|
|
47
47
|
});
|
|
48
48
|
|
|
49
49
|
sap.ui.loader.config({
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
|
|
2
|
+
.vbi-detail {
|
|
3
|
+
background-color: @sapUiBaseBG;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.vbi-detail-closebutton
|
|
7
|
+
{
|
|
8
|
+
background-color: @sapUiBaseBG;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.vbi-detail-content
|
|
12
|
+
{
|
|
13
|
+
background-color: @sapUiBaseBG;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.vbi-detail-phone
|
|
17
|
+
{
|
|
18
|
+
background-color: @sapUiBaseBG;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.vbi-detail > .vbi-detail-arrow.vbi-detail-left
|
|
22
|
+
{
|
|
23
|
+
border-right-color: @sapUiBaseBG;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.vbi-detail > .vbi-detail-header
|
|
27
|
+
{
|
|
28
|
+
font-size: @sapUiFontHeader4Size;
|
|
29
|
+
font-family: @sapUiFontHeaderFamily;
|
|
30
|
+
font-weight: @sapUiFontHeaderWeight;
|
|
31
|
+
color: @sapTextColor;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.vbi-detail-header-phone
|
|
35
|
+
{
|
|
36
|
+
font-family: @sapUiFontHeaderFamily;
|
|
37
|
+
font-weight: @sapUiFontHeaderWeight;
|
|
38
|
+
color: @sapTextColor;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.vbi-legend {
|
|
42
|
+
box-shadow: lighten(@sapUiContentForegroundColor, 20%) 0rem 0rem 0.9rem 0.0625rem;
|
|
43
|
+
font-family: @sapUiFontFamily;
|
|
44
|
+
background-color: @sapUiBaseBG;
|
|
45
|
+
color: @sapTextColor;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.vbi-legend > .vbi-legend-header
|
|
49
|
+
{
|
|
50
|
+
font-size: @sapMFontMediumSize;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.vbi-legend-button-col:hover
|
|
54
|
+
{
|
|
55
|
+
background-color: @sapUiHighlight;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.vbi-legend-button-col:active
|
|
59
|
+
{
|
|
60
|
+
background-color: darken(@sapUiHighlight, 20%);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.vbi-legend-button-exp:hover
|
|
64
|
+
{
|
|
65
|
+
background-color: @sapUiHighlight;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.vbi-legend-button-exp:active
|
|
69
|
+
{
|
|
70
|
+
background-color: darken(@sapUiHighlight, 20%);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.vbi-legend-table
|
|
74
|
+
{
|
|
75
|
+
font-size: @sapMFontSmallSize;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.vbi-legend-table-click
|
|
79
|
+
{
|
|
80
|
+
tr:hover {
|
|
81
|
+
background-color: @sapUiHighlight;
|
|
82
|
+
};
|
|
83
|
+
tr:active {
|
|
84
|
+
background-color: darken(@sapUiHighlight, 20%);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.vbi-legend-content-celltext
|
|
89
|
+
{
|
|
90
|
+
color: @sapUiChartLegendLabelFontColor;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.vbi-legend-content-celldiv-square
|
|
94
|
+
{
|
|
95
|
+
border-color: @sapUiContentForegroundColor;
|
|
96
|
+
}
|