Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 2024.4 #146

Open
wants to merge 107 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
4febfb0
* Add bounding radius vector point
Waguramu Jul 30, 2024
12444e9
Add missing file
Waguramu Jul 31, 2024
c188a72
* Add search history
Waguramu Aug 8, 2024
0af002c
* Add filtering prototype
Waguramu Aug 8, 2024
38a3035
Filter unique history values
Waguramu Aug 8, 2024
9c0d3e7
Fix layout bugs
Waguramu Aug 9, 2024
f8bdd39
Add basic search shortcut
Waguramu Aug 9, 2024
06d2917
Update search menu appearance with more icons and without tabView
Waguramu Aug 9, 2024
6c81eae
Remove commented lines
Waguramu Aug 13, 2024
9bffefa
* Add coreLib getGeometryType
Waguramu Sep 3, 2024
c86ec80
Remove unnecessary lines
Waguramu Sep 5, 2024
17d3755
* Add bounding radius vector point
Waguramu Jul 30, 2024
0004876
* Add search history
Waguramu Aug 8, 2024
dcaff06
Update search menu appearance with more icons and without tabView
Waguramu Aug 9, 2024
865b940
* Add coreLib getGeometryType
Waguramu Sep 3, 2024
341742a
* Add keyboard movement shortcuts
Waguramu Sep 3, 2024
70de75e
* Add M and R shortcuts
Waguramu Sep 9, 2024
2a74871
Refactor OnEnterClickDirective location
Waguramu Sep 9, 2024
710fbeb
Merge pull request #156 from ndsev/keyboard-controls
Waguramu Sep 9, 2024
09ab728
Added first implementations for PointMergeService.
josephbirkner Aug 7, 2024
34c36ae
Continued implementation of PointMergeService.
josephbirkner Aug 14, 2024
7b9c407
Add pointMergeGridCellSize to style.
josephbirkner Aug 14, 2024
fe06332
Refactor feature primitive IDs, add hover highlights.
josephbirkner Aug 16, 2024
2458f9a
FeatureLayerVisualization now creates new compound feature IDs.
josephbirkner Aug 19, 2024
84147ef
Apply options in feature filter expression.
josephbirkner Aug 20, 2024
fa59377
Update default style.
josephbirkner Aug 20, 2024
9a56356
Finished FeatureLayerVisualization changes for merged point features.
josephbirkner Aug 28, 2024
019c636
Fix picking for merged features.
josephbirkner Aug 29, 2024
424d3b6
Fix merged feature tile contributions.
josephbirkner Aug 29, 2024
337b284
Run ctest in CI.
josephbirkner Aug 31, 2024
e867432
Essential bugfixes for merged feature inspection and presentation.
josephbirkner Aug 31, 2024
8623f59
Fix FeatureTile.has function.
josephbirkner Aug 31, 2024
12096f6
Fix multi-selection panel header.
josephbirkner Aug 31, 2024
b9b627f
Fix jump-to-feature-reference.
josephbirkner Aug 31, 2024
73110bb
Simplify PointMergeService.
josephbirkner Aug 31, 2024
d85bc74
cmake: Conditionally forward toolchain file
johannes-wolf Sep 2, 2024
e0b8d92
Fix CMake list usage
johannes-wolf Sep 2, 2024
fc97c8d
Remove emsdk include from non-wasm header
johannes-wolf Sep 2, 2024
1858760
cmake: Run build-ui for emsdk builds only
johannes-wolf Sep 2, 2024
a1c5376
cmake: Fail on no-tests
johannes-wolf Sep 2, 2024
5f73f21
cmake: Enable testing
johannes-wolf Sep 2, 2024
8303e21
Feature Inspector: Always expand section nodes
johannes-wolf Aug 30, 2024
c1e4d6e
Feature Inspector: Show feature section source ref
johannes-wolf Aug 30, 2024
317c7dd
Inspector Panel: Reset source data selection
johannes-wolf Aug 30, 2024
fa08678
Inspector Panel: Fix source data click-through
johannes-wolf Aug 30, 2024
52f82bd
Update Github actions.
josephbirkner Sep 2, 2024
de497ec
Cesium Build fixes.
josephbirkner Sep 3, 2024
86de59c
Debug multi-selection refactoring.
josephbirkner Sep 4, 2024
3c8378c
Additional test fixes.
josephbirkner Sep 4, 2024
7827e1f
Update default style.
josephbirkner Sep 4, 2024
9961eff
Improved (hover-)highlight/(re-)selection behavior. Still got some bugs.
josephbirkner Sep 4, 2024
702cc24
Run tests in test folder.
josephbirkner Sep 5, 2024
c10e688
Fix picking/highlighting bugs.
josephbirkner Sep 5, 2024
e82482c
Update default style to improve z-ordering.
josephbirkner Sep 5, 2024
b5e381b
Add merged-point-visualization docs.
josephbirkner Sep 5, 2024
0ff9530
Refactor feature iteration to allow jump to feature
Waguramu Sep 10, 2024
746a1ac
Merge pull request #150 from ndsev/merged-features
Waguramu Sep 10, 2024
4ec4537
Allow webpack to auto-determine the app's public path.
josephbirkner Sep 11, 2024
89346d2
Merge pull request #158 from ndsev/auto-public-path
josephbirkner Sep 11, 2024
64dbf91
Fix search UI
Waguramu Sep 12, 2024
674bc4d
Fix virtual scroll container height for Feature Search (not final)
Waguramu Sep 12, 2024
f7e0d52
Update search to hide on Esc key
Waguramu Sep 12, 2024
2a8b73b
* Replace source data header with dropdown
Waguramu Sep 12, 2024
d8d753b
Add tileId (Mapget) in source data header
Waguramu Sep 12, 2024
76abb5f
Add memory debugging utilties.
josephbirkner Sep 13, 2024
080c925
Move away from shared_ptr in emscripten interface.
josephbirkner Sep 13, 2024
a60a816
Fix missing merged points.
josephbirkner Sep 13, 2024
6b027e1
Fix missing feature.delete()
josephbirkner Sep 13, 2024
9ea1f08
Fix test-visualization.cpp
josephbirkner Sep 13, 2024
3701de1
Fix user-after-free for InspectionNode.
josephbirkner Sep 13, 2024
cf27986
Fix overlap of search panel with feature search
Waguramu Sep 13, 2024
b297b32
Fix top search history entry in the URL if it is removed
Waguramu Sep 13, 2024
8a730d1
Fix header separators in source data
Waguramu Sep 13, 2024
b4a9646
Restore Esc functionality (temporary)
Waguramu Sep 13, 2024
e30c621
Add handling for inspection panels size retention
Waguramu Sep 16, 2024
c5bd400
* Add bounding radius vector point
Waguramu Jul 30, 2024
7bc63af
* Add search history
Waguramu Aug 8, 2024
56f4b7a
* Add coreLib getGeometryType
Waguramu Sep 3, 2024
3f76664
* Add keyboard movement shortcuts
Waguramu Sep 3, 2024
fab58d4
Add datasource config UI
Waguramu Sep 9, 2024
541584e
Refactoring
Waguramu Sep 9, 2024
88c3210
Fix reported error messages
Waguramu Sep 10, 2024
830e7c2
Fix eslint complaints.
josephbirkner Sep 16, 2024
586bf05
Do not request selection tiles for unavailable map layers.
josephbirkner Sep 18, 2024
aa4692d
Use style options for highlights as well.
josephbirkner Sep 18, 2024
4c209ec
Attach mapId to feature inspection nodes.
josephbirkner Sep 18, 2024
00fa34e
Merge pull request #157 from ndsev/datasource-config
josephbirkner Sep 18, 2024
e720a9a
* Fix broken mobile layout.
Waguramu Sep 19, 2024
a41599c
* Fix resizing inspection panels in Safari.
Waguramu Sep 19, 2024
e477897
* Fix styles expand chevron states.
Waguramu Sep 19, 2024
023f87b
* Fix style export for Angular 18.
Waguramu Sep 19, 2024
9ce9a0e
* Fix missing file uploader / conditional clickout for search panel.
Waguramu Sep 19, 2024
0a86574
Fix mapId forwarding.
josephbirkner Sep 19, 2024
e77dfd3
Fix error display for SourceDataLayers
josephbirkner Sep 23, 2024
317109e
Include current point in mergeCount.
josephbirkner Sep 23, 2024
5accfc3
Fix style options (plus missing changes for sourcedata error display).
josephbirkner Sep 23, 2024
503bb18
Improvements for the datasource editor (without fix for layout and pr…
josephbirkner Sep 23, 2024
44d756e
Fix crash when resetting style.
josephbirkner Sep 23, 2024
fd4e677
Fix style editor panel content.
josephbirkner Sep 23, 2024
e195be2
Added loading screen.
josephbirkner Sep 23, 2024
e96e9a2
Fix merged-point mergeCount calculation.
josephbirkner Sep 24, 2024
b426d8c
Fix labels for merged points.
josephbirkner Sep 24, 2024
c2d158e
* Allow only a single editor.
Waguramu Sep 24, 2024
444d8fc
* Fix fonts in inspection panel.
Waguramu Sep 24, 2024
522e7f1
* Fix key controls button.
Waguramu Sep 24, 2024
e26fd03
deps: Fix mapget commit by using latest compatible one.
MisterGC Sep 24, 2024
3499c89
* Update keyboard controls dialog CSS.
Waguramu Sep 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/workflows/build-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ name: build-release

on:
push:
branches:
- 'feature/renderer-wasm-demo'
pull_request:
workflow_dispatch:

Expand Down
27 changes: 27 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: build-test

on:
push:
pull_request:
workflow_dispatch:

jobs:
build-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install build dependencies
run: sudo apt-get install ninja-build

- name: Compile
run: |
mkdir build-test && cd build-test
cmake -GNinja -DCMAKE_BUILD_TYPE=Debug ..
cmake --build .

- name: Run Tests
run: |
cd build-test/test
ctest --verbose --no-tests=error
16 changes: 7 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ message("Building for ${CMAKE_SYSTEM_NAME}.")

FetchContent_Declare(mapget
GIT_REPOSITORY "https://github.com/Klebert-Engineering/mapget"
GIT_TAG "main"
GIT_TAG "718c4be"
GIT_SHALLOW ON)
FetchContent_MakeAvailable(mapget)

Expand All @@ -33,17 +33,15 @@ FetchContent_MakeAvailable(yaml-cpp)
include(cmake/cesium.cmake)

# Erdblick Core Library

add_subdirectory(libs/core)

if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Emscripten")
add_subdirectory(test)
else()
# Angular Build
add_custom_target(erdblick-ui ALL
COMMAND bash "${CMAKE_SOURCE_DIR}/build-ui.bash" "${CMAKE_SOURCE_DIR}"
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
DEPENDS erdblick-core)
endif()

# Angular Build

add_custom_target(erdblick-ui ALL
COMMAND bash "${CMAKE_SOURCE_DIR}/build-ui.bash" "${CMAKE_SOURCE_DIR}"
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
DEPENDS erdblick-core
)
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Each rule within the YAML `rules` array can have the following fields:
|-------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------|--------------------------------------|
| `geometry` | List of geometry type(s) or single type the rule applies to. | At least one of `"point"`,`"mesh"`, `"line"`, `"polygon"`. | `["point", "mesh"]`, `line` |
| `aspect` | Specifies the aspect to which the rule applies: `"feature"`, `"relation"`, or `"attribute"`. | String | `"feature"`, `"relation"` |
| `mode` | Specifies the mode: `"normal"` or `"highlight"`. | String | `"normal"`, `"highlight"` |
| `mode` | Specifies the highlight mode: `"none"` or `"hover"` or `"selection"`. | String | `"none"`, `"hover"` |
| `type` | A regular expression to match against a feature type. | String | `"Lane\|Boundary"` |
| `filter` | A [simfil](https://github.com/klebert-engineering/simfil) filter expression over the feature's JSON representation. | String | `*roadClass == 4` |
| `selectable` | Indicates if the feature is selectable. | Boolean | `true`, `false` |
Expand All @@ -80,6 +80,7 @@ Each rule within the YAML `rules` array can have the following fields:
| `flat` | Clamps the feature to the ground (Does not work for meshes). | Boolean | `true`, `false` |
| `outline-color` | Point outline color. | String | `green`, `#fff` |
| `outline-width` | Point outline width in px. | Float | `3.6` |
| `point-merge-grid-cell` | WGS84/altutide meter tolerance for merging point visualizations. | Array of three Floats. | `[0.000000084, 0.000000084, 0.01]` |
| `near-far-scale` | For points, indicate (`near-alt-meters`, `near-scale`, `far-alt-meters`, `far-scale`). | Array of four Floats. | `[1.5e2,10,8.0e6,0]` |
| `offset` | Apply a fixed offset to each shape-point in meters. Can be used for z-ordering. | Array of three Floats. | `[0, 0, 5]` |
| `arrow` | For arrow-heads: One of `none`, `forward`, `backward`, `double`. Not compatible with `dashed`. | String | `single` |
Expand Down Expand Up @@ -230,6 +231,17 @@ For attributes, style expressions (e.g. `color-expression`) are evaluated in a c
set the `offset` field. The spatial `offset` will be multiplied, so it is possible to "stack" attributes
over a feature.

### About Merged Point Visualizations

By setting `point-merge-grid-cell`, a tolerance may be defined which allows merging the visual representations
of point features which share the same 3D spatial cell, map, layer, and style rule. This has two advantages:

* **Multi-Selection**: When selecting the merged representation, a multi-selection of all merged features happens.
* **Logical Evaluation using `$mergeCount`**: In some map formats, it may be desirable to apply a style based on the number of merged points.
This may be done to display a warning, or to check a matching requirement.
To this end, the `$mergeCount` variable is injected into each simfil evaluation context of a merged-point style rule.
Check out the default style for an example.

### About `first-of`

Normally, all style rules from a style sheet are naively applied to all matching features.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2024.3.2
2024.4.0
14 changes: 11 additions & 3 deletions cmake/cesium.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,18 @@ set(CESIUM_LIBS
CesiumGltf
CesiumGltfWriter)

# Use fetch content for cloning the repository durring
# Use fetch content for cloning the repository during
# configure phase. We do not call `FetchContent_MakeAvailable`,
# but instead use `ExternalProject_Add` to compile Cesium in
# isolation.
FetchContent_Declare(cesiumnative_src
GIT_REPOSITORY "https://github.com/Klebert-Engineering/cesium-native.git"
GIT_TAG "main"
GIT_SUBMODULES_RECURSE YES
GIT_PROGRESS YES)
GIT_PROGRESS YES
PATCH_COMMAND git reset --hard HEAD && git -C extern/draco reset --hard HEAD && git apply "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cesium.patch"
UPDATE_DISCONNECTED YES
UPDATE_COMMAND "")

FetchContent_GetProperties(cesiumnative_src)
if (NOT cesiumnative_src_POPULATED)
Expand All @@ -49,6 +52,11 @@ foreach (lib ${CESIUM_LIBS})
endforeach()
message(STATUS "cesium byproducts: ${CESIUM_BYPRODUCTS}")

set(CESIUM_EXTRA_ARGS)
if (CMAKE_TOOLCHAIN_FILE)
list(APPEND CESIUM_EXTRA_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
endif()

ExternalProject_Add(cesiumnative
SOURCE_DIR ${cesiumnative_src_SOURCE_DIR}
CMAKE_ARGS
Expand All @@ -58,8 +66,8 @@ ExternalProject_Add(cesiumnative
-DCESIUM_TRACING_ENABLED=OFF
-DDRACO_JS_GLUE=OFF
-DBUILD_SHARED_LIBS=OFF
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
${CESIUM_EXTRA_ARGS}
BUILD_BYPRODUCTS
${CESIUM_BYPRODUCTS}
INSTALL_COMMAND ""
Expand Down
47 changes: 47 additions & 0 deletions cmake/cesium.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
index c928fdf..cf6a63b 100644
--- a/extern/draco/src/draco/io/file_utils.h
+++ b/extern/draco/src/draco/io/file_utils.h
@@ -17,6 +17,7 @@

#include <string>
#include <vector>
+#include <cstdint>

namespace draco {

diff --git a/CesiumAsync/include/CesiumAsync/CacheItem.h b/CesiumAsync/include/CesiumAsync/CacheItem.h
index 20d1ca80..bd47492b 100644
--- a/CesiumAsync/include/CesiumAsync/CacheItem.h
+++ b/CesiumAsync/include/CesiumAsync/CacheItem.h
@@ -9,6 +9,7 @@
#include <ctime>
#include <map>
#include <vector>
+#include <cstdint>

namespace CesiumAsync {

diff --git a/CesiumAsync/include/CesiumAsync/IAssetResponse.h b/CesiumAsync/include/CesiumAsync/IAssetResponse.h
index 10519057..0944b26b 100644
--- a/CesiumAsync/include/CesiumAsync/IAssetResponse.h
+++ b/CesiumAsync/include/CesiumAsync/IAssetResponse.h
@@ -8,6 +8,7 @@
#include <cstddef>
#include <map>
#include <string>
+#include <cstdint>

namespace CesiumAsync {

diff --git a/CesiumIonClient/src/fillWithRandomBytes.h b/CesiumIonClient/src/fillWithRandomBytes.h
index 55765c72..654d09df 100644
--- a/CesiumIonClient/src/fillWithRandomBytes.h
+++ b/CesiumIonClient/src/fillWithRandomBytes.h
@@ -1,6 +1,7 @@
#pragma once

#include <gsl/span>
+#include <cstdint>

namespace CesiumIonClient {

63 changes: 58 additions & 5 deletions config/styles/default-style.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,68 @@
name: DefaultStyle
version: 1.0
options:
- label: Show Meshes/Polygons
id: showMesh
default: false
- label: Show Points
id: showPoint
default: true
- label: Show Lines
id: showLine
default: true

rules:
# Normal styles
- geometry: ["mesh", "polygon"]
filter: showMesh
color: teal
opacity: 0.8
- geometry: ["point", "line"]
offset: [0, 0, -0.4]
- geometry: ["line"]
filter: showLine
color: moccasin
opacity: 1.0
width: 1.0
- geometry: ["point", "line", "mesh", "polygon"]
width: 5.0
offset: [0, 0, -0.2]
- geometry: ["point"]
point-merge-grid-cell: [0.000000084, 0.000000084, 0.01]
filter: showPoint
color-expression: "$mergeCount > 1 and 'brown' or 'moccasin'"
opacity: 1.0
width: 15.0

# Hover/Selection styles
- geometry: ["mesh", "polygon"]
color: orange
opacity: 1.0
mode: hover
offset: [0, 0, -0.3]
- geometry: ["line"]
color: orange
opacity: 1.0
width: 10.0
mode: hover
offset: [0, 0, -0.1]
- geometry: ["point"]
color: orange
opacity: 1.0
width: 20.0
mode: hover
offset: [0, 0, 0.1]
- geometry: ["mesh", "polygon"]
color: red
opacity: 1.0
mode: selection
offset: [0, 0, -0.3]
- geometry: ["line"]
color: red
opacity: 1.0
width: 10.0
mode: selection
offset: [0, 0, -0.1]
- geometry: ["point"]
color: red
opacity: 1.0
width: 4.0
mode: highlight
width: 20.0
mode: selection
offset: [0, 0, 0.1]
7 changes: 3 additions & 4 deletions erdblick_app/app/app.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {filter} from "rxjs";
<erdblick-view></erdblick-view>
<map-panel></map-panel>
<p-toast position="top-center" key="tc"></p-toast>
<search-panel #searchoverlay></search-panel>
<search-panel></search-panel>
<inspection-panel></inspection-panel>
<pref-components></pref-components>
<coordinates-panel></coordinates-panel>
Expand All @@ -33,9 +33,8 @@ import {filter} from "rxjs";
})
export class AppComponent {

title: string = 'erdblick';
version: string = "v0.3.0";
searchValue: string = ""
title: string = "erdblick";
version: string = "";

constructor(private httpClient: HttpClient,
private router: Router,
Expand Down
Loading
Loading