From 8c5e441d43f2bf5c20cfc047dab17236f0f88dc8 Mon Sep 17 00:00:00 2001 From: Martin Gerhardy Date: Thu, 14 May 2020 23:30:57 +0200 Subject: [PATCH] DOXYGEN: updated doxygen to use mcss and fixed markdown linting --- CMakeLists.txt | 1 + Doxyfile-mcss.in | 13 ++ Doxyfile.in | 20 +- README.md | 17 +- docs/Compilation.md | 2 +- docs/Configuration.md | 6 +- docs/Dependencies.md | 38 ++-- docs/GameDesign.md | 6 +- docs/Setup.md | 3 +- src/doxygen.h | 10 +- src/modules/ai/README.md | 5 - src/modules/ai/SimpleAI.h | 79 +------- src/modules/ai/filter/IFilter.h | 22 +-- src/modules/core/App.h | 5 +- src/modules/core/Common.h | 3 - src/modules/network/README.md | 14 +- src/modules/noise/Noise.h | 4 +- src/modules/persistence/PersistenceMgr.h | 3 + src/modules/persistence/README.md | 22 ++- src/modules/shared/README.md | 2 +- src/modules/shared/SharedMovement.h | 3 + .../ui/turbobadger/tb/{LICENSE.md => LICENSE} | 0 src/modules/video/Renderer.h | 2 +- src/modules/video/Types.h | 3 + src/modules/voxel/Region.cpp | 46 ++--- src/modules/voxel/Region.h | 173 +++++++++--------- src/modules/voxel/Voxel.h | 9 + src/modules/voxelgenerator/LSystem.h | 9 + src/modules/voxelgenerator/NoiseGenerator.h | 3 + src/modules/voxelgenerator/TreeGenerator.h | 3 + src/modules/voxelrender/RawVolumeRenderer.h | 3 + src/modules/voxelworld/WorldMgr.h | 7 +- src/modules/voxelworldrender/WorldRenderer.h | 3 + src/tests/README.md | 55 +++--- src/tests/testanimation/README.md | 2 +- src/tests/testbiomes/README.md | 2 +- src/tools/computeshadertool/README.md | 3 +- src/tools/databasetool/README.md | 33 ++-- src/tools/rcon/README.md | 4 +- src/tools/shadertool/README.md | 4 +- src/tools/thumbnailer/README.md | 8 +- src/tools/voxedit/README.md | 23 ++- src/tools/voxedit/ui/editorscene/Viewport.h | 3 +- 43 files changed, 346 insertions(+), 330 deletions(-) create mode 100644 Doxyfile-mcss.in delete mode 100644 src/modules/ai/README.md rename src/modules/ui/turbobadger/tb/{LICENSE.md => LICENSE} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7aba44d52..8e061239d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -209,6 +209,7 @@ message(STATUS "Generate config.h in ${CMAKE_CURRENT_BINARY_DIR}") find_package(Doxygen) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile-mcss.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile-mcss @ONLY) if (DOXYGEN_FOUND) add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} diff --git a/Doxyfile-mcss.in b/Doxyfile-mcss.in new file mode 100644 index 000000000..702325082 --- /dev/null +++ b/Doxyfile-mcss.in @@ -0,0 +1,13 @@ +@INCLUDE = Doxyfile +GENERATE_HTML = NO +GENERATE_XML = YES +XML_PROGRAMLISTING = NO + +M_LINKS_NAVBAR1 = \ + "about dependencies building configuration setup" \ + "pages" \ + "modules" \ + "namespaces" + +M_LINKS_NAVBAR2 = \ + "annotated" diff --git a/Doxyfile.in b/Doxyfile.in index 49f999c51..8b8c5f78b 100644 --- a/Doxyfile.in +++ b/Doxyfile.in @@ -152,7 +152,7 @@ FULL_PATH_NAMES = YES # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. -STRIP_FROM_PATH = @ROOT_DIR@/src +STRIP_FROM_PATH = @ROOT_DIR@ # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which @@ -733,7 +733,7 @@ WARNINGS = YES # will automatically be disabled. # The default value is: YES. -WARN_IF_UNDOCUMENTED = YES +WARN_IF_UNDOCUMENTED = NO # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters @@ -783,7 +783,9 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = @CMAKE_CURRENT_SOURCE_DIR@/src/ \ +INPUT = @ROOT_DIR@/src/ \ + @ROOT_DIR@/docs/ \ + @ROOT_DIR@/README.md \ @GENERATE_DIR@ # This tag can be used to specify the character encoding of the source files @@ -809,7 +811,7 @@ INPUT_ENCODING = UTF-8 # *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, # *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. -FILE_PATTERNS = +FILE_PATTERNS = *.cpp *.h *.md # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. @@ -824,7 +826,9 @@ RECURSIVE = YES # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = @CMAKE_CURRENT_SOURCE_DIR@/src/tools/glslang +EXCLUDE = @CMAKE_CURRENT_SOURCE_DIR@/src/tools/glslang \ + @CMAKE_CURRENT_SOURCE_DIR@/contrib \ + @CMAKE_CURRENT_SOURCE_DIR@/src/tests/testtraze/json.hpp # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded @@ -877,7 +881,7 @@ EXAMPLE_RECURSIVE = NO # that contain images that are to be included in the documentation (see the # \image command). -IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/docs/ +IMAGE_PATH = @ROOT_DIR@/docs/ # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program @@ -2032,7 +2036,7 @@ SEARCH_INCLUDES = YES # preprocessor. # This tag requires that the tag SEARCH_INCLUDES is set to YES. -INCLUDE_PATH = +INCLUDE_PATH = @ROOT_DIR@/docs @ROOT_DIR@/contrib/libs/ # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the @@ -2443,3 +2447,5 @@ GENERATE_LEGEND = YES # This tag requires that the tag HAVE_DOT is set to YES. DOT_CLEANUP = YES + +XML_NS_MEMB_FILE_SCOPE = YES diff --git a/README.md b/README.md index 66d12d12e..a7c2d7138 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ +# About {#about} + [![Actions Status](https://github.com/mgerhardy/engine/workflows/build/badge.svg)](https://github.com/mgerhardy/engine/actions) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -# About Voxel engine for mmorpg game and tools. Includes [behaviour tree](src/server/lua/ai/README.md) based ai, a remote ai debugger, a voxel editor and a lot more. @@ -16,7 +17,8 @@ Join our [discord Server](https://discord.gg/AgjCPXy) and help developing the ga You can find some old and most likely outdated videos in my [youtube channel](https://www.youtube.com/channel/UCbnJUW0d4tYvdmsJ-R6iUpA) or the media channel of the discord server. -# Tools +## Tools + * [The voxel editor](src/tools/voxedit/README.md) * [Filemanager Thumbnailer](src/tools/thumbnailer/README.md) * [World viewer](src/tools/mapview/README.md) @@ -26,21 +28,24 @@ You can find some old and most likely outdated videos in my [youtube channel](ht * [Compute Shader tool](src/tools/computeshadertool/README.md) * [Visual test applications](src/tests/README.md) -# General +## General + * [Dependencies](docs/Dependencies.md) * [Compilation](docs/Compilation.md) * [Setup](docs/Setup.md) * [Configuration](docs/Configuration.md) * [GameDesign](docs/GameDesign.md) -# Running the tests +## Running the tests + The tests need a postgres database named `enginetest` and a user named `engine` with the password.... `engine` (you can modify them via cvars). If no OpenGL or OpenCL context is available, the related tests are skipped. You can use the docker-compose files to set up your environment. -# Profiling +## Profiling + In order to compile with profiling support. You should clone with submodules. This will also get the [tracy](https://github.com/wolfpld/tracy) code. -# Images +## Images ![image](https://raw.githubusercontent.com/wiki/mgerhardy/engine/images/gliding-2020-02-23.png) diff --git a/docs/Compilation.md b/docs/Compilation.md index 7d8c9e6c5..a09e1e4fe 100644 --- a/docs/Compilation.md +++ b/docs/Compilation.md @@ -1,4 +1,4 @@ -# Building +# Building {#building} ## Linux diff --git a/docs/Configuration.md b/docs/Configuration.md index a303c20ed..1be5c535d 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -1,4 +1,4 @@ -# Configuration +# Configuration {#configuration} ## Variables @@ -26,14 +26,14 @@ in-game console (`CTRL+Tab` in the default binding). You can also modify or add key bindings to commands. Type `bindlist` to the console to get a list of the current active bindings (and also here: they might differ from application to application). The command `bind` can be used to configure keybindings on-the-fly. These bindings are saved to a file on shutdown. -# Logging +## Logging You can either log via syslog (on unix) or to stdout (this might of course differ from platform to platform). The log level is configured by the `core_loglevel` variable. The lower the value, the more you see. `0` is the highest log level (trace). -# General +## General To get a rough usage overview, you can start an application with `--help`. It will print out the commands and configuration variables with a description and hints how to modify/use them. diff --git a/docs/Dependencies.md b/docs/Dependencies.md index f26d5ff0f..d306c9069 100644 --- a/docs/Dependencies.md +++ b/docs/Dependencies.md @@ -1,4 +1,5 @@ -# Dependencies +# Dependencies {#dependencies} + * cmake * ninja-build * postgre @@ -22,24 +23,37 @@ of them are also bundled with the application. But local installed headers alway the higher priority. ## Debian - apt-get install libglm-dev lua5.3 liblua5.3-dev libsdl2-dev postgresql-server-dev-all \ - libpq-dev libenet-dev qt5-default qttools5-dev qttools5-dev-tools opencl-c-headers \ - wayland-protocols pkg-config uuid-dev libsdl2-mixer-dev + +```bash +apt-get install libglm-dev lua5.3 liblua5.3-dev libsdl2-dev postgresql-server-dev-all \ + libpq-dev libenet-dev qt5-default qttools5-dev qttools5-dev-tools opencl-c-headers \ + wayland-protocols pkg-config uuid-dev libsdl2-mixer-dev +``` If you want to run the database server locally, you have to install the postgres server package: - apt-get install postgresql-10 postgresql-contrib +```bash +apt-get install postgresql-10 postgresql-contrib +``` - CREATE EXTENSION pgcrypto; - -## Arch Linux - pacman [...] +```sql +CREATE EXTENSION pgcrypto; +``` ## MacPorts - port install qt5 postgresql95-server + +```bash +port install qt5 postgresql95-server +``` ## Brew - brew install qt5 mosquitto libuv sdl2 libpq sdl2_mixer + +```bash +brew install qt5 mosquitto libuv sdl2 libpq sdl2_mixer +``` ## Windows - vcpkg install sdl2 libuv libpq lua glm glslang gtest qt5 mosquitto + +```bash +vcpkg install sdl2 libuv libpq lua glm glslang gtest qt5 mosquitto +``` diff --git a/docs/GameDesign.md b/docs/GameDesign.md index 57b9a38a9..64445eec2 100644 --- a/docs/GameDesign.md +++ b/docs/GameDesign.md @@ -1,4 +1,4 @@ -# General +# Game Design {#gamedesign} This is about an mmorpg in a fantasy like world. @@ -15,5 +15,5 @@ The entities in the island simulation have a profession where you can decide wha There is a value that indicates whether it's still reasonable to continue with that particular profession. If the entity - for some reason - can't continue with the current job, that value decreases and the entity will try to pick another free job. -Before quitting the job, the entity will report this as an impediment in the corresponding townhall as a quest -- asking for help. +Before quitting the job, the entity will report this as an impediment in the corresponding townhall as a +quest - asking for help. diff --git a/docs/Setup.md b/docs/Setup.md index e1bb0d441..a4f139079 100644 --- a/docs/Setup.md +++ b/docs/Setup.md @@ -1,4 +1,5 @@ -# Setup +# Setup {#setup} + ## PostgreSQL first sudo as postgres default superuser 'postgres' on bash diff --git a/src/doxygen.h b/src/doxygen.h index 1a54b094c..1919f8478 100644 --- a/src/doxygen.h +++ b/src/doxygen.h @@ -2,5 +2,13 @@ * @file * @mainpage VoxelEngine documentation * - * - [GitLab page](http://gitlab.com/mgerhardy/engine/) + * @ref about + * + * @ref dependencies + * + * @ref building + * + * @ref configuration + * + * @ref setup */ diff --git a/src/modules/ai/README.md b/src/modules/ai/README.md deleted file mode 100644 index 91badee0e..000000000 --- a/src/modules/ai/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# General - -This module depends on [SimpleAI](https://github.com/mgerhardy/simpleai). A lot of its documentation is doxygen based. - -See e.g. [SimpleAI.h](SimpleAI.h) diff --git a/src/modules/ai/SimpleAI.h b/src/modules/ai/SimpleAI.h index 2a6b0404c..67364578b 100644 --- a/src/modules/ai/SimpleAI.h +++ b/src/modules/ai/SimpleAI.h @@ -80,64 +80,9 @@ * * @movement{TargetSeek} * * @movement{Wander} * - * @section compilation Compile the lib: - * - * * autotools based compilation - * * `./autogen.sh` - * * `./configure` - * * `make` - * * `make install` - * * cmake based compilation (enable tests, remote debugger and so on via options) - * * `cmake CMakeLists.txt` - * * `make` - * * Compile the remote debugger - * * qmake - * * `cd src/debug` - * * `qmake` - * * `make` - * * cmake based compilation - * * `cmake CMakeLists.txt -DSIMPLEAI_DEBUGGER=ON` - * * `make` - * - * @section run Running it: - * - * SimpleAI comes with a small tool that is located in src/run. You can - * execute your own trees with: - * - * - `./simpleai-run -file src/run/behaviours.lua` - * - * After you ran it, you can connect with the remote @ref debugger and inspect the live - * state of every spawned @ai{AI} entity. - * - * @section using Using it: - * * Make sure your character extends @ai{ICharacter} or includes it as component. - * * Implement your behaviour tree loader by extending the class @ai{ITreeloader}. - * * Extend the @debug{AIDebugger} to deliver your own @debug{MapView} that renders the map of - * your application. - * * Add your own condition, filter and task factories to the @ai{AIRegistry} or via @ai{LUAAIRegistry}. - * * Assign attributes to your characters that should be shown in the - * debuggers live view. - * - * As the name states, it should be easy to use and to integrate into your application. You - * have the ability to create new customized actions, override existing ones with your - * own implementations and so on. - * - * To integrate the @ai{AI} into your application, your entity class should implement or include - * the @ai{ICharacter} interface. You only have to call the @ai{ICharacter::update()} method - * to get the @ai{AI} and the character updated. You can view the included `simpleai-run` tool - * for getting an idea on how to do this. - * - * Once this step is done, you can go on with creating new actions for your application. All you - * have to do for this is to extend @ai{ITask}. The entity instance given to the - * @ai{ITask::doAction()} method contains the @ai{ICharacter} that you bound to your - * application entity. - * - * After implementing these actions, all you have to do in order to use them with e.g. the - * existing @ai{LUATreeLoader} is to add them to the registry. Just call + * After implementing actions add them to the registry. Just call * @ai{AIRegistry::registerNodeFactory()} on your @ai{AIRegistry} instance and you are ready - * to write @ai{LUA} scripts with it. Again, as a reference, just check out the example code. - * You can also create nodes, conditions, filter and steering methods via LUA directly. See - * @ai{LUAAIRegistry} for more information about this. + * to write @ai{LUA} scripts with it. * * Note the usage of a few macros that makes your life easier: * * @ai{TASK_CLASS} @@ -189,26 +134,6 @@ * * Examples on how to customize the debugger * * [some classes](https://github.com/mgerhardy/simpleai/blob/master/contrib/exampledebugger) that provide a custom map view and map item rendering with custom data from attributes. - * - * @section legal Legal - * - * Copyright (C) 2015-2017 Martin Gerhardy - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * 3. This notice may not be removed or altered from any source distribution. */ /** diff --git a/src/modules/ai/filter/IFilter.h b/src/modules/ai/filter/IFilter.h index 79e19ad64..6af40435b 100644 --- a/src/modules/ai/filter/IFilter.h +++ b/src/modules/ai/filter/IFilter.h @@ -2,11 +2,11 @@ * @file * @defgroup Filter * @{ - * In combination with the `Filter` condition `IFilter` provides a quite flexible way to provide + * In combination with the @ai{Filter} condition @ai{IFilter} provides a quite flexible way to provide * generic behaviour tree tasks. You can just create one @ai{ITask} implementation that deals with * e.g. attacking. The target is just picked from the selection. If you encapsulate this with a * condition like (lua): - * @code + * @code{.lua} * someNode:addNode("AttackTarget", "attack"):setCondition("Filter(SelectGroupLeader{1})") * @endcode * You would only attack the group leader of group 1 if it was found. You can provide your own @@ -16,12 +16,12 @@ * There are some filters that accept subfilters - like _Union_, _Intersection_, _Last_, _First_, * _Difference_, _Complement_ and _Random_. _Last_, _First_ and _Random_ accept one sub filter as * parameter, _Union_ and _Intersection_ accept at least two sub filters. - * @code + * @code{.lua} * someNode:addNode("AttackTarget", "attack"):setCondition("Filter(First(SelectZone))") * @endcode * * _Random_ also accepts a parameter for how many items should be randomly preserved: - * @code + * @code{.lua} * someNode:addNode("AttackTarget", "attack"):setCondition("Filter(Random{1}(SelectZone))") * @endcode */ @@ -112,16 +112,16 @@ public: \ FILTER_FACTORY_SINGLETON /** - * @brief This class is used by the @c Filter condition in order to select entities for a @c TreeNode. + * @brief This class is used by the @ai{Filter} condition in order to select entities for a @ai{TreeNode}. * - * To modify the selection, the implementing classes should call @c getFilteredEntities to access - * the storage to persist the filtering for the @c TreeNode. + * To modify the selection, the implementing classes should call @ai{getFilteredEntities()} to access + * the storage to persist the filtering for the @ai{TreeNode}. * - * In combination with the @code Filter condition @code IFilter provides a quite flexible way to provide - * generic behaviour tree tasks. You can e.g. just create one @code ITask implementation that deals with + * In combination with the @ai{Filter} condition @ai{IFilter} provides a quite flexible way to provide + * generic behaviour tree tasks. You can e.g. just create one @ai{ITask} implementation that deals with * e.g. attacking. The target is just picked from the selection. If you encapsulate this with a condition * like (lua): - * @code + * @code{.lua} * someNode:addNode("AttackTarget", "attack"):setCondition("Filter(SelectGroupLeader{1})") * @endcode * You would only attack the group leader of group 1 if it was found. You can provide your own filters like: @@ -136,7 +136,7 @@ protected: * @note The filtered entities are kept even over several ticks. The caller should decide * whether he still needs an old/previous filtered selection * - * @see selection @c SelectEmpty to do the clear from within the behaviour tree + * @see selection @ai{SelectEmpty} to do the clear from within the behaviour tree */ inline FilteredEntities& getFilteredEntities(const AIPtr& ai) { return ai->_filteredEntities; diff --git a/src/modules/core/App.h b/src/modules/core/App.h index 553058085..d0e5831d9 100644 --- a/src/modules/core/App.h +++ b/src/modules/core/App.h @@ -30,6 +30,9 @@ using IMetricSenderPtr = std::shared_ptr; } +/** + * Foundation classes + */ namespace core { class ThreadPool; @@ -58,7 +61,7 @@ enum class AppState : uint8_t { }; /** - * @brief The app class controls the main loop of every application. + * @brief The app class controls the main loop and life-cycle of every application. */ class App : public core::TraceCallback { protected: diff --git a/src/modules/core/Common.h b/src/modules/core/Common.h index 099b07c67..379e49c95 100644 --- a/src/modules/core/Common.h +++ b/src/modules/core/Common.h @@ -1,8 +1,5 @@ /** * @file - * @mainpage VoxelEngine documentation - * - * - [GitLab page](http://gitlab.com/mgerhardy/engine/) */ #pragma once diff --git a/src/modules/network/README.md b/src/modules/network/README.md index f0b2bb42f..21e946754 100644 --- a/src/modules/network/README.md +++ b/src/modules/network/README.md @@ -1,4 +1,6 @@ -# General +# Network layer + +## General The network layer is based on udp (enet) and shared between client and server. @@ -8,12 +10,12 @@ See the `generate_protocol` cmake macro on how to integrate them. Values that should be shared between client and server - for example our cooldown ids - are part of the protocol to always have them in sync with each other. -# Connection +## Connection * [client] connects * [connection established] -* [client] send `UserConnect` message +* [client] sends `UserConnect` message * [server] `UserConnectHandler` -* [server] perform auth -* [auth failed] => [server] send `AuthFailed` message -* [auth successful] => [server] send Seed [server] broadcast to visible `UserSpawn` +* [server] performs auth +* [auth failed] => [server] sends `AuthFailed` message +* [auth successful] => [server] sends Seed [server] broadcasts to visible `UserSpawn` diff --git a/src/modules/noise/Noise.h b/src/modules/noise/Noise.h index 27ffa9085..5c5223ecc 100644 --- a/src/modules/noise/Noise.h +++ b/src/modules/noise/Noise.h @@ -45,8 +45,8 @@ public: bool canUseShader() const; /** - * @return @c true if the value was set, @c false otherwise. This might happen if you e.g. try to activate noise shaders, - * but your system doesn't support them. + * @return Return whether the request to use the noise shaders could get fulfilled. It might fail if you e.g. try + * to activate noise shaders, but your system doesn't support them. */ bool useShader(bool enableShader); diff --git a/src/modules/persistence/PersistenceMgr.h b/src/modules/persistence/PersistenceMgr.h index ffa8aef70..6e34dc956 100644 --- a/src/modules/persistence/PersistenceMgr.h +++ b/src/modules/persistence/PersistenceMgr.h @@ -12,6 +12,9 @@ #include "core/IComponent.h" #include "core/concurrent/ReadWriteLock.h" +/** + * Persistence layer + */ namespace persistence { /** diff --git a/src/modules/persistence/README.md b/src/modules/persistence/README.md index 92ed4801f..ff9499235 100644 --- a/src/modules/persistence/README.md +++ b/src/modules/persistence/README.md @@ -1,4 +1,6 @@ -# Purpose +# Persistence layer + +## Purpose This module manages the persistence layer and provides drivers to talk to the database. Currently the only driver implemented is for postgresql. @@ -11,22 +13,22 @@ prepared statements. You should use this for e.g. player updates. It's always a good idea to check out the unit tests to get an idea of the functionality of those classes. -# Usage DBHandler +## Usage DBHandler You have to create the models that are usually put into the namespace `db`. Once you have those models, you can use the generated getters and setters to prepare the model. This can now get send over to the `DBHandler`. There are methods to insert, update, delete or select particular entries from tables via the model values. -## Create (and update) table +### Create (and update) table -``` - _dbHandler->createTable(db::EventModel()); +```cpp +_dbHandler->createTable(db::EventModel()); ``` -## Select by condition +### Select by condition -``` - _dbHandler->select(db::EventModel(), persistence::DBConditionOne(), [this] (db::EventModel&& model) { - [...] - }); +```cpp +_dbHandler->select(db::EventModel(), persistence::DBConditionOne(), [this] (db::EventModel&& model) { + [...] +}); ``` diff --git a/src/modules/shared/README.md b/src/modules/shared/README.md index 3ab520bdd..1e4bb3fc2 100644 --- a/src/modules/shared/README.md +++ b/src/modules/shared/README.md @@ -1,3 +1,3 @@ -# Purpose +# Client/Server shared module This module contains code that is shared between `frontend` and `backend`. diff --git a/src/modules/shared/SharedMovement.h b/src/modules/shared/SharedMovement.h index 077b2f5dc..bf2f53461 100644 --- a/src/modules/shared/SharedMovement.h +++ b/src/modules/shared/SharedMovement.h @@ -11,6 +11,9 @@ #include #include +/** + * Shared between client and server + */ namespace shared { using WalkableFloorResolver = std::function; diff --git a/src/modules/ui/turbobadger/tb/LICENSE.md b/src/modules/ui/turbobadger/tb/LICENSE similarity index 100% rename from src/modules/ui/turbobadger/tb/LICENSE.md rename to src/modules/ui/turbobadger/tb/LICENSE diff --git a/src/modules/video/Renderer.h b/src/modules/video/Renderer.h index dbf5a9d4e..fc416f1c4 100644 --- a/src/modules/video/Renderer.h +++ b/src/modules/video/Renderer.h @@ -177,7 +177,7 @@ extern void getScissor(int& x, int& y, int& w, int& h); extern void getViewport(int& x, int& y, int& w, int& h); /** * @brief Given in screen coordinates - * @note viewport() must have seen called before + * @note viewport() must have been called before */ extern bool scissor(int x, int y, int w, int h); /** diff --git a/src/modules/video/Types.h b/src/modules/video/Types.h index 670798e92..a9a3515fe 100644 --- a/src/modules/video/Types.h +++ b/src/modules/video/Types.h @@ -8,6 +8,9 @@ #include #include "gl/GLTypes.h" +/** + * Rendering + */ namespace video { enum class TextureType { diff --git a/src/modules/voxel/Region.cpp b/src/modules/voxel/Region.cpp index 8fc00554f..dc4f590dc 100644 --- a/src/modules/voxel/Region.cpp +++ b/src/modules/voxel/Region.cpp @@ -74,17 +74,17 @@ glm::ivec3 Region::getRandomPosition(math::Random& random) const { } /** - * @param iX The 'x' component of the position to accumulate. - * @param iY The 'y' component of the position to accumulate. - * @param iZ The 'z' component of the position to accumulate. + * @param x The 'x' component of the position to accumulate. + * @param y The 'y' component of the position to accumulate. + * @param z The 'z' component of the position to accumulate. */ -void Region::accumulate(int32_t iX, int32_t iY, int32_t iZ) { - _mins.x = core_min(_mins.x, iX); - _mins.y = core_min(_mins.y, iY); - _mins.z = core_min(_mins.z, iZ); - _maxs.x = core_max(_maxs.x, iX); - _maxs.y = core_max(_maxs.y, iY); - _maxs.z = core_max(_maxs.z, iZ); +void Region::accumulate(int32_t x, int32_t y, int32_t z) { + _mins.x = core_min(_mins.x, x); + _mins.y = core_min(_mins.y, y); + _mins.z = core_min(_mins.z, z); + _maxs.x = core_max(_maxs.x, x); + _maxs.y = core_max(_maxs.y, y); + _maxs.z = core_max(_maxs.z, z); update(); } @@ -272,34 +272,34 @@ bool Region::containsPoint(const glm::ivec3& pos, uint8_t boundary) const { } /** - * @param v3dAmount The amount to move the Region by. + * @param amount The amount to move the Region by. */ -void Region::shift(const glm::ivec3& v3dAmount) { - shiftLowerCorner(v3dAmount); - shiftUpperCorner(v3dAmount); +void Region::shift(const glm::ivec3& amount) { + shiftLowerCorner(amount); + shiftUpperCorner(amount); } /** - * @param v3dAmount The amount to move the lower corner by. + * @param amount The amount to move the lower corner by. */ -void Region::shiftLowerCorner(const glm::ivec3& v3dAmount) { - shiftLowerCorner(v3dAmount.x, v3dAmount.y, v3dAmount.z); +void Region::shiftLowerCorner(const glm::ivec3& amount) { + shiftLowerCorner(amount.x, amount.y, amount.z); } /** - * @param v3dAmount The amount to move the upper corner by. + * @param amount The amount to move the upper corner by. */ -void Region::shiftUpperCorner(const glm::ivec3& v3dAmount) { - shiftUpperCorner(v3dAmount.x, v3dAmount.y, v3dAmount.z); +void Region::shiftUpperCorner(const glm::ivec3& amount) { + shiftUpperCorner(amount.x, amount.y, amount.z); } /** * The amount can be specified seperatly for each direction. Negative shrinkage * is possible but you should prefer the grow() function for clarity. - * @param v3dAmount The amount to shrink by (one component for each direction). + * @param amount The amount to shrink by (one component for each direction). */ -void Region::shrink(const glm::ivec3& v3dAmount) { - shrink(v3dAmount.x, v3dAmount.y, v3dAmount.z); +void Region::shrink(const glm::ivec3& amount) { + shrink(amount.x, amount.y, amount.z); } } diff --git a/src/modules/voxel/Region.h b/src/modules/voxel/Region.h index 900e568b8..3743a5d3e 100644 --- a/src/modules/voxel/Region.h +++ b/src/modules/voxel/Region.h @@ -16,70 +16,65 @@ class Random; namespace voxel { -/** Represents a part of a Volume. +/** + * Represents a part of a Volume. * - * Many operations in PolyVox are constrained to only part of a volume. For example, when running the surface extractors - * it is unlikely that you will want to run it on the whole volume at once, as this will give a very large mesh which may - * be too much to render. Instead you will probably want to run a surface extractor a number of times on different parts - * of the volume, there by giving a number of meshes which can be culled and rendered separately. + * Many operations in PolyVox are constrained to only part of a volume. For example, when running the surface extractors + * it is unlikely that you will want to run it on the whole volume at once, as this will give a very large mesh which may + * be too much to render. Instead you will probably want to run a surface extractor a number of times on different parts + * of the volume, there by giving a number of meshes which can be culled and rendered separately. * - * The Region class is used to define these parts (regions) of the volume. Essentially it consists of an upper and lower - * bound which specify the range of voxels positions considered to be part of the region. Note that these bounds are - * inclusive. + * The Region class is used to define these parts (regions) of the volume. Essentially it consists of an upper and lower + * bound which specify the range of voxels positions considered to be part of the region. Note that these bounds are + * inclusive. * - * As well as the expected set of getters and setters, this class also provide utility functions for increasing and decreasing - * the size of the Region, shifting the Region in 3D space, testing whether it contains a given position, enlarging it so that - * it does contain a given position, cropping it to another Region, and various other utility functions. - * - * @note The dimensions of a region can be measured either in voxels or in cells. See the manual for more information - * about these definitions. + * As well as the expected set of getters and setters, this class also provide utility functions for increasing and decreasing + * the size of the Region, shifting the Region in 3D space, testing whether it contains a given position, enlarging it so that + * it does contain a given position, cropping it to another Region, and various other utility functions. * + * @note The dimensions of a region can be measured either in voxels or in cells. See the manual for more information + * about these definitions. */ class Region { public: - /// Constructor constexpr Region(); - /// Constructor Region(const glm::ivec3& mins, const glm::ivec3& maxs); - /// Constructor constexpr Region(int32_t minsx, int32_t minsy, int32_t minsz, int32_t maxsx, int32_t maxsy, int32_t maxsz); constexpr Region(int mins, int maxs); static const Region InvalidRegion; - /// Equality Operator. bool operator==(const Region& rhs) const; - /// Inequality Operator. bool operator!=(const Region& rhs) const; - /// Moves the Region by the amount specified. + /** Moves the Region by the amount specified. */ Region& operator+=(const glm::ivec3& amount); - /// Gets the 'x' position of the centre. + /** Gets the 'x' position of the centre. */ int32_t getCenterX() const; - /// Gets the 'y' position of the centre. + /** Gets the 'y' position of the centre. */ int32_t getCenterY() const; - /// Gets the 'z' position of the centre. + /** Gets the 'z' position of the centre. */ int32_t getCenterZ() const; - /// Gets the 'x' position of the lower corner. + /** Gets the 'x' position of the lower corner. */ int32_t getLowerX() const; - /// Gets the 'y' position of the lower corner. + /** Gets the 'y' position of the lower corner. */ int32_t getLowerY() const; - /// Gets the 'z' position of the lower corner. + /** Gets the 'z' position of the lower corner. */ int32_t getLowerZ() const; - /// Gets the 'x' position of the upper corner. + /** Gets the 'x' position of the upper corner. */ int32_t getUpperX() const; - /// Gets the 'y' position of the upper corner. + /** Gets the 'y' position of the upper corner. */ int32_t getUpperY() const; - /// Gets the 'z' position of the upper corner. + /** Gets the 'z' position of the upper corner. */ int32_t getUpperZ() const; - /// Gets the centre of the region + /** Gets the centre of the region */ const glm::ivec3& getCenter() const; glm::vec3 getCenterf() const; - /// Gets the position of the lower corner. + /** Gets the position of the lower corner. */ const glm::ivec3& getLowerCorner() const; - /// Gets the position of the upper corner. + /** Gets the position of the upper corner. */ const glm::ivec3& getUpperCorner() const; glm::vec3 getLowerCornerf() const; @@ -87,88 +82,88 @@ public: glm::ivec3 getRandomPosition(math::Random& random) const; - /// Gets the width of the region measured in voxels. + /** Gets the width of the region measured in voxels. */ int32_t getWidthInVoxels() const; - /// Gets the height of the region measured in voxels. + /** Gets the height of the region measured in voxels. */ int32_t getHeightInVoxels() const; - /// Gets the depth of the region measured in voxels. + /** Gets the depth of the region measured in voxels. */ int32_t getDepthInVoxels() const; - /// Gets the dimensions of the region measured in voxels. + /** Gets the dimensions of the region measured in voxels. */ const glm::ivec3& getDimensionsInVoxels() const; - /// Gets the width of the region measured in cells. + /** Gets the width of the region measured in cells. */ int32_t getWidthInCells() const; - /// Gets the height of the region measured in cells. + /** Gets the height of the region measured in cells. */ int32_t getHeightInCells() const; - /// Gets the depth of the region measured in cells. + /** Gets the depth of the region measured in cells. */ int32_t getDepthInCells() const; - /// Gets the dimensions of the region measured in cells. + /** Gets the dimensions of the region measured in cells. */ const glm::ivec3& getDimensionsInCells() const; - /// Sets the 'x' position of the lower corner. + /** Sets the 'x' position of the lower corner. */ void setLowerX(int32_t x); - /// Sets the 'y' position of the lower corner. + /** Sets the 'y' position of the lower corner. */ void setLowerY(int32_t y0f128); - /// Sets the 'z' position of the lower corner. + /** Sets the 'z' position of the lower corner. */ void setLowerZ(int32_t z); - /// Sets the 'x' position of the upper corner. + /** Sets the 'x' position of the upper corner. */ void setUpperX(int32_t x); - /// Sets the 'y' position of the upper corner. + /** Sets the 'y' position of the upper corner. */ void setUpperY(int32_t y); - /// Sets the 'z' position of the upper corner. + /** Sets the 'z' position of the upper corner. */ void setUpperZ(int32_t z); glm::ivec3 moveInto(int32_t x, int32_t y, int32_t z) const; - /// Sets the position of the lower corner. + /** Sets the position of the lower corner. */ void setLowerCorner(const glm::ivec3& mins); - /// Sets the position of the upper corner. + /** Sets the position of the upper corner. */ void setUpperCorner(const glm::ivec3& maxs); - /// Tests whether the given point is contained in this Region. + /** Tests whether the given point is contained in this Region. */ bool containsPoint(float fX, float fY, float fZ, float boundary = 0.0f) const; - /// Tests whether the given point is contained in this Region. + /** Tests whether the given point is contained in this Region. */ bool containsPoint(const glm::vec3& pos, float boundary = 0.0f) const; - /// Tests whether the given point is contained in this Region. + /** Tests whether the given point is contained in this Region. */ bool containsPoint(int32_t iX, int32_t iY, int32_t iZ, uint8_t boundary = 0) const; - /// Tests whether the given point is contained in this Region. + /** Tests whether the given point is contained in this Region. */ bool containsPoint(const glm::ivec3& pos, uint8_t boundary = 0) const; - /// Tests whether the given position is contained in the 'x' range of this Region. + /** Tests whether the given position is contained in the 'x' range of this Region. */ bool containsPointInX(float pos, float boundary = 0.0f) const; - /// Tests whether the given position is contained in the 'x' range of this Region. + /** Tests whether the given position is contained in the 'x' range of this Region. */ bool containsPointInX(int32_t pos, uint8_t boundary = 0) const; - /// Tests whether the given position is contained in the 'y' range of this Region. + /** Tests whether the given position is contained in the 'y' range of this Region. */ bool containsPointInY(float pos, float boundary = 0.0f) const; - /// Tests whether the given position is contained in the 'y' range of this Region. + /** Tests whether the given position is contained in the 'y' range of this Region. */ bool containsPointInY(int32_t pos, uint8_t boundary = 0) const; - /// Tests whether the given position is contained in the 'z' range of this Region. + /** Tests whether the given position is contained in the 'z' range of this Region. */ bool containsPointInZ(float pos, float boundary = 0.0f) const; - /// Tests whether the given position is contained in the 'z' range of this Region. + /** Tests whether the given position is contained in the 'z' range of this Region. */ bool containsPointInZ(int32_t pos, uint8_t boundary = 0) const; - /// Tests whether the given Region is contained in this Region. + /** Tests whether the given Region is contained in this Region. */ bool containsRegion(const Region& reg, uint8_t boundary = 0) const; - /// Enlarges the Region so that it contains the specified position. + /** Enlarges the Region so that it contains the specified position. */ void accumulate(int32_t iX, int32_t iY, int32_t iZ); - /// Enlarges the Region so that it contains the specified position. + /** Enlarges the Region so that it contains the specified position. */ void accumulate(const glm::ivec3& v3dPos); - /// Enlarges the Region so that it contains the specified Region. + /** Enlarges the Region so that it contains the specified Region. */ void accumulate(const Region& reg); - /// Crops the extents of this Region according to another Region. + /** Crops the extents of this Region according to another Region. */ void cropTo(const Region& other); - /// Grows this region by the amount specified. + /** Grows this region by the amount specified. */ void grow(int32_t amount); - /// Grows this region by the amounts specified. + /** Grows this region by the amounts specified. */ void grow(int32_t amountX, int32_t amountY, int32_t amountZ); - /// Grows this region by the amounts specified. + /** Grows this region by the amounts specified. */ void grow(const glm::ivec3& v3dAmount); - /// Tests whether all components of the upper corner are at least - /// as great as the corresponding components of the lower corner. + /** Tests whether all components of the upper corner are at least + * as great as the corresponding components of the lower corner. */ bool isValid() const; /** @@ -177,24 +172,24 @@ public: int voxels() const; int stride() const; - /// Moves the Region by the amount specified. + /** Moves the Region by the amount specified. */ void shift(int32_t amountX, int32_t amountY, int32_t amountZ); - /// Moves the Region by the amount specified. + /** Moves the Region by the amount specified. */ void shift(const glm::ivec3& v3dAmount); - /// Moves the lower corner of the Region by the amount specified. + /** Moves the lower corner of the Region by the amount specified. */ void shiftLowerCorner(int32_t x, int32_t y, int32_t z); - /// Moves the lower corner of the Region by the amount specified. + /** Moves the lower corner of the Region by the amount specified. */ void shiftLowerCorner(const glm::ivec3& v3dAmount); - /// Moves the upper corner of the Region by the amount specified. + /** Moves the upper corner of the Region by the amount specified. */ void shiftUpperCorner(int32_t x, int32_t y, int32_t z); - /// Moves the upper corner of the Region by the amount specified. + /** Moves the upper corner of the Region by the amount specified. */ void shiftUpperCorner(const glm::ivec3& v3dAmount); - /// Shrinks this region by the amount specified. + /** Shrinks this region by the amount specified. */ void shrink(int32_t amount); - /// Shrinks this region by the amounts specified. + /** Shrinks this region by the amounts specified. */ void shrink(int32_t amountX, int32_t amountY, int32_t amountZ); - /// Shrinks this region by the amounts specified. + /** Shrinks this region by the amounts specified. */ void shrink(const glm::ivec3& v3dAmount); core::String toString() const; @@ -342,34 +337,34 @@ inline void Region::setLowerY(int32_t y) { } /** - * @param iZ The new 'z' position of the lower corner. + * @param z The new 'z' position of the lower corner. */ -inline void Region::setLowerZ(int32_t iZ) { - _mins.z = iZ; +inline void Region::setLowerZ(int32_t z) { + _mins.z = z; update(); } /** - * @param iX The new 'x' position of the upper corner. + * @param x The new 'x' position of the upper corner. */ -inline void Region::setUpperX(int32_t iX) { - _maxs.x = iX; +inline void Region::setUpperX(int32_t x) { + _maxs.x = x; update(); } /** - * @param iY The new 'y' position of the upper corner. + * @param y The new 'y' position of the upper corner. */ -inline void Region::setUpperY(int32_t iY) { - _maxs.y = iY; +inline void Region::setUpperY(int32_t y) { + _maxs.y = y; update(); } /** - * @param iZ The new 'z' position of the upper corner. + * @param z The new 'z' position of the upper corner. */ -inline void Region::setUpperZ(int32_t iZ) { - _maxs.z = iZ; +inline void Region::setUpperZ(int32_t z) { + _maxs.z = z; update(); } diff --git a/src/modules/voxel/Voxel.h b/src/modules/voxel/Voxel.h index 3484932ce..b23d01c22 100644 --- a/src/modules/voxel/Voxel.h +++ b/src/modules/voxel/Voxel.h @@ -1,5 +1,7 @@ /** * @file + * @defgroup Voxel + * @{ */ #pragma once @@ -7,6 +9,9 @@ #include #include "core/ArrayLength.h" +/** + * Voxel manipulation, meshing and storage + */ namespace voxel { /** @@ -177,3 +182,7 @@ inline bool isFloor(VoxelType material) { } } + +/** + * @} + */ diff --git a/src/modules/voxelgenerator/LSystem.h b/src/modules/voxelgenerator/LSystem.h index 7d23bf522..8ea42ecd4 100644 --- a/src/modules/voxelgenerator/LSystem.h +++ b/src/modules/voxelgenerator/LSystem.h @@ -19,7 +19,13 @@ #include #include +/** + * Voxel generators + */ namespace voxelgenerator { +/** + * L-System + */ namespace lsystem { struct TurtleStep { @@ -36,6 +42,9 @@ struct Rule { extern bool parseRules(const core::String& rulesStr, std::vector& rules); +/** + * @brief Generate voxels according to the given L-System rules + */ template void generate(Volume& volume, const glm::ivec3& position, const core::String &axiom, const std::vector &rules, float angle, float length, float width, float widthIncrement, uint8_t iterations, math::Random& random, float leafRadius = 8.0f) { diff --git a/src/modules/voxelgenerator/NoiseGenerator.h b/src/modules/voxelgenerator/NoiseGenerator.h index f65852527..0c8673c1a 100644 --- a/src/modules/voxelgenerator/NoiseGenerator.h +++ b/src/modules/voxelgenerator/NoiseGenerator.h @@ -8,6 +8,9 @@ #include "voxel/RawVolumeWrapper.h" namespace voxelgenerator { +/** + * Noise + */ namespace noise { enum class NoiseType { diff --git a/src/modules/voxelgenerator/TreeGenerator.h b/src/modules/voxelgenerator/TreeGenerator.h index 6a603ec53..0c3e4a54c 100644 --- a/src/modules/voxelgenerator/TreeGenerator.h +++ b/src/modules/voxelgenerator/TreeGenerator.h @@ -15,6 +15,9 @@ #include "core/Log.h" namespace voxelgenerator { +/** + * Tree generators + */ namespace tree { /** diff --git a/src/modules/voxelrender/RawVolumeRenderer.h b/src/modules/voxelrender/RawVolumeRenderer.h index cde8ad2d4..626fa4878 100644 --- a/src/modules/voxelrender/RawVolumeRenderer.h +++ b/src/modules/voxelrender/RawVolumeRenderer.h @@ -25,6 +25,9 @@ namespace video { class Camera; } +/** + * Basic voxel rendering + */ namespace voxelrender { /** diff --git a/src/modules/voxelworld/WorldMgr.h b/src/modules/voxelworld/WorldMgr.h index f4cc9f826..c70d4d2d0 100644 --- a/src/modules/voxelworld/WorldMgr.h +++ b/src/modules/voxelworld/WorldMgr.h @@ -1,6 +1,6 @@ /** * @file - * @defgroup Voxel + * @defgroup VoxelWorld * @{ * @} */ @@ -16,11 +16,14 @@ #include "math/Random.h" #include +/** + * World creation, persisting and streaming + */ namespace voxelworld { /** * @brief The WorldMgr class is responsible to maintaining the voxel volumes and handle the needed mesh extraction - * @ingroup Voxel + * @ingroup VoxelWorld */ class WorldMgr { public: diff --git a/src/modules/voxelworldrender/WorldRenderer.h b/src/modules/voxelworldrender/WorldRenderer.h index 1a1ba322d..2e48b3766 100644 --- a/src/modules/voxelworldrender/WorldRenderer.h +++ b/src/modules/voxelworldrender/WorldRenderer.h @@ -23,6 +23,9 @@ #include "video/UniformBuffer.h" #include "voxel/PagedVolume.h" +/** + * World rendering + */ namespace voxelworldrender { /** diff --git a/src/tests/README.md b/src/tests/README.md index c421befb4..483a022b6 100644 --- a/src/tests/README.md +++ b/src/tests/README.md @@ -3,102 +3,105 @@ These tests are dedicated test applications. They are no unit tests. Unit tests are in their own module and available via -``` + +```bash make tests ``` Run these test applications with -``` + +```bash make __directoryname__-run ``` -# testanimation +## testanimation Test the voxel animation module with a default character and items of the stock module. See [README.md](testanimation/README.md) for more details. -# testimgui +## testimgui Test the dearimgui integration -# testglslgeom +## testglslgeom Test geometry shader integration -# testnuklear +## testnuklear Test the nuklear imgui integration -# testcomputetexture3d +## testcomputetexture3d Test the OpenCL 3d texture integration of a 3d voxel volume (rendered as 2d side view) -# testvoxelgpu +## testvoxelgpu OpenCL mesh extraction - not finished yet. -# testdepthbuffer +## testdepthbuffer Test the depth buffer integration with shadow maps and debug renderings -# testtexture +## testtexture Renders a test 2d image. -# testmesh +## testmesh Render a mesh with shadows and bones and normals. -# testcamera +## testcamera Test camera options and collisions. -# testvoxelfont +## testvoxelfont Display a true type font as 3d voxel volume. -# testplane +## testplane Renders a plane object. -# testshapebuilder -# testoctree +## testshapebuilder + +## testoctree Renders the octree internals. -# testglslcomp +## testglslcomp Uses GLSL compute shader to render a circle. -# testgpumc +## testgpumc -Conversion of OpenCL marching cubes taken from: https://github.com/smistad/GPU-Marching-Cubes.git +Conversion of OpenCL marching cubes taken from: -# testturbobadger +## testturbobadger Renders the turbobadger demo. -# testluaui +## testluaui Test the nuklear lua ui binding -# testoctreevisit +## testoctreevisit Visit the frustum in the octree. -# testtemplate +## testtemplate Just an empty template for new test applications. -# testtraze +## testtraze * [traze client](testtraze/README.md) -# testhttpserver +## testhttpserver A test application around the http module server for e.g. fuzzy testing purposes. -# testbiomes +## testbiomes A test application that just visualizes the biomes. diff --git a/src/tests/testanimation/README.md b/src/tests/testanimation/README.md index 58785b6cb..158379809 100644 --- a/src/tests/testanimation/README.md +++ b/src/tests/testanimation/README.md @@ -1,4 +1,4 @@ -# Purpose +# Animation test tool The test application can cycle through all animations and entity types. It helps to visualize the skeletal animation states of the entities in the game. diff --git a/src/tests/testbiomes/README.md b/src/tests/testbiomes/README.md index 3f72471c9..92a443894 100644 --- a/src/tests/testbiomes/README.md +++ b/src/tests/testbiomes/README.md @@ -1,3 +1,3 @@ -# Purpose +# Biome rendering test tool This test application will render the biomes as a 2d map including temperature and humidity diff --git a/src/tools/computeshadertool/README.md b/src/tools/computeshadertool/README.md index d27d0548c..52484d0ba 100644 --- a/src/tools/computeshadertool/README.md +++ b/src/tools/computeshadertool/README.md @@ -2,11 +2,12 @@ This tool parses OpenCL shader files (`*.cl`) and generates C++ source files for them. -# Description +## Description The generator uses `ComputeShaderTemplate.h.in` and generates the files by doing some string replacements. There are several variables in the template file that are replaced by the generator. + * `$includes$` * `$namespace$` * `$name$` diff --git a/src/tools/databasetool/README.md b/src/tools/databasetool/README.md index 9c59b125b..2735bbcc0 100644 --- a/src/tools/databasetool/README.md +++ b/src/tools/databasetool/README.md @@ -1,6 +1,6 @@ # Databasetool -## Table descriptions for the databasetool. +## Table descriptions for the databasetool The databasetool binary will generate model files for the table definitions given in `*.tbl` files. You can specify the fields, @@ -11,7 +11,7 @@ To add a new `*.tbl` file to a module and automatically generate code for that table definition, you have to add the following after your cmake `add_library(${LIB} ${SRCS})` call: -``` +```cmake generate_db_models(${LIB} ${CMAKE_CURRENT_SOURCE_DIR}/tables.tbl ExampleModels.h) ``` @@ -55,16 +55,17 @@ table { ``` ## Valid field types -* password -* string -* text -* int -* long -* timestamp -* boolean -* short -* byte -* blob + +* `password` +* `string` +* `text` +* `int` +* `long` +* `timestamp` +* `boolean` +* `short` +* `byte` +* `blob` ## Operator @@ -78,10 +79,12 @@ the operator specified. The default operator is `set`. See a full list of valid operators below. ## Valid operators -* set -* add -* subtract + +* `set` +* `add` +* `subtract` ## Other notable features + * Timestamps are handled in UTC. * When using `ìnt` or `short` as a field type, there is also a setter configured that accepts enums. diff --git a/src/tools/rcon/README.md b/src/tools/rcon/README.md index 4c37c927a..6be743b55 100644 --- a/src/tools/rcon/README.md +++ b/src/tools/rcon/README.md @@ -1,8 +1,8 @@ # Remote AI Debugger -This application is part of the `simpleai` library. Find more documentation here: http://mgerhardy.github.io/simpleai +This application is part of the `simpleai` library. Find more documentation here: -# Compile +## Compile To compile this on a debian based linux, you will need some qt related packages installed: diff --git a/src/tools/shadertool/README.md b/src/tools/shadertool/README.md index b69746273..8712ee524 100644 --- a/src/tools/shadertool/README.md +++ b/src/tools/shadertool/README.md @@ -1,8 +1,8 @@ # ShaderTool -This tool parses GLSL shader files (mainly *.vert, *.frag) and generates C++ source files for them. +This tool parses GLSL shader files (mainly `*.vert`, `*.frag`) and generates C++ source files for them. -# Description +## Description The generator uses `ShaderTemplate.h.in` and `UniformBufferTemplate.h.in` as a base to generat the C++ source files. diff --git a/src/tools/thumbnailer/README.md b/src/tools/thumbnailer/README.md index 1c82d0a36..af81592a0 100644 --- a/src/tools/thumbnailer/README.md +++ b/src/tools/thumbnailer/README.md @@ -9,10 +9,10 @@ that must be installed in `/usr/share/mime/packages` and `/usr/share/thumbnailer It works for any file manager that supports `.thumbnailer` entries, including Nautilus, Thunar (when tumbler is installed), Nemo, Caja, and PCManFM. -``` +```bash for i in $(find $HOME/dev/engine -name "*.vox" -or -name "*.cub" -or -name "*.qbt" -or -name "*.qb" -or -name "*.vxm"); do - fullpath=$(readlink -f $i) - md5=$(echo -n "file://$fullpath" | md5sum -z | awk ' { print $1.".png" }') - vengi-thumbnailer -s 128 $i $HOME/.cache/thumbnails/large/$md5 + fullpath=$(readlink -f $i) + md5=$(echo -n "file://$fullpath" | md5sum -z | awk ' { print $1.".png" }') + vengi-thumbnailer -s 128 $i $HOME/.cache/thumbnails/large/$md5 done ``` diff --git a/src/tools/voxedit/README.md b/src/tools/voxedit/README.md index e459bfb4a..fb6f84a70 100644 --- a/src/tools/voxedit/README.md +++ b/src/tools/voxedit/README.md @@ -13,7 +13,6 @@ my own engine and evolved into something that others might find useful, too. ![image](https://raw.githubusercontent.com/wiki/mgerhardy/engine/images/voxedit-quad-view.png) - ## Features * Large scene support @@ -59,27 +58,27 @@ my own engine and evolved into something that others might find useful, too. ## Planned * SceneSettings dialog - - Change sun angles + * Change sun angles * Voxel to transparency with a HSV threshold * Selections - - Multiple AABBs should be possible - - Deselect of single voxels - - Delete, move, rotate, modify only in active selection + * Multiple AABBs should be possible + * Deselect of single voxels + * Delete, move, rotate, modify only in active selection * Copy/paste - - Paste into selection of a different size? Accept with enter after moving? + * Paste into selection of a different size? Accept with enter after moving? * Color selection via keyboard only - - Shortcut for enter-color-in-the-next second and index of the colormap? - - Relative movement from current color + * Shortcut for enter-color-in-the-next second and index of the colormap? + * Relative movement from current color * Improve Windows and MacOSX support * Extend palette widget to show the used colors * Add color dialog for ambient and diffuse color * Extrude * Improve vox extension import * Rigging support - - Gizmo for rotate, scale and move - - Scene graph - - File format (maybe vox with extension?) - - UI for key frames (timeline) + * Gizmo for rotate, scale and move + * Scene graph + * File format (maybe vox with extension?) + * UI for key frames (timeline) * Physics * Particle emitter diff --git a/src/tools/voxedit/ui/editorscene/Viewport.h b/src/tools/voxedit/ui/editorscene/Viewport.h index c29613d69..0d9b7f72f 100644 --- a/src/tools/voxedit/ui/editorscene/Viewport.h +++ b/src/tools/voxedit/ui/editorscene/Viewport.h @@ -11,7 +11,8 @@ #include "RenderShaders.h" /** - * @brief Scene management like input, ui and rendering. + * @brief Voxel editor scene management like input, ui and rendering. + * @see voxedit::ViewportController */ class Viewport: public ui::turbobadger::Widget { private: