• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

iTowns / itowns / 9318814291

31 May 2024 01:17PM UTC coverage: 89.593% (+0.2%) from 89.36%
9318814291

push

github

Desplandis
fix(deps): update babel and add @babel/core dependency

2706 of 3580 branches covered (75.59%)

Branch coverage included in aggregate %.

23294 of 25440 relevant lines covered (91.56%)

342.31 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

81.55
/src/Process/FeatureProcessing.js
1
import LayerUpdateState from 'Layer/LayerUpdateState';
1✔
2
import ObjectRemovalHelper from 'Process/ObjectRemovalHelper';
1✔
3
import handlingError from 'Process/handlerNodeError';
1✔
4
import Coordinates from 'Core/Geographic/Coordinates';
1✔
5
import { geoidLayerIsVisible } from 'Layer/GeoidLayer';
1✔
6

1✔
7
const coord = new Coordinates('EPSG:4326', 0, 0, 0);
1✔
8

1✔
9
export default {
1✔
10
    update(context, layer, node) {
1✔
11
        if (!node.parent && node.children.length) {
10!
12
            // if node has been removed dispose three.js resource
10!
13
            ObjectRemovalHelper.removeChildrenAndCleanupRecursively(layer, node);
×
14
            return;
10✔
15
        }
10✔
16
        if (!node.visible) {
10!
17
            return;
10✔
18
        }
10✔
19

10✔
20
        if (node.layerUpdateState[layer.id] === undefined) {
10✔
21
            node.layerUpdateState[layer.id] = new LayerUpdateState();
10!
22
        } else if (!node.layerUpdateState[layer.id].canTryUpdate()) {
×
23
            // toggle visibility features
×
24
            node.link[layer.id]?.forEach((f) => {
×
25
                f.layer.object3d.add(f);
×
26
                f.meshes.position.z = geoidLayerIsVisible(layer.parent) ? node.geoidHeight : 0;
10✔
27
                f.meshes.updateMatrixWorld();
10✔
28
            });
10✔
29
            return;
10!
30
        }
10✔
31

10✔
32
        const extentsDestination = node.getExtentsByProjection(layer.source.crs) || [node.extent];
10✔
33

10✔
34
        const zoomDest = extentsDestination[0].zoom;
10✔
35

10✔
36
        // check if it's tile level is equal to display level layer.
10✔
37
        // TO DO updata at all level asked
10✔
38
        // if ((zoomDest < layer.zoom.min && zoomDest > layer.zoom.max) ||
10✔
39
        if (zoomDest != layer.zoom.min ||
10✔
40
        // check if there's data in extent tile.
10✔
41
            !this.source.extentInsideLimit(node.extent, zoomDest) ||
10✔
42
        // In FileSource case, check if the feature center is in extent tile.
10!
43
            (layer.source.isFileSource && !node.extent.isPointInside(layer.source.extent.center(coord)))) {
10✔
44
        // if not, there's not data to add at this tile.
10✔
45
            node.layerUpdateState[layer.id].noMoreUpdatePossible();
10✔
46
            return;
10✔
47
        }
10✔
48

10✔
49
        node.layerUpdateState[layer.id].newTry();
10✔
50

10✔
51
        const command = {
10✔
52
            layer,
8✔
53
            extentsSource: extentsDestination,
8✔
54
            view: context.view,
8✔
55
            requester: node,
8✔
56
        };
8✔
57

8✔
58
        return context.scheduler.execute(command).then((featureMeshes) => {
8✔
59
            node.layerUpdateState[layer.id].noMoreUpdatePossible();
8✔
60

8✔
61
            featureMeshes.forEach((featureMesh) => {
8!
62
                if (featureMesh) {
8✔
63
                    node.link[layer.id] = node.link[layer.id] || [];
8!
64
                    featureMesh.as(context.view.referenceCrs);
8✔
65
                    featureMesh.meshes.position.z = geoidLayerIsVisible(layer.parent) ? node.geoidHeight : 0;
8!
66
                    featureMesh.updateMatrixWorld();
×
67

×
68
                    if (layer.onMeshCreated) {
×
69
                        layer.onMeshCreated(featureMesh, context);
8✔
70
                    }
8✔
71

8✔
72
                    if (!node.parent) {
8✔
73
                        // TODO: Clean cache needs a refactory, because it isn't really efficient and used
8!
74
                        ObjectRemovalHelper.removeChildrenAndCleanupRecursively(layer, featureMesh);
10✔
75
                    } else {
×
76
                        layer.object3d.add(featureMesh);
1✔
77
                        node.link[layer.id].push(featureMesh);
1✔
78
                    }
1✔
79
                    featureMesh.layer = layer;
1✔
80
                } else {
1✔
81
                    // TODO: verify if it's possible the featureMesh is undefined.
1✔
82
                    node.layerUpdateState[layer.id].failure(1, true);
1✔
83
                }
1✔
84
            });
1✔
85
        },
1✔
86
        err => handlingError(err, node, layer, node.level, context.view));
1✔
87
    },
1✔
88
};
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc