Library fo light pre-calculation based on real data (urban data and sun position). It's a project extract from 3DUSE separate from parsing operations and as such, with less dependency.
Sunlight is one repository of the Sunlight project, including :
We are using C++ 20 because we are using latest functionalities (optional, filesystem...).
- spdlog - v1.11.0.
- CMake 3.27.
In CMake, we will fetch all externals libraries to avoid external sources in VCity repository. For more information on how include the fetch content, click here.
More information here.
-
Install git LFS package
sudo apt-get install git-lfs
-
Clone the repository and move to sunlight folder.
git clone https://github.com/VCityTeam/Sunlight.git cd Sunlight
-
Fetch all cityGML files.
git lfs fetch --all
-
Create a build folder in Sunlight that will contains the build of sunlight.
mkdir build/
-
Compile Sunlight.
cd build/ cmake .. && make
This project is configured as a Library, building it as-is will not allow you to use it as a standalone.
To run it as a standalone application, you will have to modify the CMAKELIST.txt
, commenting the add library statement and uncommenting
the add_executable one, such that it looks like this.
# Add static library for pySunlight
#add_library(sunlight ${HEADERS} ${SRCS})
add_executable(sunlight ${SRCS} ${HEADERS})
The compiled executable will then run all the unit tests automaticaly. Commented code is available in the main function to run the app on OBJ files.
-
Clone the repository and move to sunlight folder.
git clone https://github.com/VCityTeam/Sunlight.git cd Sunlight
-
Create a build folder in Sunlight that will contains the build of sunlight.
-
Open CMake and specify the source code path (Sunlight folder) and the build binaries path (Sunlight/build).
-
Click on Configure, Generate then Open Project and you are good to go.
Running the executable will perform all of the implemented unit tests
./sunlight
Sunlight (repo)
├── datas # Datas use for testing
├── docs # Documentations (original charts...)
├── src # Source code
| ├── cores # Core program / Main functionality
| ├── maths # Mathematical and geometrical class
| ├── parsers # Annual sun position parser
| ├── utils # Small utils / helpers (timer, operators override...)
| ├── tests # Unit testing functions
|
├── .gitattributes # Define Large Files (.gml, .dat...)
├── .gitignore # Files/folders ignored by Git
├── CMakeLists.txt # CMake file to create a crossplatform software
├── README.md
Distributed under the LGPL-2.1 License. See LICENSE
and Libraries Licenses
for more information.
- Wesley Petit - Website - [email protected]
- Marwan Ait Addi - Website - [email protected]