# cesium-native **Repository Path**: huangch57/cesium-native ## Basic Information - **Project Name**: cesium-native - **Description**: No description available - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: 3d-tiles-and-draco - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-03 - **Last Updated**: 2024-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: ue ## README # Cesium Native Cesium Native is a set of C++ libraries for 3D geospatial, including: * [3D Tiles](https://github.com/CesiumGS/3d-tiles) runtime streaming * lightweight glTF serialization and deserialization, and * high-precision 3D geospatial math types and functions, including support for global-scale WGS84 ellipsoids. [![License](https://img.shields.io/:license-Apache_2.0-blue.svg)](https://github.com/CesiumGS/cesium-native/blob/main/LICENSE) [![Build Status](https://api.travis-ci.com/CesiumGS/cesium-native.svg?token=z6LPvn37d5E37hGcTgua&branch=main&status=passed)](https://travis-ci.com/CesiumGS/cesium-native) Currently Cesium Native is used to develop [Cesium for Unreal](https://github.com/CesiumGS/cesium-unreal). In the future, we plan for Cesium Native to be a foundational layer for any 3D geospatial software, especially those that want to stream 3D Tiles. ![Cesium for Unreal Architecture](./doc/unreal-architecture.png) *

A high-level architecture of Cesium for Unreal, Cesium Native and Unreal Engine streaming content from Cesium ion.

* ### :card_file_box:Libraries Overview | Library | Description | | -- | -- | | **Cesium3DTiles** | Runtime streaming, decoding, level of detail selection, culling, cache management, and decoding of 3D Tile. | | **CesiumAsync** | Classes for multi-threaded asynchronous tasks. | | **CesiumGeometry** | Common 3D geometry classes; and bounds testing, intersection testing, and spatial indexing algorithms. | | **CesiumGeospatial** | 3D geospatial math types and functions for ellipsoids, transforms, projections. | | **CesiumGltf** | Lightweight glTF processing and optimization functions. | | **CesiumGltfReader** | glTF deserialization / decoding, including glTF extension support (`KHR_draco_mesh_compression` etc). | | **CesiumGltfWriter** | glTF serialization / encoding, including glTF extension support. | | **CesiumIonClient** | Functions to access [Cesium ion](https://cesium.com/cesium-ion/) accounts and 3D tilesets using ion's REST API. | | **CesiumJsonReader** | Reads JSON from a buffer into statically-typed classes. | | **CesiumJsonWriter** | Writes JSON from statically-typed classes into a buffer. | | **CesiumUtility** | Utility functions for JSON parsing, URI processing, etc. | ### :green_book:License [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.html). Cesium Native is free for both commercial and non-commercial use. ## 💻Developers ### ⭐Prerequisites * Visual Studio 2017 (or newer), GCC v7.x+, Clang 10+. Other compilers may work but haven't been tested. * CMake ### :rocket:Getting Started #### Clone the repo Check out the repo with: ```bash git clone git@github.com:CesiumGS/cesium-native.git --recurse-submodules ``` If you forget the `--recurse-submodules`, nothing will work because the git submodules will be missing. You should be able to fix it with: ```bash git submodule update --init --recursive ``` #### Compile You can then build cesium-native on the command-line with CMake: ```bash ## Windows compilation using Visual Studio cmake -B build -S . -G "Visual Studio 15 2017 Win64" cmake --build build --config Debug cmake --build build --config Release ## Linux compilation cmake -B build -S . cmake --build build ``` Or, you can easily build it in Visual Studio Code with the `CMake Tools` extension installed. It should prompt you to generate project files from CMake. On Windows, choose `Visual Studio 2017 Release - amd64` as the kit to build. Or choose an appropriate kit for your platform. Then press Ctrl-Shift-P and execute the `CMake: Build` task or press F7. #### Generate Documentation * Install [Doxygen](https://www.doxygen.nl/). * Run: `cmake --build build --target cesium-native-docs` * Open `build/doc/html/index.html`