Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/karljj1/kdis
DIS(IEEE 1278.1) Fully Implemented in C++. A complete open source implementation of DIS (Distributed Interactive Simulation) in C++. 1278.1 and 1278.1a are fully implemented including enumerations. Includes several utility classes to help with developing your DIS app.
https://github.com/karljj1/kdis
cpp data-formats dis kdis networking protocols simulation
Last synced: 3 months ago
JSON representation
DIS(IEEE 1278.1) Fully Implemented in C++. A complete open source implementation of DIS (Distributed Interactive Simulation) in C++. 1278.1 and 1278.1a are fully implemented including enumerations. Includes several utility classes to help with developing your DIS app.
- Host: GitHub
- URL: https://github.com/karljj1/kdis
- Owner: karljj1
- License: bsd-2-clause
- Created: 2022-02-13T11:41:22.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-03-11T11:38:29.000Z (11 months ago)
- Last Synced: 2024-05-02T03:02:50.555Z (9 months ago)
- Topics: cpp, data-formats, dis, kdis, networking, protocols, simulation
- Language: C++
- Homepage:
- Size: 3.2 MB
- Stars: 20
- Watchers: 3
- Forks: 9
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# KDIS
[![release](https://github.com/karljj1/kdis/actions/workflows/release.yaml/badge.svg)](https://github.com/karljj1/kdis/actions/workflows/release.yaml)
[![codeql](https://github.com/karljj1/kdis/actions/workflows/codeql.yaml/badge.svg)](https://github.com/karljj1/kdis/actions/workflows/codeql.yaml)Open source implementation of `DIS` (_Distributed Interactive Simulation_) `IEEE 1278.1`
## Contributing
I would love to see your contribution :heart:
See [CONTRIBUTING](./CONTRIBUTING.md) guidelines
## Development
### Requirements
| **Name** | **Homepage** | **Required** | **Notes** |
| -------------- | ---------------------------------------------- | :----------------: | ----------------------------------------------------------------------------------------------------------------- |
| `CXX Compiler` | | :heavy_check_mark: | [`GCC`](https://gcc.gnu.org) \| [`Clang`](https://clang.llvm.org) \| [`MSVC`](https://visualstudio.microsoft.com) |
| `CMake` | | :heavy_check_mark: | _Version `>= 3.14`_ |
| `Clang Format` | | :x: |
| `Clang Tidy` | | :x: |
| `Cppcheck` | | :x: |
| `Cpplint` | | :x: | `pip install cpplint` |
| `cmake lang` | | :x: | `pip install cmakelang[YAML]` |
| `Doxygen` | | :x: | Documentation |### Build Options
| **Name** | **Description** | **Type** | **Default** |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ----------- |
| `DIS_VERSION` | `DIS` version:
- `5`
_IEEE 1278.1-1995_ - `6`
_IEEE 1278.1A-1998_ - `7`
_IEEE 1278.1x-2012_
| `KDIS_USE_ENUM_DESCRIPTORS` | Enumeration descriptors.
Allow `enum` values to be turned into their text labels.
:warning: Increase the memory footprint of the library | `BOOL` | `TRUE` |
| `KDIS_BUILD_DOCS` | Build documentation | `BOOL` | `FALSE` |
| `KDIS_BUILD_EXAMPLES` | Build examples | `BOOL` | `FALSE` |
| `KDIS_BUILD_TESTS` | Build tests | `BOOL` | `FALSE` |
| `BUILD_SHARED_LIBS` | Build shared library | `BOOL` | `TRUE` |
### Build
1. Generate project
> [!NOTE]
> Change build options' values as needed
```sh
cmake \
-S . \
-B ./build \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DDIS_VERSION:STRING=7 \
-DKDIS_USE_ENUM_DESCRIPTORS:BOOL=TRUE \
-DBUILD_SHARED_LIBS:BOOL=TRUE \
-DBUILD_DOCS:BOOL=FALSE \
-DBUILD_EXAMPLES:BOOL=FALSE \
-DBUILD_TESTS:BOOL=FALSE
```
1. Build project
> [!NOTE]
> Change value of `--config` to match value of `CMAKE_BUILD_TYPE`
```sh
cmake \
--build ./build \
--config Release
```
## Documentation
> [!IMPORTANT]
> `KDIS_BUILD_DOCS:BOOL=TRUE` required
File `index.html` available under [`build/docs/html`](./build/docs/html) directory
More information can be found in [`docs/README.md`](./docs/README.md)
## Examples
> [!IMPORTANT]
> `KDIS_BUILD_EXAMPLES:BOOL=TRUE` required
More information can be found in [`examples/README.md`](./examples/README.md)
## Scripts
More information can be found in [`scripts/README.md`](./scripts/README.md)
## Tests
> [!IMPORTANT]
> `KDIS_BUILD_TESTS:BOOL=TRUE` required
> [!NOTE]
> Change value of `--build-config` to match value of `CMAKE_BUILD_TYPE`
```sh
ctest \
--verbose \
--test-dir ./build/tests \
--build-config Release
```
More information can be found in [`tests/README.md`](./tests/README.md)
## License
This project is licensed under the [BSD 2-Clause](https://opensource.org/license/bsd-2-clause) "Simplified" License \
See [LICENSE](./LICENSE) file for details