|
|
|
|
/*
|
|
|
|
|
This file is part of Magnum.
|
|
|
|
|
|
|
|
|
|
Copyright © 2010, 2011, 2012, 2013 Vladimír Vondruš <mosra@centrum.cz>
|
|
|
|
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
|
|
|
copy of this software and associated documentation files (the "Software"),
|
|
|
|
|
to deal in the Software without restriction, including without limitation
|
|
|
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
|
|
|
and/or sell copies of the Software, and to permit persons to whom the
|
|
|
|
|
Software is furnished to do so, subject to the following conditions:
|
|
|
|
|
|
|
|
|
|
The above copyright notice and this permission notice shall be included
|
|
|
|
|
in all copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
|
|
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
|
|
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
|
|
|
DEALINGS IN THE SOFTWARE.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir magnum
|
|
|
|
|
* @brief %Magnum library
|
|
|
|
|
*/
|
|
|
|
|
/** @dir magnum/src
|
|
|
|
|
* @brief Namespace Magnum
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum
|
|
|
|
|
@brief Root namespace
|
|
|
|
|
|
|
|
|
|
Contains classes for interacting with OpenGL.
|
|
|
|
|
|
|
|
|
|
This library is built by default. To use it, you need to add `${MAGNUM_INCLUDE_DIRS}`
|
|
|
|
|
to include path and link to `${MAGNUM_LIBRARIES}`. See @ref building and
|
|
|
|
|
@ref cmake for more information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir Platform
|
|
|
|
|
* @brief Namespace Magnum::Platform
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::Platform
|
|
|
|
|
@brief Platform-specific application and context creation
|
|
|
|
|
|
|
|
|
|
Base classes for creating applications with various toolkits.
|
|
|
|
|
|
|
|
|
|
Parts of this namespace are built if `WITH_*APPLICATION` is enabled in CMake,
|
|
|
|
|
with each library having specific toolkit dependencies and platform
|
|
|
|
|
requirements. To use particular application library, you need to request given
|
|
|
|
|
`*Application` component in CMake, add `${MAGNUM_*APPLICATION_INCLUDE_DIRS}` to
|
|
|
|
|
include path and link to `${MAGNUM_*APPLICATION_LIBRARIES}`. See particular
|
|
|
|
|
`*Application` class documentation, @ref building, @ref cmake and @ref platform
|
|
|
|
|
for more information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir Math
|
|
|
|
|
* @brief Namespace Magnum::Math
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::Math
|
|
|
|
|
@brief %Math library
|
|
|
|
|
|
|
|
|
|
Template classes for matrix and vector calculations.
|
|
|
|
|
|
|
|
|
|
This library is built by default. To use it, you need to add `${MAGNUM_INCLUDE_DIRS}`
|
|
|
|
|
to include path and link to `${MAGNUM_LIBRARIES}`. See @ref building,
|
|
|
|
|
@ref cmake, @ref matrix-vector and @ref transformations for more information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir Math/Algorithms
|
|
|
|
|
* @brief Namespace Magnum::Math::Algorithms
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::Math::Algorithms
|
|
|
|
|
@brief %Algorithms
|
|
|
|
|
|
|
|
|
|
Various matrix and vector algorithms.
|
|
|
|
|
|
|
|
|
|
This library is built by default. To use it, you need to add `${MAGNUM_INCLUDE_DIRS}`
|
|
|
|
|
to include path and link to `${MAGNUM_LIBRARIES}`. See @ref building and
|
|
|
|
|
@ref cmake for more information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir Math/Geometry
|
|
|
|
|
* @brief Namespace Magnum::Math::Geometry
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::Math::Geometry
|
|
|
|
|
@brief %Geometry library
|
|
|
|
|
|
|
|
|
|
Functions for computing intersections, distances, areas and volumes.
|
|
|
|
|
|
|
|
|
|
This library is built by default. To use it, you need to add `${MAGNUM_INCLUDE_DIRS}`
|
|
|
|
|
to include path and link to `${MAGNUM_LIBRARIES}`. See @ref building and
|
|
|
|
|
@ref cmake for more information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir Audio
|
|
|
|
|
* @brief Namespace Magnum::Audio
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::Audio
|
|
|
|
|
@brief %Audio playback
|
|
|
|
|
|
|
|
|
|
Audio import, playback and integration with @ref SceneGraph.
|
|
|
|
|
|
|
|
|
|
This library depends on **OpenAL** library. It is built if `WITH_AUDIO` is
|
|
|
|
|
enabled in CMake. To use this library, you need to request `%Audio` component
|
|
|
|
|
in CMake, add `${MAGNUM_AUDIO_INCLUDE_DIRS}` to include path and link to
|
|
|
|
|
`${MAGNUM_AUDIO_LIBRARIES}`. See @ref building and @ref cmake for more
|
|
|
|
|
information. Additional plugins are part of plugin repository, see particular
|
|
|
|
|
`*Importer` class documentation, @ref building-plugins and @ref cmake-plugins
|
|
|
|
|
for more information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir DebugTools
|
|
|
|
|
* @brief Namespace Magnum::DebugTools
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::DebugTools
|
|
|
|
|
@brief %Debug tools
|
|
|
|
|
|
|
|
|
|
Debugging helpers, renderers and profilers.
|
|
|
|
|
|
|
|
|
|
This library is built if `WITH_DEBUGTOOLS` is enabled in CMake. To use this
|
|
|
|
|
library, you need to request `%DebugTools` component in CMake and link to
|
|
|
|
|
`${MAGNUM_DEBUGTOOLS_LIBRARIES}`. See @ref building, @ref cmake and
|
|
|
|
|
@ref debug-tools for more information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir MeshTools
|
|
|
|
|
* @brief Namespace Magnum::MeshTools
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::MeshTools
|
|
|
|
|
@brief %Mesh tools
|
|
|
|
|
|
|
|
|
|
Tools for generating, optimizing and cleaning meshes.
|
|
|
|
|
|
|
|
|
|
This library is built if `WITH_MESHTOOLS` is enabled in CMake. To use this
|
|
|
|
|
library, you need to request `%MeshTools` component in CMake and link to
|
|
|
|
|
`${MAGNUM_MESHTOOLS_LIBRARIES}`. See @ref building and @ref cmake for more
|
|
|
|
|
information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir Primitives
|
|
|
|
|
* @brief Namespace Magnum::Primitives
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::Primitives
|
|
|
|
|
@brief Primitive library
|
|
|
|
|
|
|
|
|
|
Basic primitives for testing purposes.
|
|
|
|
|
|
|
|
|
|
This library is built if `WITH_PRIMITIVES` is enabled in CMake. To use this
|
|
|
|
|
library, you need to request `%Primitives` component in CMake and link to
|
|
|
|
|
`${MAGNUM_PRIMITIVES_LIBRARIES}`. See @ref building and @ref cmake for more
|
|
|
|
|
information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir SceneGraph
|
|
|
|
|
* @brief Namespace Magnum::SceneGraph
|
|
|
|
|
*/
|
|
|
|
|
/**
|
|
|
|
|
@namespace Magnum::SceneGraph
|
|
|
|
|
@brief %Scene graph library
|
|
|
|
|
|
|
|
|
|
Managing object hierarchy, transformations and interactions.
|
|
|
|
|
|
|
|
|
|
This library is built if `WITH_SCENEGRAPH` is enabled in CMake. To use this
|
|
|
|
|
library, you need to request `%SceneGraph` component in CMake and link to
|
|
|
|
|
`${MAGNUM_SCENEGRAPH_LIBRARIES}`. See @ref building, @ref cmake and
|
|
|
|
|
@ref scenegraph for more information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir Shaders
|
|
|
|
|
* @brief Namespace Magnum::Shaders
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::Shaders
|
|
|
|
|
@brief Builtin shaders
|
|
|
|
|
|
|
|
|
|
Collection of shaders for easy prototyping and basic usage.
|
|
|
|
|
|
|
|
|
|
This library is built if `WITH_SHADERS` is enabled in CMake. To use this
|
|
|
|
|
library, you need to request `%Shaders` component in CMake and link to
|
|
|
|
|
`${MAGNUM_MESHTOOLS_SHADERS}`. See @ref building and @ref cmake for more
|
|
|
|
|
information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir Shapes
|
|
|
|
|
* @brief Namespace Magnum::Shapes
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::Shapes
|
|
|
|
|
@brief %Shape library
|
|
|
|
|
|
|
|
|
|
Collision detection system.
|
|
|
|
|
|
|
|
|
|
This library is built if `WITH_SHAPES` is enabled in CMake. To use this
|
|
|
|
|
library, you need to request `%Shapes` component in CMake and link to
|
|
|
|
|
`${MAGNUM_SHAPES_LIBRARIES}`. See @ref building, @ref cmake and @ref shapes for
|
|
|
|
|
more information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir Text
|
|
|
|
|
* @brief Namespace Magnum::Text
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::Text
|
|
|
|
|
@brief %Text rendering
|
|
|
|
|
|
|
|
|
|
Font texture creation and text layouting.
|
|
|
|
|
|
|
|
|
|
This library is built if `WITH_TEXT` is enabled in CMake. To use this library,
|
|
|
|
|
you need to request `%Text` component in CMake and link to `${MAGNUM_TEXT_LIBRARIES}`.
|
|
|
|
|
See @ref building and @ref cmake for more information. Additional plugins are
|
|
|
|
|
part of plugin repository, see particular `*Font` and `*FontConverter` class
|
|
|
|
|
documentation, @ref building-plugins and @ref cmake-plugins for more
|
|
|
|
|
information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir TextureTools
|
|
|
|
|
* @brief Namespace Magnum::TextureTools
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::TextureTools
|
|
|
|
|
@brief %Texture tools
|
|
|
|
|
|
|
|
|
|
Tools for generating, compressing and optimizing textures.
|
|
|
|
|
|
|
|
|
|
This library is built if `WITH_TEXTURETOOLS` is enabled in CMake. To use this
|
|
|
|
|
library, you need to request `%TextureTools` component in CMake and link to
|
|
|
|
|
`${MAGNUM_TEXTURETOOLS_LIBRARIES}`. See @ref building and @ref cmake for more
|
|
|
|
|
information.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @dir Trade
|
|
|
|
|
* @brief Namespace Magnum::Trade
|
|
|
|
|
*/
|
|
|
|
|
/** @namespace Magnum::Trade
|
|
|
|
|
@brief Data format exchange
|
|
|
|
|
|
|
|
|
|
Contains plugin interfaces for importing data of various formats and classes
|
|
|
|
|
for direct access to the data.
|
|
|
|
|
|
|
|
|
|
This library is built by default. To use it, you need to add `${MAGNUM_INCLUDE_DIRS}`
|
|
|
|
|
to include path and link to `${MAGNUM_LIBRARIES}`. See @ref building and
|
|
|
|
|
@ref cmake for more information. Additional plugins are part of plugin
|
|
|
|
|
repository, see particular `*Importer` and `*ImageConverter` class
|
|
|
|
|
documentation, @ref building-plugins and @ref cmake-plugins for more
|
|
|
|
|
information.
|
|
|
|
|
*/
|