gh-pages (draft v2)

This commit is contained in:
Michele Caini
2017-10-13 14:00:07 +02:00
parent b4d18e94da
commit 5337a33ede
265 changed files with 15177 additions and 2739 deletions

2
.gitignore vendored
View File

@@ -1,2 +0,0 @@
# QtCreator
*.user

0
.nojekyll Normal file
View File

View File

@@ -1,55 +0,0 @@
language: cpp
dist: trusty
sudo: false
matrix:
include:
- os: linux
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-6']
env: COMPILER=g++-6
- os: linux
compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-4.0']
packages: ['clang-4.0', 'libstdc++-4.9-dev']
env: COMPILER=clang++-4.0
- os: osx
osx_image: xcode8.3
compiler: clang
env: COMPILER=clang++
- os: linux
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-6']
env:
- COMPILER=g++-6
- CXXFLAGS="-O0 --coverage -fno-inline -fno-inline-small-functions -fno-default-inline"
before_script:
- pip install --user cpp-coveralls
after_success:
- coveralls --gcov gcov-6 --gcov-options '\-lp' --root ${TRAVIS_BUILD_DIR} --build-root ${TRAVIS_BUILD_DIR}/build --extension cpp --extension hpp --exclude deps --include src
notifications:
email:
on_success: never
on_failure: always
install:
- echo ${PATH}
- cmake --version
- export CXX=${COMPILER}
- echo ${CXX}
- ${CXX} --version
- ${CXX} -v
script:
- mkdir -p build && cd build
- cmake -DCMAKE_BUILD_TYPE=Release .. && make -j4
- CTEST_OUTPUT_ON_FAILURE=1 make test

View File

@@ -1,7 +0,0 @@
# Author
Michele Caini aka skypjack
# Contributors
Paolo Monteverde aka morbo84

View File

@@ -1,91 +0,0 @@
#
# EnTT
#
cmake_minimum_required(VERSION 3.2)
#
# Building in-tree is not allowed (we take care of your craziness).
#
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
message(FATAL_ERROR "Prevented in-tree built. Please create a build directory outside of the source code and call cmake from there. Thank you.")
endif()
#
# Project configuration
#
project(entt VERSION 1.1.0)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
endif()
set(SETTINGS_ORGANIZATION "Michele Caini")
set(SETTINGS_APPLICATION ${PROJECT_NAME})
set(PROJECT_AUTHOR "Michele Caini")
set(PROJECT_AUTHOR_EMAIL "michele.caini@gmail.com")
message("*")
message("* ${PROJECT_NAME} v${PROJECT_VERSION} (${CMAKE_BUILD_TYPE})")
message("* Copyright (c) 2017 ${PROJECT_AUTHOR} <${PROJECT_AUTHOR_EMAIL}>")
message("*")
#
# Compile stuff
#
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT MSVC)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wconversion")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DRELEASE")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g -DDEBUG")
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# it seems that -O3 ruins the performance when using clang ...
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2")
else()
# ... on the other side, GCC is incredibly comfortable with it.
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
endif()
endif()
#
# CMake configuration
#
set(PROJECT_CMAKE_IN ${entt_SOURCE_DIR}/cmake/in)
set(PROJECT_DEPS_DIR ${entt_SOURCE_DIR}/deps)
set(PROJECT_SRC_DIR ${entt_SOURCE_DIR}/src)
set(PROJECT_RUNTIME_OUTPUT_DIRECTORY bin)
#
# Enable test support using ctest-like interface
#
option(BUILD_TESTING "Enable testing with ctest." ON)
#
# build testing stuff if required
#
if(BUILD_TESTING)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
# gtest, gtest_main, gmock and gmock_main targets are available from now on
set(GOOGLETEST_DEPS_DIR ${PROJECT_DEPS_DIR}/googletest)
configure_file(${PROJECT_CMAKE_IN}/googletest.in ${GOOGLETEST_DEPS_DIR}/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${GOOGLETEST_DEPS_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${GOOGLETEST_DEPS_DIR})
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
add_subdirectory(${GOOGLETEST_DEPS_DIR}/src ${GOOGLETEST_DEPS_DIR}/build)
enable_testing()
add_subdirectory(test)
endif()

21
LICENSE
View File

@@ -1,21 +0,0 @@
The MIT License (MIT)
Copyright (c) 2017 Michele Caini
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
copy 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
copy 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.

497
README.md
View File

@@ -1,497 +0,0 @@
# EnTT - Entity-Component System in modern C++
[![Build Status](https://travis-ci.org/skypjack/entt.svg?branch=master)](https://travis-ci.org/skypjack/uvw)
[![Build status](https://ci.appveyor.com/api/projects/status/rvhaabjmghg715ck?svg=true)](https://ci.appveyor.com/project/skypjack/entt)
[![Coverage Status](https://coveralls.io/repos/github/skypjack/entt/badge.svg?branch=master)](https://coveralls.io/github/skypjack/entt?branch=master)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=W2HF9FESD5LJY&lc=IT&item_name=Michele%20Caini&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted)
# Introduction
`EnTT` is a header-only, tiny and easy to use Entity-Component System in modern C++.<br/>
_ECS_ is an architectural pattern used mostly in game development. For further details:
* [Entity Systems Wiki](http://entity-systems.wikidot.com/)
* [Evolve Your Hierarchy](http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/)
* [ECS on Wikipedia](https://en.wikipedia.org/wiki/Entity%E2%80%93component%E2%80%93system)
## Code Example
```cpp
#include <registry.hpp>
struct Position {
float x;
float y;
};
struct Velocity {
float dx;
float dy;
};
using ECS = entt::DefaultRegistry<Position, Velocity>;
int main() {
ECS ecs;
for(auto i = 0; i < 10; ++i) {
auto entity = ecs.create();
ecs.assign<Position>(entity, i * 1.f, i * 1.f);
if(i % 2 == 0) { ecs.assign<Velocity>(entity, i * .1f, i * .1f); }
}
// single component view
for(auto entity: ecs.view<Position>()) {
auto &position = ecs.get<Position>(entity);
// ...
}
// multi component view
for(auto entity: ecs.view<Position, Velocity>()) {
auto &position = ecs.get<Position>(entity);
auto &velocity = ecs.get<Velocity>(entity);
// ...
}
ecs.reset();
}
```
## Motivation
I started working on `EnTT` because of the wrong reason: my goal was to beat another well known open source _ECS_ in terms of performance.
I did it, of course, but it wasn't much satisfying. Actually it wasn't satisfying at all. The fastest and nothing more, fairly little indeed.
When I realized it, I tried hard to keep intact the great performance and to add all the features I want to see in my _ECS_ at the same time.
Today `EnTT` is finally what I was looking for: still faster than its _rivals_, a really good API and an amazing set of features.
### Performance
As it stands right now, `EnTT` is just fast enough for my requirements if compared to my first choice (that was already amazingly fast indeed).<br/>
Here is a comparision between the two (both of them compiled with GCC 7.2.0 on a Dell XPS 13 out of the mid 2014):
| Benchmark | EntityX (experimental/compile_time) | EnTT |
|-----------|-------------|-------------|
| Creating 10M entities | 0.177225s | **0.0881921s** |
| Destroying 10M entities | 0.066419s | **0.0552661s** |
| Iterating over 10M entities, unpacking one component | 0.0104935s | **8.8e-08s** |
| Iterating over 10M entities, unpacking two components | 0.00835546s | **0.00323798s** |
| Iterating over 10M entities, unpacking two components, half of the entities have all the components | 0.00772169s | **0.00162265s** |
| Iterating over 10M entities, unpacking two components, one of the entities has all the components | 0.00751099s | **5.17e-07s** |
| Iterating over 10M entities, unpacking five components | 0.00863762s | **0.00323384s** |
| Iterating over 10M entities, unpacking ten components | 0.0105657s | **0.00323742s** |
| Iterating over 10M entities, unpacking ten components, half of the entities have all the components | 0.00880251s | **0.00164593s** |
| Iterating over 10M entities, unpacking ten components, one of the entities has all the components | 0.0067667s | **5.38e-07s** |
| Iterating over 50M entities, unpacking one component | 0.0530271s | **7.7e-08s** |
| Iterating over 50M entities, unpacking two components | 0.056233s | **0.0161715s** |
`EnTT` includes its own tests and benchmarks. See [benchmark.cpp](https://github.com/skypjack/entt/blob/master/test/benchmark.cpp) for further details.<br/>
On Github users can find also a [benchmark suite](https://github.com/abeimler/ecs_benchmark) that compares a bunch of different projects, one of which is `EnTT`.
Of course, probably I'll try to get out of `EnTT` more features and better performance in the future, mainly for fun.<br/>
If you want to contribute and/or have any suggestion, feel free to make a PR or open an issue to discuss your idea.
# Build Instructions
## Requirements
To be able to use `EnTT`, users must provide a full-featured compiler that supports at least C++14.<br/>
CMake version 3.2 or later is mandatory to compile the tests, users don't have to install it otherwise.
## Library
`EnTT` is a header-only library. This means that including the `registry.hpp` header is enough to use it.<br/>
It's a matter of adding the following line at the top of a file:
```cpp
#include <registry.hpp>
```
Then pass the proper `-I` argument to the compiler to add the `src` directory to the include paths.
## Documentation
### API Reference
Unfortunately `EnTT` isn't documented yet and thus users cannot rely on in-code documentation.<br/>
Source code and names are self-documenting and I'm pretty sure that a glimpse to the API is enough for most of the users.<br/>
For all the others, below is a crash course that guides them through the project and tries to fill the gap.
### Crash Course
`EnTT` has two main actors: the **Registry** and the **View**.<br/>
The former can be used to manage components, entities and collections of components and entities. The latter allows users to iterate the underlying collections.
#### The Registry
There are two options to instantiate a registry:
* Use the `DefaultRegistry` alias:
```cpp
auto registry = entt::DefaultRegistry<Components...>{args...};
```
Users must provide the whole list of components to be registered with the default registry and that's all.
* Use directly the `Registry` class template:
```cpp
auto registry = entt::Registry<std::uint16_t, Components...>{args...};
```
Users must provide the whole list of components to be registered with the registry **and** the desired type for the entities.
Note that the default type (the one used by the default registry) is `std::uint32_t`, that is larger enough for almost all the games but also too big for the most of the games.
In both cases there are no requirements for the components but to be moveable, therefore POD types are just fine.
The `Registry` class offers a bunch of basic functionalities to query the internal data structures.
In almost all the cases those member functions can be used to query either the entity list or the components lists.<br/>
As an example, the member functions `empty` can be used to know if at least an entity exists and/or if at least one component of the given type has been assigned to an entity.<br/>
```cpp
bool b = registry.empty();
// ...
bool b = registry.empty<MyComponent>();
```
Similarly, `size` can be used to know the number of entities alive and/or the number of components of a given type still assigned to entities. `capacity` follows the same pattern and returns the storage capacity for the given element.
The `valid` member function returns true if `entity` is still in use, false otherwise:
```cpp
bool b = registry.valid(entity);
```
Boring, I agree. Let's go to something more tasty.
The following functionalities are meant to give users the chance to play with entities and components within a registry.
The `create` member function can be used to construct a new entity and it comes in two flavors:
* The plain version just creates a _naked_ entity with no components assigned to it:
```cpp
auto entity = registry.create();
```
* The member function template creates an entity and assigns to it the given _default-initialized_ components:
```cpp
auto entity = registry.create<Position, Velocity>();
```
It's a helper function, mostly syncactic sugar and it's equivalent to the following snippet:
```cpp
auto entity = registry.create();
registry.assign<Position>();
registry.assign<Velocity>();
```
See below to find more about the `assign` member function.
On the other side, the `destroy` member function can be used to delete an entity and all its components (if any):
```cpp
registry.destroy(entity);
```
It requires that `entity` is valid. In case it is not, an assertion will fail in debug mode and the behaviour is undefined in release mode.
If the purpose is to remove a single component instead, the `remove` member function template is the way to go:
```cpp
registry.remove<Position>(entity);
```
Again, it requires that `entity` is valid. Moreover, an instance of the component must have been previously assigned to the entity.
If one of the requirements isn't satisfied, an assertion will fail in debug mode and the behaviour is undefined in release mode.
The `reset` member function behaves similarly but with a strictly defined behaviour (and a performance penalty is the price to pay for that). In particular it removes the component if and only if it exists, otherwise it returns safely to the caller:
```cpp
registry.reset<Position>(entity);
```
It requires only that `entity` is valid. In case it is not, an assertion will fail in debug mode and the behaviour is undefined in release mode.
There exist also two more _versions_ of the `reset` member function:
* If no entity is passed to it, `reset` will remove the given component from each entity that has it:
```cpp
registry.reset<Position>();
```
* If neither the entity nor the component are specified, all the entities and their components are destroyed:
```cpp
registry.reset();
```
**Note**: the registry has an assert in debug mode that verifies that entities are no longer valid when it's destructed. This function can be used to reset the registry to its initial state and thus to satisfy the requirement.
To assign a component to an entity, users can rely on the `assign` member function template. It accepts a variable number of arguments that are used to construct the component itself if present:
```cpp
registry.assign<Position>(entity, 0., 0.);
// ...
auto &velocity = registry.assign<Velocity>(entity);
velocity.dx = 0.;
velocity.dy = 0.;
```
It requires that `entity` is valid. Moreover, the entity shouldn't have another instance of the component assigned to it.
If one of the requirements isn't satisfied, an assertion will fail in debug mode and the behaviour is undefined in release mode.
If the entity already has the given component and the user wants to replace it, the `replace` member function template is the way to go:
```cpp
registry.replace<Position>(entity, 0., 0.);
// ...
auto &velocity = registry.replace<Velocity>(entity);
velocity.dx = 0.;
velocity.dy = 0.;
```
It requires that `entity` is valid. Moreover, an instance of the component must have been previously assigned to the entity.
If one of the requirements isn't satisfied, an assertion will fail in debug mode and the behaviour is undefined in release mode.
In case users want to assign a component to an entity, but it's unknown whether the entity already has it or not, `accomodate` does the work in a single call
(of course, there is a performance penalty to pay for that mainly due to the fact that it must check if `entity` already has the given component or not):
```cpp
registry.accomodate<Position>(entity, 0., 0.);
// ...
auto &velocity = registry.accomodate<Velocity>(entity);
velocity.dx = 0.;
velocity.dy = 0.;
```
It requires only that `entity` is valid. In case it is not, an assertion will fail in debug mode and the behaviour is undefined in release mode.<br/>
Note that `accomodate` is a sliglhty faster alternative for the following if/else statement and nothing more:
```cpp
if(registry.has<Comp>(entity)) {
registry.replace<Comp>(entity, arg1, argN);
} else {
registry.assign<Comp>(entity, arg1, argN);
}
```
As already shown, if in doubt about whether or not an entity has one or more components, the `has` member function template may be useful:
```cpp
bool b = registry.has<Position, Velocity>(entity);
```
It requires only that `entity` is valid. In case it is not, an assertion will fail in debug mode and the behaviour is undefined in release mode.
Entities can also be cloned and either partially or fully copied:
```cpp
auto entity = registry.clone(other);
// ...
auto &velocity = registry.copy<Velocity>(to, from);
// ...
registry.copy(dst, src);
```
In particular:
* The `clone` member function creates a new entity and copy all the components from the given one.
* The `copy` member function template copies one component from an entity to another one.
* The `copy` member function copies all the components from an entity to another one.
All the functions above mentioned require that entities provided as arguments are valid and components exist wherever they have to be accessed.
In case they are not, an assertion will fail in debug mode and the behaviour is undefined in release mode.
There exists also an utility member function that can be used to `swap` components between entities:
```cpp
registry.swap<Position>(e1, e2);
```
As usual, it requires that the two entities are valid and that two instances of the component have been previously assigned to them.
In case they are not, an assertion will fail in debug mode and the behaviour is undefined in release mode.
The `get` member function template (either the non-const or the const version) gives direct access to the component of an entity instead:
```cpp
auto &position = registry.get<Position>(entity);
```
It requires that `entity` is valid. Moreover, an instance of the component must have been previously assigned to the entity.
If one of the requirements isn't satisfied, an assertion will fail in debug mode and the behaviour is undefined in release mode.
Components can also be sorted in memory by means of the `sort` member function templates. In particular:
* Components can be sorted according to a component:
```cpp
registry.sort<Renderable>([](const auto &lhs, const auto &rhs) { return lhs.z < rhs.z; });
```
* Components can be sorted according to the order imposed by another component:
```cpp
registry.sort<Movement, Physics>();
```
In this case, instances of `Movement` are arranged in memory so that cache misses are minimized when the two components are iterated together.
Finally, the `view` member function template returns an iterable portion of entities and components:
```cpp
auto view = registry.view<Position, Velocity>();
```
Views are the other core component of `EnTT` and are usually extensively used by softwares that include it. See below for more details about the types of views.
#### The View
There are two types of views:
* **Single component view**.
A single component view gives direct access to both the components and the entities to which the components are assigned.<br/>
This kind of views are created from the `Registry` class by means of the `view` member function template as it follows:
```cpp
// Actual type is Registry<Components...>::view_type<Comp>, where Comp is the component for which the view should be created ...
// ... well, auto is far easier to use in this case, isn't it?
auto view = registry.view<Sprite>();
```
Components and entities are stored in tightly packed arrays and single component views are the fastest solution to iterate them.<br/>
They have the _C++11-ish_ `begin` and `end` member function that allow users to use them in a typical range-for loop:
```cpp
auto view = registry.view<Sprite>();
for(auto entity: view) {
auto &sprite = registry.get<Sprite>(entity);
// ...
}
```
Iterating a view this way returns entities that can be further used to get components or perform other activities.<br/>
There is also another method one can use to iterate the array of entities, that is by using the `size` and `data` member functions:
```cpp
auto view = registry.view<Sprite>();
const auto *data = view.data();
for(auto i = 0, end = view.size(); i < end; ++i) {
auto entity = *(data + i);
// ...
}
```
Entites are good when the sole component isn't enough to perform a task.
Anyway they come with a cost: accessing components by entities has an extra level of indirection. It's pretty fast, but not that fast in some cases.<br/>
Direct access to the packed array of components is the other option around of a single component view. Member functions `size` and `raw` are there for that:
```cpp
auto view = registry.view<Sprite>();
const auto *raw = view.raw();
for(auto i = 0, end = view.size(); i < end; ++i) {
auto &sprite = *(raw + i);
// ...
}
```
This is the fastest solution to iterate over the components: they are packed together by construction and visit them in order will reduce to a minimum the number of cache misses.
* **Multi component view**.
A multi component view gives access only to the entities to which the components are assigned.<br/>
This kind of views are created from the `Registry` class by means of the `view` member function template as it follows:
```cpp
// Actual type is Registry<Components...>::view_type<Comp...>, where Comp... are the components for which the view should be created ...
// ... well, auto is far easier to use in this case, isn't it?
auto view = registry.view<Position, Velocity>();
```
Multi component views can be iterated by means of the `begin` and `end` member functions in a typical range-for loop:
```cpp
auto view = registry.view<Position, Velocity>();
for(auto entity: view) {
auto &position = registry.get<Position>(entity);
auto &velocity = registry.get<Velocity>(entity);
// ...
}
```
Note that there exists a packed array of entities to which the component is assigned for each component.
Iterators of a multi component view pick the shortest array up and use it to visit the smallest set of potential entities.<br/>
The choice is performed when the view is constructed. It's good enough as long as views are discarded once they have been used.
For all the other cases, the `reset` member function can be used whenever the data within the registry are known to be changed and forcing the choice again could speed up the execution.
**Note**: one could argue that an iterator should return the set of references to components for each entity instead of the entity itself.
Well, who wants to spend CPU cycles to get a reference to an useless tag component? This drove the design choice indeed.
All the views can be used more than once. They return newly created and correctly initialized iterators whenever `begin` or `end` is invoked.
The same is valid for `data` and `raw` too. Anyway views and iterators are tiny objects and the time spent to construct them can be safely ignored.<br/>
I'd suggest not to store them anywhere and to invoke the `Registry::view` member function template at each iteration to get a properly initialized view through which to iterate.
#### Side notes
* Entities are numbers and nothing more. They are not classes and they have no member functions at all.
* Most of the _ECS_ available out there have an annoying limitation (at least from my point of view): entities and components cannot be created, assigned or deleted while users are iterating on them.<br/>
`EnTT` partially solves the problem with a few limitations:
* Entities can be created at any time while iterating one or more components.
* Components can be assigned to any entity at any time while iterating one or more components.
* During an iteration, the current entity (that is the one returned by the iterator) can be deleted and all its components can be removed safely.
Entities that are not the current one (that is the one returned by the iterator) cannot be deleted from within a loop.<br/>
Components assigned to entities that are not the current one (that is the one returned by the iterator) cannot be removed from within a loop.<br/>
In this case, iterators are invalidated and the behaviour is undefined if one continues to use those iterators. Possible approaches are:
* Store aside the entities and components to be removed and perform the operations at the end of the iteration.
* Mark entities and components with a proper tag component that indicates that they must be purged, then perform a second iteration to clean them up one by one.
* Iterators aren't thread safe. Do no try to iterate over a set of components and modify them concurrently.<br/>
That being said, as long as a thread iterates over the entities that have the component `X` or assign and removes that component from a set of entities and another thread does something similar with components `Y` and `Z`, it shouldn't be a problem at all.<br/>
As an example, that means that users can freely run the rendering system over the renderable entities and update the physics concurrently on a separate thread if needed.
## Tests
To compile and run the tests, `EnTT` requires *googletest*.<br/>
`cmake` will download and compile the library before to compile anything else.
Then, to build the tests:
* `$ cd build`
* `$ cmake ..`
* `$ make`
* `$ make test`
To build the benchmarks, use the following line instead:
* `$ cmake -DCMAKE_BUILD_TYPE=Release ..`
Benchmarks are compiled only in release mode currently.
# Contributors
If you want to contribute, please send patches as pull requests against the branch master.<br/>
Check the [contributors list](https://github.com/skypjack/entt/blob/master/AUTHORS) to see who has partecipated so far.
# License
Code and documentation Copyright (c) 2017 Michele Caini.<br/>
Code released under [the MIT license](https://github.com/skypjack/entt/blob/master/LICENSE).
# Donation
Developing and maintaining `EnTT` takes some time and lots of coffee. If you want to support this project, you can offer me an espresso. I'm from Italy, we're used to turning the best coffee ever in code.<br/>
Take a look at the donation button at the top of the page for more details or just click [here](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=W2HF9FESD5LJY&lc=IT&item_name=Michele%20Caini&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted).

74
README_8md_source.html Normal file

File diff suppressed because one or more lines are too long

93
annotated.html Normal file
View File

@@ -0,0 +1,93 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Class List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Class List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceentt.html" target="_self">entt</a></td><td class="desc"><code>EnTT</code> default namespace </td></tr>
<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structentt_1_1entt__traits.html" target="_self">entt_traits</a></td><td class="desc">Entity traits </td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html" target="_self">entt_traits&lt; std::uint16_t &gt;</a></td><td class="desc">Entity traits for a 16 bits entity identifier </td></tr>
<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html" target="_self">entt_traits&lt; std::uint32_t &gt;</a></td><td class="desc">Entity traits for a 32 bits entity identifier </td></tr>
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html" target="_self">entt_traits&lt; std::uint64_t &gt;</a></td><td class="desc">Entity traits for a 64 bits entity identifier </td></tr>
<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1Family.html" target="_self">Family</a></td><td class="desc">Dynamic identifier generator </td></tr>
<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1PersistentView.html" target="_self">PersistentView</a></td><td class="desc">Persistent view </td></tr>
<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1Registry.html" target="_self">Registry</a></td><td class="desc">A repository class for entities and components </td></tr>
<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1SigH.html" target="_self">SigH</a></td><td class="desc">Signal handler </td></tr>
<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html" target="_self">SigH&lt; Ret(Args...)&gt;</a></td><td class="desc">Signal handler </td></tr>
<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1SparseSet.html" target="_self">SparseSet</a></td><td class="desc">Sparse set </td></tr>
<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html" target="_self">SparseSet&lt; Entity &gt;</a></td><td class="desc">Basic sparse set implementation </td></tr>
<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html" target="_self">SparseSet&lt; Entity, Type &gt;</a></td><td class="desc">Extended sparse set implementation </td></tr>
<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1View.html" target="_self">View</a></td><td class="desc">Multi component view </td></tr>
<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html" target="_self">View&lt; Entity, Component &gt;</a></td><td class="desc">Single component view specialization </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -1,22 +0,0 @@
# can use variables like {build} and {branch}
version: 1.0.{build}
image: Visual Studio 2017
environment:
BUILD_DIR: "%APPVEYOR_BUILD_FOLDER%\\build"
platform:
- Win32
configuration:
- Release
before_build:
- cd %BUILD_DIR%
- cmake .. -G"Visual Studio 15 2017"
build:
parallel: true
project: build/entt.sln
verbosity: minimal

BIN
bc_s.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

BIN
bdwn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

2
build/.gitignore vendored
View File

@@ -1,2 +0,0 @@
*
!.gitignore

View File

@@ -0,0 +1,82 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1Family.html">Family</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entt::Family&lt;... &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classentt_1_1Family.html">entt::Family&lt;... &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Family.html#a221d31326ada546b679633235ef9494c">type</a>() noexcept</td><td class="entry"><a class="el" href="classentt_1_1Family.html">entt::Family&lt;... &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

140
classentt_1_1Family.html Normal file
View File

@@ -0,0 +1,140 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: entt::Family&lt;... &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1Family.html">Family</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classentt_1_1Family-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">entt::Family&lt;... &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Dynamic identifier generator.
<a href="classentt_1_1Family.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="family_8hpp_source.html">family.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a221d31326ada546b679633235ef9494c"><td class="memTemplParams" colspan="2">template&lt;typename... &gt; </td></tr>
<tr class="memitem:a221d31326ada546b679633235ef9494c"><td class="memTemplItemLeft" align="right" valign="top">static std::size_t&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1Family.html#a221d31326ada546b679633235ef9494c">type</a> () noexcept</td></tr>
<tr class="memdesc:a221d31326ada546b679633235ef9494c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an unique identifier for the given type. <a href="#a221d31326ada546b679633235ef9494c">More...</a><br /></td></tr>
<tr class="separator:a221d31326ada546b679633235ef9494c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename...&gt;<br />
class entt::Family&lt;... &gt;</h3>
<p>Dynamic identifier generator. </p>
<p>Utility class template that can be used to assign unique identifiers to types at runtime. Use different specializations to create separate sets of identifiers. </p>
<p class="definition">Definition at line <a class="el" href="family_8hpp_source.html#l00021">21</a> of file <a class="el" href="family_8hpp_source.html">family.hpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a221d31326ada546b679633235ef9494c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a221d31326ada546b679633235ef9494c">&#9670;&nbsp;</a></span>type()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename... &gt; </div>
<div class="memtemplate">
template&lt;typename... &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::size_t <a class="el" href="classentt_1_1Family.html">entt::Family</a>&lt;... &gt;::type </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an unique identifier for the given type. </p>
<dl class="section return"><dt>Returns</dt><dd>Statically generated unique identifier for the given type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="family_8hpp_source.html#l00033">33</a> of file <a class="el" href="family_8hpp_source.html">family.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/entt/core/<a class="el" href="family_8hpp_source.html">family.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,92 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1PersistentView.html">PersistentView</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entt::PersistentView&lt; Entity, Component &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView&lt; Entity, Component &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1PersistentView.html#a56b0ad24d885281b2985b083553a1156">begin</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1PersistentView.html#ac6f07a78cd7cac6dc9574877e1073a19">data</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1PersistentView.html#a48703efeadcd08915f32e5c647db5754">end</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1PersistentView.html#a5195c9d1dede0fe6c40bea576398022b">entity_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView&lt; Entity, Component &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1PersistentView.html#a7b1ca9cc827871a1dbab18e5cbc0826a">get</a>(entity_type entity) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1PersistentView.html#ae9378e3f7e89b0f460874100d0e0ee56">get</a>(entity_type entity) noexcept</td><td class="entry"><a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1PersistentView.html#ae563ed31a62fd9f33f93767f0ecdfff5">iterator_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView&lt; Entity, Component &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1PersistentView.html#ab673895244500555493f7eb31c2a1728">PersistentView</a>(view_type &amp;view, pool_type&lt; Component &gt; &amp;... pools) noexcept</td><td class="entry"><a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1PersistentView.html#a416b2794ee8c13ac0f793e2a7a9ae769">size</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1PersistentView.html#ac2e81caacece38b84f46c4430cd8cf4e">size_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView&lt; Entity, Component &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1PersistentView.html#accde3d4b4a904e79c832f6b05f324b05">sort</a>()</td><td class="entry"><a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,513 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: entt::PersistentView&lt; Entity, Component &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1PersistentView.html">PersistentView</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classentt_1_1PersistentView-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">entt::PersistentView&lt; Entity, Component &gt; Class Template Reference<span class="mlabels"><span class="mlabel">final</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Persistent view.
<a href="classentt_1_1PersistentView.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="view_8hpp_source.html">view.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ae563ed31a62fd9f33f93767f0ecdfff5"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1PersistentView.html#ae563ed31a62fd9f33f93767f0ecdfff5">iterator_type</a> = typename <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">view_type::iterator_type</a></td></tr>
<tr class="separator:ae563ed31a62fd9f33f93767f0ecdfff5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5195c9d1dede0fe6c40bea576398022b"><td class="memItemLeft" align="right" valign="top"><a id="a5195c9d1dede0fe6c40bea576398022b"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1PersistentView.html#a5195c9d1dede0fe6c40bea576398022b">entity_type</a> = typename <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">view_type::entity_type</a></td></tr>
<tr class="memdesc:a5195c9d1dede0fe6c40bea576398022b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Underlying entity identifier. <br /></td></tr>
<tr class="separator:a5195c9d1dede0fe6c40bea576398022b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2e81caacece38b84f46c4430cd8cf4e"><td class="memItemLeft" align="right" valign="top"><a id="ac2e81caacece38b84f46c4430cd8cf4e"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1PersistentView.html#ac2e81caacece38b84f46c4430cd8cf4e">size_type</a> = typename <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab81c48dcee7a1104ee82794613ee7ed2">view_type::size_type</a></td></tr>
<tr class="memdesc:ac2e81caacece38b84f46c4430cd8cf4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <br /></td></tr>
<tr class="separator:ac2e81caacece38b84f46c4430cd8cf4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab673895244500555493f7eb31c2a1728"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1PersistentView.html#ab673895244500555493f7eb31c2a1728">PersistentView</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">view_type</a> &amp;view, <a class="el" href="classentt_1_1SparseSet.html">pool_type</a>&lt; Component &gt; &amp;... pools) noexcept</td></tr>
<tr class="memdesc:ab673895244500555493f7eb31c2a1728"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a persistent view around a dedicated pool of entities. <a href="#ab673895244500555493f7eb31c2a1728">More...</a><br /></td></tr>
<tr class="separator:ab673895244500555493f7eb31c2a1728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a416b2794ee8c13ac0f793e2a7a9ae769"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1PersistentView.html#ac2e81caacece38b84f46c4430cd8cf4e">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1PersistentView.html#a416b2794ee8c13ac0f793e2a7a9ae769">size</a> () const noexcept</td></tr>
<tr class="memdesc:a416b2794ee8c13ac0f793e2a7a9ae769"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of entities that have the given components. <a href="#a416b2794ee8c13ac0f793e2a7a9ae769">More...</a><br /></td></tr>
<tr class="separator:a416b2794ee8c13ac0f793e2a7a9ae769"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6f07a78cd7cac6dc9574877e1073a19"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1PersistentView.html#a5195c9d1dede0fe6c40bea576398022b">entity_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1PersistentView.html#ac6f07a78cd7cac6dc9574877e1073a19">data</a> () const noexcept</td></tr>
<tr class="memdesc:ac6f07a78cd7cac6dc9574877e1073a19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the list of entities. <a href="#ac6f07a78cd7cac6dc9574877e1073a19">More...</a><br /></td></tr>
<tr class="separator:ac6f07a78cd7cac6dc9574877e1073a19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56b0ad24d885281b2985b083553a1156"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1PersistentView.html#ae563ed31a62fd9f33f93767f0ecdfff5">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1PersistentView.html#a56b0ad24d885281b2985b083553a1156">begin</a> () const noexcept</td></tr>
<tr class="memdesc:a56b0ad24d885281b2985b083553a1156"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the first entity that has the given components. <a href="#a56b0ad24d885281b2985b083553a1156">More...</a><br /></td></tr>
<tr class="separator:a56b0ad24d885281b2985b083553a1156"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48703efeadcd08915f32e5c647db5754"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1PersistentView.html#ae563ed31a62fd9f33f93767f0ecdfff5">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1PersistentView.html#a48703efeadcd08915f32e5c647db5754">end</a> () const noexcept</td></tr>
<tr class="memdesc:a48703efeadcd08915f32e5c647db5754"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator that is past the last entity that has the given components. <a href="#a48703efeadcd08915f32e5c647db5754">More...</a><br /></td></tr>
<tr class="separator:a48703efeadcd08915f32e5c647db5754"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b1ca9cc827871a1dbab18e5cbc0826a"><td class="memTemplParams" colspan="2">template&lt;typename Comp &gt; </td></tr>
<tr class="memitem:a7b1ca9cc827871a1dbab18e5cbc0826a"><td class="memTemplItemLeft" align="right" valign="top">const Comp &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1PersistentView.html#a7b1ca9cc827871a1dbab18e5cbc0826a">get</a> (<a class="el" href="classentt_1_1PersistentView.html#a5195c9d1dede0fe6c40bea576398022b">entity_type</a> entity) const noexcept</td></tr>
<tr class="memdesc:a7b1ca9cc827871a1dbab18e5cbc0826a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component assigned to the given entity. <a href="#a7b1ca9cc827871a1dbab18e5cbc0826a">More...</a><br /></td></tr>
<tr class="separator:a7b1ca9cc827871a1dbab18e5cbc0826a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9378e3f7e89b0f460874100d0e0ee56"><td class="memTemplParams" colspan="2">template&lt;typename Comp &gt; </td></tr>
<tr class="memitem:ae9378e3f7e89b0f460874100d0e0ee56"><td class="memTemplItemLeft" align="right" valign="top">Comp &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1PersistentView.html#ae9378e3f7e89b0f460874100d0e0ee56">get</a> (<a class="el" href="classentt_1_1PersistentView.html#a5195c9d1dede0fe6c40bea576398022b">entity_type</a> entity) noexcept</td></tr>
<tr class="memdesc:ae9378e3f7e89b0f460874100d0e0ee56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component assigned to the given entity. <a href="#ae9378e3f7e89b0f460874100d0e0ee56">More...</a><br /></td></tr>
<tr class="separator:ae9378e3f7e89b0f460874100d0e0ee56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accde3d4b4a904e79c832f6b05f324b05"><td class="memTemplParams" colspan="2">template&lt;typename Comp &gt; </td></tr>
<tr class="memitem:accde3d4b4a904e79c832f6b05f324b05"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1PersistentView.html#accde3d4b4a904e79c832f6b05f324b05">sort</a> ()</td></tr>
<tr class="memdesc:accde3d4b4a904e79c832f6b05f324b05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort the shared pool of entities according to the given component. <a href="#accde3d4b4a904e79c832f6b05f324b05">More...</a><br /></td></tr>
<tr class="separator:accde3d4b4a904e79c832f6b05f324b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Entity, typename... Component&gt;<br />
class entt::PersistentView&lt; Entity, Component &gt;</h3>
<p>Persistent view. </p>
<p>A persistent view returns all the entities and only the entities that have at least the given components. Moreover, it's guaranteed that the entity list is thightly packed in memory for fast iterations.<br />
In general, persistent views don't stay true to the order of any set of components unless users explicitly sort them.</p>
<p><b>Important</b> </p>
<p>Iterators aren't invalidated if:</p>
<ul>
<li>New instances of the given components are created and assigned to entities.</li>
<li>The entity currently pointed is modified (as an example, if one of the given components is removed from the entity to which the iterator points).</li>
</ul>
<p>In all the other cases, modify the pools of the given components somehow invalidates all the iterators and using them results in undefined behavior.</p>
<dl class="section note"><dt>Note</dt><dd>Views share references to the underlying data structures with the <a class="el" href="classentt_1_1Registry.html" title="A repository class for entities and components. ">Registry</a> that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.<br />
Moreover, sorting a persistent view affects all the other views of the same type (it means that users don't have to call <code>sort</code> on each view to sort all of them because they share the set of entities).</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>Lifetime of a view must overcome the one of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1View.html" title="Multi component view. ">View</a> </dd>
<dd>
<a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html" title="Single component view specialization. ">View&lt;Entity, Component&gt;</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Entity</td><td>A valid entity type (see <a class="el" href="structentt_1_1entt__traits.html" title="Entity traits. ">entt_traits</a> for more details). </td></tr>
<tr><td class="paramname">Component</td><td>The types of the components iterated by the view. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00052">52</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="ae563ed31a62fd9f33f93767f0ecdfff5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae563ed31a62fd9f33f93767f0ecdfff5">&#9670;&nbsp;</a></span>iterator_type</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename... Component&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView</a>&lt; Entity, Component &gt;::<a class="el" href="classentt_1_1PersistentView.html#ae563ed31a62fd9f33f93767f0ecdfff5">iterator_type</a> = typename <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">view_type::iterator_type</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Input iterator type. </p>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00062">62</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab673895244500555493f7eb31c2a1728"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab673895244500555493f7eb31c2a1728">&#9670;&nbsp;</a></span>PersistentView()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView</a>&lt; Entity, Component &gt;::<a class="el" href="classentt_1_1PersistentView.html">PersistentView</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">view_type</a> &amp;&#160;</td>
<td class="paramname"><em>view</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet.html">pool_type</a>&lt; Component &gt; &amp;...&#160;</td>
<td class="paramname"><em>pools</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a persistent view around a dedicated pool of entities. </p>
<p>A persistent view is created out of:</p><ul>
<li>A dedicated pool of entities that is shared between all the persistent views of the same type.</li>
<li>A bunch of pools of components to which to refer to get instances.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">view</td><td>Shared reference to a dedicated pool of entities. </td></tr>
<tr><td class="paramname">pools</td><td>References to pools of components. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00079">79</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a56b0ad24d885281b2985b083553a1156"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56b0ad24d885281b2985b083553a1156">&#9670;&nbsp;</a></span>begin()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1PersistentView.html#ae563ed31a62fd9f33f93767f0ecdfff5">iterator_type</a> <a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView</a>&lt; Entity, Component &gt;::begin </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an iterator to the first entity that has the given components. </p>
<p>The returned iterator points to the first entity that has the given components. If the view is empty, the returned iterator will be equal to <code><a class="el" href="classentt_1_1PersistentView.html#a48703efeadcd08915f32e5c647db5754" title="Returns an iterator that is past the last entity that has the given components. ">end()</a></code>.</p>
<dl class="section note"><dt>Note</dt><dd>Input iterators stay true to the order imposed to the underlying data structures.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the first entity that has the given components. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00121">121</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="ac6f07a78cd7cac6dc9574877e1073a19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6f07a78cd7cac6dc9574877e1073a19">&#9670;&nbsp;</a></span>data()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classentt_1_1PersistentView.html#a5195c9d1dede0fe6c40bea576398022b">entity_type</a>* <a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView</a>&lt; Entity, Component &gt;::data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the list of entities. </p>
<p>The returned pointer is such that range <code>[<a class="el" href="classentt_1_1PersistentView.html#ac6f07a78cd7cac6dc9574877e1073a19" title="Direct access to the list of entities. ">data()</a>, <a class="el" href="classentt_1_1PersistentView.html#ac6f07a78cd7cac6dc9574877e1073a19" title="Direct access to the list of entities. ">data()</a> + <a class="el" href="classentt_1_1PersistentView.html#a416b2794ee8c13ac0f793e2a7a9ae769" title="Returns the number of entities that have the given components. ">size()</a>]</code> is always a valid range, even if the container is empty.</p>
<dl class="section note"><dt>Note</dt><dd>There are no guarantees on the order of the entities. Use <code>begin</code> and <code>end</code> if you want to iterate the view in the expected order.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the array of entities. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00103">103</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a48703efeadcd08915f32e5c647db5754"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48703efeadcd08915f32e5c647db5754">&#9670;&nbsp;</a></span>end()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1PersistentView.html#ae563ed31a62fd9f33f93767f0ecdfff5">iterator_type</a> <a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView</a>&lt; Entity, Component &gt;::end </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an iterator that is past the last entity that has the given components. </p>
<p>The returned iterator points to the entity following the last entity that has the given components. Attempting to dereference the returned iterator results in undefined behavior.</p>
<dl class="section note"><dt>Note</dt><dd>Input iterators stay true to the order imposed to the underlying data structures.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the entity following the last entity that has the given components. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00140">140</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a7b1ca9cc827871a1dbab18e5cbc0826a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b1ca9cc827871a1dbab18e5cbc0826a">&#9670;&nbsp;</a></span>get() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename... Component&gt; </div>
<div class="memtemplate">
template&lt;typename Comp &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const Comp&amp; <a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView</a>&lt; Entity, Component &gt;::get </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1PersistentView.html#a5195c9d1dede0fe6c40bea576398022b">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the component assigned to the given entity. </p>
<p>Prefer this function instead of <code><a class="el" href="classentt_1_1Registry.html#a904b71bae3eaa69d534b4dc41c15e889" title="Gets a reference to the given component owned by the given entity. ">Registry::get</a></code> during iterations. It has far better performance than its companion function.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid component type results in a compilation error. Attempting to use an entity that doesn't belong to the view results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the view doesn't contain the given entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Comp</td><td>The type of the component to get. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The component assigned to the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00162">162</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="ae9378e3f7e89b0f460874100d0e0ee56"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9378e3f7e89b0f460874100d0e0ee56">&#9670;&nbsp;</a></span>get() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename... Component&gt; </div>
<div class="memtemplate">
template&lt;typename Comp &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Comp&amp; <a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView</a>&lt; Entity, Component &gt;::get </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1PersistentView.html#a5195c9d1dede0fe6c40bea576398022b">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the component assigned to the given entity. </p>
<p>Prefer this function instead of <code><a class="el" href="classentt_1_1Registry.html#a904b71bae3eaa69d534b4dc41c15e889" title="Gets a reference to the given component owned by the given entity. ">Registry::get</a></code> during iterations. It has far better performance than its companion function.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid component type results in a compilation error. Attempting to use an entity that doesn't belong to the view results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the view doesn't contain the given entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Comp</td><td>The type of the component to get. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The component assigned to the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00184">184</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a416b2794ee8c13ac0f793e2a7a9ae769"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a416b2794ee8c13ac0f793e2a7a9ae769">&#9670;&nbsp;</a></span>size()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1PersistentView.html#ac2e81caacece38b84f46c4430cd8cf4e">size_type</a> <a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView</a>&lt; Entity, Component &gt;::size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of entities that have the given components. </p>
<dl class="section return"><dt>Returns</dt><dd>The number of entities that have the given components. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00087">87</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="accde3d4b4a904e79c832f6b05f324b05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#accde3d4b4a904e79c832f6b05f324b05">&#9670;&nbsp;</a></span>sort()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename... Component&gt; </div>
<div class="memtemplate">
template&lt;typename Comp &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1PersistentView.html">entt::PersistentView</a>&lt; Entity, Component &gt;::sort </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sort the shared pool of entities according to the given component. </p>
<p>Persistent views of the same type share with the <a class="el" href="classentt_1_1Registry.html" title="A repository class for entities and components. ">Registry</a> a pool of entities with its own order that doesn't depend on the order of any pool of components. Users can order the underlying data structure so that it respects the order of the pool of the given component.</p>
<dl class="section note"><dt>Note</dt><dd>The shared pool of entities and thus its order is affected by the changes to each and every pool of components that it tracks. Therefore changes to the pools of components can quickly ruin the order imposed to the pool of entities shared between the persistent views.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Comp</td><td>The type of the component to use to impose the order. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00205">205</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/entt/entity/<a class="el" href="view_8hpp_source.html">view.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,116 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1Registry.html">Registry</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entt::Registry&lt; Entity &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#a14524dac71cf528fcdccd74cdf230627">accomodate</a>(entity_type entity, Args &amp;&amp;... args)</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#aa6b578d40a9305869e692167fc3dcddf">assign</a>(entity_type entity, Args &amp;&amp;... args)</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#af51d1553722e555eb1557fc0c68f104a">capacity</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#ae3c9cd27360a869f1e192d159447b5e4">create</a>() noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#ae1d9f447dfda4794f8d364965eab6586">create</a>() noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#a4e1a07f4170764925864b162277485b6">current</a>(entity_type entity) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#afe1fc933ce101207a49b6bdeafa2ce41">destroy</a>(entity_type entity)</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#afccc9bc4af28b679d761f365655e1d42">empty</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#a75ed5006f4be9ea8489a48ef40247e29">empty</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#ad434a1920dd2c6a9a31ab482e2f29038">entity_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#a904b71bae3eaa69d534b4dc41c15e889">get</a>(entity_type entity) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#a6b1cd324d6d080c68f61def36a7a4668">get</a>(entity_type entity) noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#ace82d0e0181bf0872174e1774d729db4">has</a>(entity_type entity) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#a6ff250745f1774984a9524d63855f26d">operator=</a>(const Registry &amp;)=delete</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#a204a8b7bbc95e747ddf21173e1659312">operator=</a>(Registry &amp;&amp;)=delete</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#a139a4d7b711fc1813c6c4520b9e79c09">persistent</a>()</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#ac05c9ccc5fe57df386d8104578fc9675">prepare</a>()</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#ab5022bf3ac71d209cb9b85e686324f28">Registry</a>()=default</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#a441dfbc29b39106fbacec0f0c7b07359">Registry</a>(const Registry &amp;)=delete</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#a9059360e200f7ee688d840f9802e718c">Registry</a>(Registry &amp;&amp;)=delete</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#a856e1f92b8c1c523e66035481ef4ab8d">remove</a>(entity_type entity)</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#a5ce71508e824ea5ef0d95d4baef37503">replace</a>(entity_type entity, Args &amp;&amp;... args)</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#ae58d20711dabcd4959a89e0928974136">reset</a>(entity_type entity)</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#a613333e0a4acb227d08938ccc594e064">reset</a>()</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#a1b6ec743e9a62389cf2bba9a25ee09d7">reset</a>()</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#a16f0e2c46c7f95ce9f16561bbeb6c52c">size</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#a19f832202e918acd5e3708c1c7f33951">size</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#a741ffda6e06838c5593ba97adc7658e2">size_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#a625ada828ff48c153c7be14cc99eeca5">sort</a>(Compare compare)</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#aa3abb830a7ba342266b62ff1a2965754">sort</a>()</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#a11a759638bf2c28ac1670c7b533ca53f">valid</a>(entity_type entity) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#a773c2bb361f4e83aae1349ccfeede56b">version</a>(entity_type entity) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#a82c8996277034df5e72b5f30a70ebb2d">version_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1Registry.html#aed83d4c8f80ae647ee73f2a8440fa09d">view</a>()</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1Registry.html#a82cdceea5721c9b227cdef6d69020047">~Registry</a>()=default</td><td class="entry"><a class="el" href="classentt_1_1Registry.html">entt::Registry&lt; Entity &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

1478
classentt_1_1Registry.html Normal file

File diff suppressed because it is too large Load Diff

94
classentt_1_1SigH.html Normal file
View File

@@ -0,0 +1,94 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: entt::SigH&lt; typename &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1SigH.html">SigH</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entt::SigH&lt; typename &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Signal handler.
<a href="classentt_1_1SigH.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>&gt;</code></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename&gt;<br />
class entt::SigH&lt; typename &gt;</h3>
<p>Signal handler. </p>
<p>Primary template isn't defined on purpose. All the specializations give a compile-time error unless the template parameter is a function type. </p>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00019">19</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>src/entt/signal/<a class="el" href="sigh_8hpp_source.html">sigh.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,99 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">SigH&lt; Ret(Args...)&gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entt::SigH&lt; Ret(Args...)&gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ac61dd0b81a8264df96e4a14ef597dba8">clear</a>() noexcept</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a24a1ade0a4886219fe9a55c3f22ba453">connect</a>()</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ab152ac61c8693e58e712dedd09214af0">connect</a>(Class *instance)</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a476a043603c4561fae32863e6103b2f1">disconnect</a>()</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a22891cefa259e475462242442b0fe55f">disconnect</a>(Class *instance)</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a802baad26c836da4d28d26e1142d7fec">disconnect</a>(Class *instance)</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ab9336ffcfa8bf37b9c402eb70b470483">empty</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a19f0b1697d8f4af9946519c7aba33231">operator=</a>(const SigH &amp;other)</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ac82f1eb153df6f5657ba7bca025c9efc">operator=</a>(SigH &amp;&amp;other)</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#aca4e12793bd2d0fae4d214fde6013d13">operator==</a>(const SigH &amp;other) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a8e3b57f6b3e65034937e410f60635d79">publish</a>(Args... args)</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ab1b9dbb2dea4f33c0556ab2da5d76ae2">SigH</a>() noexcept=default</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a70b4ae257aa3ee5d354de3298caddde3">SigH</a>(const SigH &amp;other)</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a4ecbd8af836c0837365a04f2cebe25bb">SigH</a>(SigH &amp;&amp;other)</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a75f255c0d8a399a9452e2eeb12ff332c">size</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#acfb88c5b425fab6e5c5cd416943d23a7">size_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a77dd7bf9e63e5457c080416f31bb232b">swap</a>(SigH &amp;lhs, SigH &amp;rhs)</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#aed50c6a7584447de8972b8086284f6d9">~SigH</a>() noexcept=default</td><td class="entry"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,752 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: entt::SigH&lt; Ret(Args...)&gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">SigH&lt; Ret(Args...)&gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">entt::SigH&lt; Ret(Args...)&gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Signal handler.
<a href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:acfb88c5b425fab6e5c5cd416943d23a7"><td class="memItemLeft" align="right" valign="top"><a id="acfb88c5b425fab6e5c5cd416943d23a7"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#acfb88c5b425fab6e5c5cd416943d23a7">size_type</a> = typename std::vector&lt; call_type &gt;::<a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#acfb88c5b425fab6e5c5cd416943d23a7">size_type</a></td></tr>
<tr class="memdesc:acfb88c5b425fab6e5c5cd416943d23a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <br /></td></tr>
<tr class="separator:acfb88c5b425fab6e5c5cd416943d23a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab1b9dbb2dea4f33c0556ab2da5d76ae2"><td class="memItemLeft" align="right" valign="top"><a id="ab1b9dbb2dea4f33c0556ab2da5d76ae2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ab1b9dbb2dea4f33c0556ab2da5d76ae2">SigH</a> () noexcept=default</td></tr>
<tr class="memdesc:ab1b9dbb2dea4f33c0556ab2da5d76ae2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor, explicit on purpose. <br /></td></tr>
<tr class="separator:ab1b9dbb2dea4f33c0556ab2da5d76ae2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed50c6a7584447de8972b8086284f6d9"><td class="memItemLeft" align="right" valign="top"><a id="aed50c6a7584447de8972b8086284f6d9"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#aed50c6a7584447de8972b8086284f6d9">~SigH</a> () noexcept=default</td></tr>
<tr class="memdesc:aed50c6a7584447de8972b8086284f6d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor. <br /></td></tr>
<tr class="separator:aed50c6a7584447de8972b8086284f6d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70b4ae257aa3ee5d354de3298caddde3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a70b4ae257aa3ee5d354de3298caddde3">SigH</a> (const <a class="el" href="classentt_1_1SigH.html">SigH</a> &amp;other)</td></tr>
<tr class="memdesc:a70b4ae257aa3ee5d354de3298caddde3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor, listeners are also connected to this signal. <a href="#a70b4ae257aa3ee5d354de3298caddde3">More...</a><br /></td></tr>
<tr class="separator:a70b4ae257aa3ee5d354de3298caddde3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ecbd8af836c0837365a04f2cebe25bb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a4ecbd8af836c0837365a04f2cebe25bb">SigH</a> (<a class="el" href="classentt_1_1SigH.html">SigH</a> &amp;&amp;other)</td></tr>
<tr class="memdesc:a4ecbd8af836c0837365a04f2cebe25bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move constructor. <a href="#a4ecbd8af836c0837365a04f2cebe25bb">More...</a><br /></td></tr>
<tr class="separator:a4ecbd8af836c0837365a04f2cebe25bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19f0b1697d8f4af9946519c7aba33231"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SigH.html">SigH</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a19f0b1697d8f4af9946519c7aba33231">operator=</a> (const <a class="el" href="classentt_1_1SigH.html">SigH</a> &amp;other)</td></tr>
<tr class="memdesc:a19f0b1697d8f4af9946519c7aba33231"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator, listeners are also connected to this signal. <a href="#a19f0b1697d8f4af9946519c7aba33231">More...</a><br /></td></tr>
<tr class="separator:a19f0b1697d8f4af9946519c7aba33231"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac82f1eb153df6f5657ba7bca025c9efc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SigH.html">SigH</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ac82f1eb153df6f5657ba7bca025c9efc">operator=</a> (<a class="el" href="classentt_1_1SigH.html">SigH</a> &amp;&amp;other)</td></tr>
<tr class="memdesc:ac82f1eb153df6f5657ba7bca025c9efc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move operator. <a href="#ac82f1eb153df6f5657ba7bca025c9efc">More...</a><br /></td></tr>
<tr class="separator:ac82f1eb153df6f5657ba7bca025c9efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75f255c0d8a399a9452e2eeb12ff332c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#acfb88c5b425fab6e5c5cd416943d23a7">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a75f255c0d8a399a9452e2eeb12ff332c">size</a> () const noexcept</td></tr>
<tr class="memdesc:a75f255c0d8a399a9452e2eeb12ff332c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of listeners connected to the signal. <a href="#a75f255c0d8a399a9452e2eeb12ff332c">More...</a><br /></td></tr>
<tr class="separator:a75f255c0d8a399a9452e2eeb12ff332c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9336ffcfa8bf37b9c402eb70b470483"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ab9336ffcfa8bf37b9c402eb70b470483">empty</a> () const noexcept</td></tr>
<tr class="memdesc:ab9336ffcfa8bf37b9c402eb70b470483"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true is at least a listener is connected to the signal. <a href="#ab9336ffcfa8bf37b9c402eb70b470483">More...</a><br /></td></tr>
<tr class="separator:ab9336ffcfa8bf37b9c402eb70b470483"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac61dd0b81a8264df96e4a14ef597dba8"><td class="memItemLeft" align="right" valign="top"><a id="ac61dd0b81a8264df96e4a14ef597dba8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ac61dd0b81a8264df96e4a14ef597dba8">clear</a> () noexcept</td></tr>
<tr class="memdesc:ac61dd0b81a8264df96e4a14ef597dba8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects all the listeners from the signal. <br /></td></tr>
<tr class="separator:ac61dd0b81a8264df96e4a14ef597dba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24a1ade0a4886219fe9a55c3f22ba453"><td class="memTemplParams" colspan="2">template&lt;Ret(*)(Args...) Function&gt; </td></tr>
<tr class="memitem:a24a1ade0a4886219fe9a55c3f22ba453"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a24a1ade0a4886219fe9a55c3f22ba453">connect</a> ()</td></tr>
<tr class="memdesc:a24a1ade0a4886219fe9a55c3f22ba453"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connects a free function to the signal. <a href="#a24a1ade0a4886219fe9a55c3f22ba453">More...</a><br /></td></tr>
<tr class="separator:a24a1ade0a4886219fe9a55c3f22ba453"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab152ac61c8693e58e712dedd09214af0"><td class="memTemplParams" colspan="2">template&lt;typename Class , Ret(Class::*)(Args...) Member&gt; </td></tr>
<tr class="memitem:ab152ac61c8693e58e712dedd09214af0"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ab152ac61c8693e58e712dedd09214af0">connect</a> (Class *instance)</td></tr>
<tr class="memdesc:ab152ac61c8693e58e712dedd09214af0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connects the member function for the given instance to the signal. <a href="#ab152ac61c8693e58e712dedd09214af0">More...</a><br /></td></tr>
<tr class="separator:ab152ac61c8693e58e712dedd09214af0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a476a043603c4561fae32863e6103b2f1"><td class="memTemplParams" colspan="2">template&lt;Ret(*)(Args...) Function&gt; </td></tr>
<tr class="memitem:a476a043603c4561fae32863e6103b2f1"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a476a043603c4561fae32863e6103b2f1">disconnect</a> ()</td></tr>
<tr class="memdesc:a476a043603c4561fae32863e6103b2f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects a free function from the signal. <a href="#a476a043603c4561fae32863e6103b2f1">More...</a><br /></td></tr>
<tr class="separator:a476a043603c4561fae32863e6103b2f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22891cefa259e475462242442b0fe55f"><td class="memTemplParams" colspan="2">template&lt;typename Class , Ret(Class::*)(Args...) Member&gt; </td></tr>
<tr class="memitem:a22891cefa259e475462242442b0fe55f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a22891cefa259e475462242442b0fe55f">disconnect</a> (Class *instance)</td></tr>
<tr class="memdesc:a22891cefa259e475462242442b0fe55f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects the member function of the given instance from the signal. <a href="#a22891cefa259e475462242442b0fe55f">More...</a><br /></td></tr>
<tr class="separator:a22891cefa259e475462242442b0fe55f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a802baad26c836da4d28d26e1142d7fec"><td class="memTemplParams" colspan="2">template&lt;typename Class &gt; </td></tr>
<tr class="memitem:a802baad26c836da4d28d26e1142d7fec"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a802baad26c836da4d28d26e1142d7fec">disconnect</a> (Class *instance)</td></tr>
<tr class="memdesc:a802baad26c836da4d28d26e1142d7fec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all existing connections for the given instance. <a href="#a802baad26c836da4d28d26e1142d7fec">More...</a><br /></td></tr>
<tr class="separator:a802baad26c836da4d28d26e1142d7fec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e3b57f6b3e65034937e410f60635d79"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a8e3b57f6b3e65034937e410f60635d79">publish</a> (Args... args)</td></tr>
<tr class="memdesc:a8e3b57f6b3e65034937e410f60635d79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Triggers the signal. <a href="#a8e3b57f6b3e65034937e410f60635d79">More...</a><br /></td></tr>
<tr class="separator:a8e3b57f6b3e65034937e410f60635d79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca4e12793bd2d0fae4d214fde6013d13"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#aca4e12793bd2d0fae4d214fde6013d13">operator==</a> (const <a class="el" href="classentt_1_1SigH.html">SigH</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:aca4e12793bd2d0fae4d214fde6013d13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the contents of the two signals are identical. <a href="#aca4e12793bd2d0fae4d214fde6013d13">More...</a><br /></td></tr>
<tr class="separator:aca4e12793bd2d0fae4d214fde6013d13"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a77dd7bf9e63e5457c080416f31bb232b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a77dd7bf9e63e5457c080416f31bb232b">swap</a> (<a class="el" href="classentt_1_1SigH.html">SigH</a> &amp;lhs, <a class="el" href="classentt_1_1SigH.html">SigH</a> &amp;rhs)</td></tr>
<tr class="memdesc:a77dd7bf9e63e5457c080416f31bb232b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps listeners between the two signals. <a href="#a77dd7bf9e63e5457c080416f31bb232b">More...</a><br /></td></tr>
<tr class="separator:a77dd7bf9e63e5457c080416f31bb232b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Ret, typename... Args&gt;<br />
class entt::SigH&lt; Ret(Args...)&gt;</h3>
<p>Signal handler. </p>
<p>Unmanaged signal handler. It works directly with naked pointers to classes and pointers to member functions as well as pointers to free functions. Users of this class are in charge of disconnecting instances before deleting them.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Ret</td><td>Return type of a function type. </td></tr>
<tr><td class="paramname">Args</td><td>Types of the arguments of a function type. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00033">33</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a70b4ae257aa3ee5d354de3298caddde3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a70b4ae257aa3ee5d354de3298caddde3">&#9670;&nbsp;</a></span>SigH() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::<a class="el" href="classentt_1_1SigH.html">SigH</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1SigH.html">SigH</a>&lt; Ret(Args...)&gt; &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy constructor, listeners are also connected to this signal. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>A signal to be used as source to initialize this instance. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00061">61</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<a id="a4ecbd8af836c0837365a04f2cebe25bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ecbd8af836c0837365a04f2cebe25bb">&#9670;&nbsp;</a></span>SigH() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::<a class="el" href="classentt_1_1SigH.html">SigH</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SigH.html">SigH</a>&lt; Ret(Args...)&gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default move constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>A signal to be used as source to initialize this instance. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00069">69</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a24a1ade0a4886219fe9a55c3f22ba453"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24a1ade0a4886219fe9a55c3f22ba453">&#9670;&nbsp;</a></span>connect() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<div class="memtemplate">
template&lt;Ret(*)(Args...) Function&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::connect </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Connects a free function to the signal. </p>
<dl class="section warning"><dt>Warning</dt><dd>The signal doesn't perform checks on multiple connections for free functions.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Function</td><td>A valid free function pointer. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00126">126</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<a id="ab152ac61c8693e58e712dedd09214af0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab152ac61c8693e58e712dedd09214af0">&#9670;&nbsp;</a></span>connect() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<div class="memtemplate">
template&lt;typename Class , Ret(Class::*)(Args...) Member&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::connect </td>
<td>(</td>
<td class="paramtype">Class *&#160;</td>
<td class="paramname"><em>instance</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Connects the member function for the given instance to the signal. </p>
<p>The signal isn't responsible for the connected object. Users must guarantee that the lifetime of the instance overcomes the one of the signal.</p>
<dl class="section warning"><dt>Warning</dt><dd>The signal doesn't perform checks on multiple connections for the same member method of a given instance.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Class</td><td>The type of the class to which the member function belongs. </td></tr>
<tr><td class="paramname">Member</td><td>The member function to connect to the signal. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">instance</td><td>A valid instance of type pointer to <code>Class</code>. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00147">147</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<a id="a476a043603c4561fae32863e6103b2f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a476a043603c4561fae32863e6103b2f1">&#9670;&nbsp;</a></span>disconnect() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<div class="memtemplate">
template&lt;Ret(*)(Args...) Function&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::disconnect </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Disconnects a free function from the signal. </p>
<p>If the free function has been connected more than once, all the connections are broken once the function returns.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Function</td><td>A valid free function pointer. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00161">161</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<a id="a22891cefa259e475462242442b0fe55f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22891cefa259e475462242442b0fe55f">&#9670;&nbsp;</a></span>disconnect() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<div class="memtemplate">
template&lt;typename Class , Ret(Class::*)(Args...) Member&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::disconnect </td>
<td>(</td>
<td class="paramtype">Class *&#160;</td>
<td class="paramname"><em>instance</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Disconnects the member function of the given instance from the signal. </p>
<p>If the member function for the given instance has been connected more than once, all the connections are broken once the function returns.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Class</td><td>The type of the class to which the member function belongs. </td></tr>
<tr><td class="paramname">Member</td><td>The member function to connect to the signal. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">instance</td><td>A valid instance of type pointer to <code>Class</code>. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00178">178</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<a id="a802baad26c836da4d28d26e1142d7fec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a802baad26c836da4d28d26e1142d7fec">&#9670;&nbsp;</a></span>disconnect() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<div class="memtemplate">
template&lt;typename Class &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::disconnect </td>
<td>(</td>
<td class="paramtype">Class *&#160;</td>
<td class="paramname"><em>instance</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes all existing connections for the given instance. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Class</td><td>The type of the class to which the member function belongs. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">instance</td><td>A valid instance of type pointer to <code>Class</code>. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00190">190</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<a id="ab9336ffcfa8bf37b9c402eb70b470483"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9336ffcfa8bf37b9c402eb70b470483">&#9670;&nbsp;</a></span>empty()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::empty </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true is at least a listener is connected to the signal. </p>
<dl class="section return"><dt>Returns</dt><dd>True if the signal has no listeners connected, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00105">105</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<a id="a19f0b1697d8f4af9946519c7aba33231"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19f0b1697d8f4af9946519c7aba33231">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SigH.html">SigH</a>&amp; <a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1SigH.html">SigH</a>&lt; Ret(Args...)&gt; &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Assignment operator, listeners are also connected to this signal. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>A signal to be used as source to initialize this instance. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>This signal. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00078">78</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<a id="ac82f1eb153df6f5657ba7bca025c9efc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac82f1eb153df6f5657ba7bca025c9efc">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SigH.html">SigH</a>&amp; <a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SigH.html">SigH</a>&lt; Ret(Args...)&gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default move operator. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>A signal to be used as source to initialize this instance. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>This signal. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00088">88</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<a id="aca4e12793bd2d0fae4d214fde6013d13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca4e12793bd2d0fae4d214fde6013d13">&#9670;&nbsp;</a></span>operator==()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::operator== </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1SigH.html">SigH</a>&lt; Ret(Args...)&gt; &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if the contents of the two signals are identical. </p>
<p>Two signals are identical if they have the same size and the same listeners have been connected to them.</p>
<dl class="section note"><dt>Note</dt><dd>This function is pretty expensive, use it carefully.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>Signal with which to compare. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the two signals are identical, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00230">230</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<a id="a8e3b57f6b3e65034937e410f60635d79"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e3b57f6b3e65034937e410f60635d79">&#9670;&nbsp;</a></span>publish()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::publish </td>
<td>(</td>
<td class="paramtype">Args...&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Triggers the signal. </p>
<p>All the listeners are notified. Order isn't guaranteed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>Arguments to use when invoking listeners. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00202">202</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<a id="a75f255c0d8a399a9452e2eeb12ff332c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75f255c0d8a399a9452e2eeb12ff332c">&#9670;&nbsp;</a></span>size()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#acfb88c5b425fab6e5c5cd416943d23a7">size_type</a> <a class="el" href="classentt_1_1SigH.html">entt::SigH</a>&lt; Ret(Args...)&gt;::size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The number of listeners connected to the signal. </p>
<dl class="section return"><dt>Returns</dt><dd>The number of listeners currently connected. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00097">97</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a77dd7bf9e63e5457c080416f31bb232b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77dd7bf9e63e5457c080416f31bb232b">&#9670;&nbsp;</a></span>swap</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Ret , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void swap </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SigH.html">SigH</a>&lt; Ret(Args...)&gt; &amp;&#160;</td>
<td class="paramname"><em>lhs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classentt_1_1SigH.html">SigH</a>&lt; Ret(Args...)&gt; &amp;&#160;</td>
<td class="paramname"><em>rhs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Swaps listeners between the two signals. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">lhs</td><td>A valid signal object. </td></tr>
<tr><td class="paramname">rhs</td><td>A valid signal object. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sigh_8hpp_source.html#l00213">213</a> of file <a class="el" href="sigh_8hpp_source.html">sigh.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/entt/signal/<a class="el" href="sigh_8hpp_source.html">sigh.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,94 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: entt::SparseSet&lt;... &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entt::SparseSet&lt;... &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Sparse set.
<a href="classentt_1_1SparseSet.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>&gt;</code></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename...&gt;<br />
class entt::SparseSet&lt;... &gt;</h3>
<p>Sparse set. </p>
<p>Primary template isn't defined on purpose. All the specializations give a compile-time error, but for a few reasonable cases. </p>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00023">23</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>src/entt/entity/<a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,109 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">SparseSet&lt; Entity, Type &gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entt::SparseSet&lt; Entity, Type &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1efc9899f2ede4fd8ea1840a7ed8dbc7">begin</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#aaf02adad06199a55c618622c365c0287">construct</a>(entity_type entity, Args &amp;&amp;... args)</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#abb58b7215e9c15cd705f66e4b233706d">entt::SparseSet&lt; Entity &gt;::construct</a>(entity_type entity)</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6e4dda542e3d725dd963dea57bfb9cb1">data</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a06b863abd1b457c48b7080e203b47a0f">destroy</a>(entity_type entity) override</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a9d6b9c98d2645d821c81ff7d3586ca27">empty</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a2c54395d55054437bfe179718e102181">end</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#afe382e2d5c8769fb3d924e1a357cf9b0">entity_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a8da654fb96317df9b00ea48b75cf642a">get</a>(entity_type entity) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#ae3c82ad4f376e67e8ccafede84942cf2">get</a>(entity_type entity) noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1b6a33e6e65345bf028877efa74c5a5e">has</a>(entity_type entity) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#aab1937b624841a57dd7487e7a40ea0ac">iterator_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#aa700bb907a18470dce144f84822c67ae">operator=</a>(const SparseSet &amp;)=delete</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a52a81e838ae87413116ab9165ab9ba86">operator=</a>(SparseSet &amp;&amp;)=default</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#ad161a395ca3979154a333520662c7737">pos_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a05125091c25b7a3c62561c247e09c5a2">raw</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a52327d1e800f00ebc3f0364bcef7aa05">raw</a>() noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a3b138c121f11592a3f9e9f2fc2bb67fe">reset</a>() override</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab1e2dd6f41d75e6b808a453a24d3d955">respect</a>(const SparseSet&lt; Entity &gt; &amp;other)</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a337360e8d0f44c373acef65328a3e9f8">size</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a27a88e2bb0822de41131741d9ffcded5">size_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ac222c5dcab4e40674dc0152cc2774409">sort</a>(Compare compare)</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a24c21285684a38acf7d1a3384ac1ab5c">SparseSet</a>() noexcept=default</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a52d68a9763bed211729df965cb7ab859">SparseSet</a>(const SparseSet &amp;)=delete</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a11cbb29701b5a1b1a6e4b77d19d29cec">SparseSet</a>(SparseSet &amp;&amp;)=default</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a9f17b5608443a236189e10089f46b89d">swap</a>(entity_type lhs, entity_type rhs) override</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6c078509aa5b611563c7d11f3a5114bf">~SparseSet</a>() noexcept=default</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,636 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: entt::SparseSet&lt; Entity, Type &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">SparseSet&lt; Entity, Type &gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">entt::SparseSet&lt; Entity, Type &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Extended sparse set implementation.
<a href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for entt::SparseSet&lt; Entity, Type &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4__inherit__graph.png" border="0" usemap="#entt_1_1SparseSet_3_01Entity_00_01Type_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="entt_1_1SparseSet_3_01Entity_00_01Type_01_4_inherit__map" id="entt_1_1SparseSet_3_01Entity_00_01Type_01_4_inherit__map">
<area shape="rect" id="node2" href="classentt_1_1SparseSet_3_01Entity_01_4.html" title="Basic sparse set implementation. " alt="" coords="5,5,176,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for entt::SparseSet&lt; Entity, Type &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4__coll__graph.png" border="0" usemap="#entt_1_1SparseSet_3_01Entity_00_01Type_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="entt_1_1SparseSet_3_01Entity_00_01Type_01_4_coll__map" id="entt_1_1SparseSet_3_01Entity_00_01Type_01_4_coll__map">
<area shape="rect" id="node2" href="classentt_1_1SparseSet_3_01Entity_01_4.html" title="Basic sparse set implementation. " alt="" coords="5,5,176,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a81d23c99f42e6bb7fcb4065657ae9507"><td class="memItemLeft" align="right" valign="top"><a id="a81d23c99f42e6bb7fcb4065657ae9507"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">type</a> = Type</td></tr>
<tr class="memdesc:a81d23c99f42e6bb7fcb4065657ae9507"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the objects associated to the entities. <br /></td></tr>
<tr class="separator:a81d23c99f42e6bb7fcb4065657ae9507"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe382e2d5c8769fb3d924e1a357cf9b0"><td class="memItemLeft" align="right" valign="top"><a id="afe382e2d5c8769fb3d924e1a357cf9b0"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#afe382e2d5c8769fb3d924e1a357cf9b0">entity_type</a> = typename <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">underlying_type::entity_type</a></td></tr>
<tr class="memdesc:afe382e2d5c8769fb3d924e1a357cf9b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Underlying entity identifier. <br /></td></tr>
<tr class="separator:afe382e2d5c8769fb3d924e1a357cf9b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad161a395ca3979154a333520662c7737"><td class="memItemLeft" align="right" valign="top"><a id="ad161a395ca3979154a333520662c7737"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#ad161a395ca3979154a333520662c7737">pos_type</a> = typename <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a20c218a69cf339371251ffa5580d7aa0">underlying_type::pos_type</a></td></tr>
<tr class="memdesc:ad161a395ca3979154a333520662c7737"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entity dependent position type. <br /></td></tr>
<tr class="separator:ad161a395ca3979154a333520662c7737"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27a88e2bb0822de41131741d9ffcded5"><td class="memItemLeft" align="right" valign="top"><a id="a27a88e2bb0822de41131741d9ffcded5"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a27a88e2bb0822de41131741d9ffcded5">size_type</a> = typename <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab81c48dcee7a1104ee82794613ee7ed2">underlying_type::size_type</a></td></tr>
<tr class="memdesc:a27a88e2bb0822de41131741d9ffcded5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <br /></td></tr>
<tr class="separator:a27a88e2bb0822de41131741d9ffcded5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab1937b624841a57dd7487e7a40ea0ac"><td class="memItemLeft" align="right" valign="top"><a id="aab1937b624841a57dd7487e7a40ea0ac"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#aab1937b624841a57dd7487e7a40ea0ac">iterator_type</a> = typename <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">underlying_type::iterator_type</a></td></tr>
<tr class="memdesc:aab1937b624841a57dd7487e7a40ea0ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Input iterator type. <br /></td></tr>
<tr class="separator:aab1937b624841a57dd7487e7a40ea0ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classentt_1_1SparseSet_3_01Entity_01_4')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td></tr>
<tr class="memitem:a7d36e852257a965a9a0ed3fb636433e2 inherit pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a id="a7d36e852257a965a9a0ed3fb636433e2"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> = Entity</td></tr>
<tr class="memdesc:a7d36e852257a965a9a0ed3fb636433e2 inherit pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Underlying entity identifier. <br /></td></tr>
<tr class="separator:a7d36e852257a965a9a0ed3fb636433e2 inherit pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20c218a69cf339371251ffa5580d7aa0 inherit pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a id="a20c218a69cf339371251ffa5580d7aa0"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a20c218a69cf339371251ffa5580d7aa0">pos_type</a> = <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a></td></tr>
<tr class="memdesc:a20c218a69cf339371251ffa5580d7aa0 inherit pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entity dependent position type. <br /></td></tr>
<tr class="separator:a20c218a69cf339371251ffa5580d7aa0 inherit pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab81c48dcee7a1104ee82794613ee7ed2 inherit pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a id="ab81c48dcee7a1104ee82794613ee7ed2"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab81c48dcee7a1104ee82794613ee7ed2">size_type</a> = std::size_t</td></tr>
<tr class="memdesc:ab81c48dcee7a1104ee82794613ee7ed2 inherit pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <br /></td></tr>
<tr class="separator:ab81c48dcee7a1104ee82794613ee7ed2 inherit pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ad77aed1e49af60b61044c996969b9a inherit pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a id="a1ad77aed1e49af60b61044c996969b9a"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">iterator_type</a> = Iterator</td></tr>
<tr class="memdesc:a1ad77aed1e49af60b61044c996969b9a inherit pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Input iterator type. <br /></td></tr>
<tr class="separator:a1ad77aed1e49af60b61044c996969b9a inherit pub_types_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a24c21285684a38acf7d1a3384ac1ab5c"><td class="memItemLeft" align="right" valign="top"><a id="a24c21285684a38acf7d1a3384ac1ab5c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a24c21285684a38acf7d1a3384ac1ab5c">SparseSet</a> () noexcept=default</td></tr>
<tr class="memdesc:a24c21285684a38acf7d1a3384ac1ab5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor, explicit on purpose. <br /></td></tr>
<tr class="separator:a24c21285684a38acf7d1a3384ac1ab5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52d68a9763bed211729df965cb7ab859"><td class="memItemLeft" align="right" valign="top"><a id="a52d68a9763bed211729df965cb7ab859"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a52d68a9763bed211729df965cb7ab859">SparseSet</a> (const <a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;)=delete</td></tr>
<tr class="memdesc:a52d68a9763bed211729df965cb7ab859"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copying a sparse set isn't allowed. <br /></td></tr>
<tr class="separator:a52d68a9763bed211729df965cb7ab859"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11cbb29701b5a1b1a6e4b77d19d29cec"><td class="memItemLeft" align="right" valign="top"><a id="a11cbb29701b5a1b1a6e4b77d19d29cec"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a11cbb29701b5a1b1a6e4b77d19d29cec">SparseSet</a> (<a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a11cbb29701b5a1b1a6e4b77d19d29cec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move constructor. <br /></td></tr>
<tr class="separator:a11cbb29701b5a1b1a6e4b77d19d29cec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa700bb907a18470dce144f84822c67ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#aa700bb907a18470dce144f84822c67ae">operator=</a> (const <a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;)=delete</td></tr>
<tr class="memdesc:aa700bb907a18470dce144f84822c67ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copying a sparse set isn't allowed. <a href="#aa700bb907a18470dce144f84822c67ae">More...</a><br /></td></tr>
<tr class="separator:aa700bb907a18470dce144f84822c67ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52a81e838ae87413116ab9165ab9ba86"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a52a81e838ae87413116ab9165ab9ba86">operator=</a> (<a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a52a81e838ae87413116ab9165ab9ba86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move operator. <a href="#a52a81e838ae87413116ab9165ab9ba86">More...</a><br /></td></tr>
<tr class="separator:a52a81e838ae87413116ab9165ab9ba86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05125091c25b7a3c62561c247e09c5a2"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a05125091c25b7a3c62561c247e09c5a2">raw</a> () const noexcept</td></tr>
<tr class="memdesc:a05125091c25b7a3c62561c247e09c5a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the array of objects. <a href="#a05125091c25b7a3c62561c247e09c5a2">More...</a><br /></td></tr>
<tr class="separator:a05125091c25b7a3c62561c247e09c5a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52327d1e800f00ebc3f0364bcef7aa05"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a52327d1e800f00ebc3f0364bcef7aa05">raw</a> () noexcept</td></tr>
<tr class="memdesc:a52327d1e800f00ebc3f0364bcef7aa05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the array of objects. <a href="#a52327d1e800f00ebc3f0364bcef7aa05">More...</a><br /></td></tr>
<tr class="separator:a52327d1e800f00ebc3f0364bcef7aa05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8da654fb96317df9b00ea48b75cf642a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a8da654fb96317df9b00ea48b75cf642a">get</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> entity) const noexcept</td></tr>
<tr class="memdesc:a8da654fb96317df9b00ea48b75cf642a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object associated to the given entity. <a href="#a8da654fb96317df9b00ea48b75cf642a">More...</a><br /></td></tr>
<tr class="separator:a8da654fb96317df9b00ea48b75cf642a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3c82ad4f376e67e8ccafede84942cf2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#ae3c82ad4f376e67e8ccafede84942cf2">get</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> entity) noexcept</td></tr>
<tr class="memdesc:ae3c82ad4f376e67e8ccafede84942cf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object associated to the given entity. <a href="#ae3c82ad4f376e67e8ccafede84942cf2">More...</a><br /></td></tr>
<tr class="separator:ae3c82ad4f376e67e8ccafede84942cf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf02adad06199a55c618622c365c0287"><td class="memTemplParams" colspan="2">template&lt;typename... Args&gt; </td></tr>
<tr class="memitem:aaf02adad06199a55c618622c365c0287"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">type</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#aaf02adad06199a55c618622c365c0287">construct</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> entity, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:aaf02adad06199a55c618622c365c0287"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns an entity to the sparse set and constructs its object. <a href="#aaf02adad06199a55c618622c365c0287">More...</a><br /></td></tr>
<tr class="separator:aaf02adad06199a55c618622c365c0287"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06b863abd1b457c48b7080e203b47a0f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a06b863abd1b457c48b7080e203b47a0f">destroy</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> entity) override</td></tr>
<tr class="memdesc:a06b863abd1b457c48b7080e203b47a0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes an entity from the sparse set and destroies its object. <a href="#a06b863abd1b457c48b7080e203b47a0f">More...</a><br /></td></tr>
<tr class="separator:a06b863abd1b457c48b7080e203b47a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f17b5608443a236189e10089f46b89d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a9f17b5608443a236189e10089f46b89d">swap</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> lhs, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> rhs) override</td></tr>
<tr class="memdesc:a9f17b5608443a236189e10089f46b89d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps the two entities and their objects. <a href="#a9f17b5608443a236189e10089f46b89d">More...</a><br /></td></tr>
<tr class="separator:a9f17b5608443a236189e10089f46b89d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b138c121f11592a3f9e9f2fc2bb67fe"><td class="memItemLeft" align="right" valign="top"><a id="a3b138c121f11592a3f9e9f2fc2bb67fe"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a3b138c121f11592a3f9e9f2fc2bb67fe">reset</a> () override</td></tr>
<tr class="memdesc:a3b138c121f11592a3f9e9f2fc2bb67fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the sparse set. <br /></td></tr>
<tr class="separator:a3b138c121f11592a3f9e9f2fc2bb67fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentt_1_1SparseSet_3_01Entity_01_4')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td></tr>
<tr class="memitem:abbb28cca309663bae49e1617f83ad76a inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a id="abbb28cca309663bae49e1617f83ad76a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#abbb28cca309663bae49e1617f83ad76a">SparseSet</a> () noexcept=default</td></tr>
<tr class="memdesc:abbb28cca309663bae49e1617f83ad76a inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor, explicit on purpose. <br /></td></tr>
<tr class="separator:abbb28cca309663bae49e1617f83ad76a inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4ad5318f2be78e8e4336bdf4b012905 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a id="aa4ad5318f2be78e8e4336bdf4b012905"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#aa4ad5318f2be78e8e4336bdf4b012905">SparseSet</a> (const <a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;)=delete</td></tr>
<tr class="memdesc:aa4ad5318f2be78e8e4336bdf4b012905 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copying a sparse set isn't allowed. <br /></td></tr>
<tr class="separator:aa4ad5318f2be78e8e4336bdf4b012905 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdfceb557303dee515fe906a13ac759e inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a id="acdfceb557303dee515fe906a13ac759e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#acdfceb557303dee515fe906a13ac759e">SparseSet</a> (<a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:acdfceb557303dee515fe906a13ac759e inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move constructor. <br /></td></tr>
<tr class="separator:acdfceb557303dee515fe906a13ac759e inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c078509aa5b611563c7d11f3a5114bf inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a id="a6c078509aa5b611563c7d11f3a5114bf"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6c078509aa5b611563c7d11f3a5114bf">~SparseSet</a> () noexcept=default</td></tr>
<tr class="memdesc:a6c078509aa5b611563c7d11f3a5114bf inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor. <br /></td></tr>
<tr class="separator:a6c078509aa5b611563c7d11f3a5114bf inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34ffc79377cef381ef5af2e75d61cf4d inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a34ffc79377cef381ef5af2e75d61cf4d">operator=</a> (const <a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;)=delete</td></tr>
<tr class="memdesc:a34ffc79377cef381ef5af2e75d61cf4d inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copying a sparse set isn't allowed. <a href="classentt_1_1SparseSet_3_01Entity_01_4.html#a34ffc79377cef381ef5af2e75d61cf4d">More...</a><br /></td></tr>
<tr class="separator:a34ffc79377cef381ef5af2e75d61cf4d inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24ddfc9e45d7b70639124fe7c2800384 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a24ddfc9e45d7b70639124fe7c2800384">operator=</a> (<a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a24ddfc9e45d7b70639124fe7c2800384 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move operator. <a href="classentt_1_1SparseSet_3_01Entity_01_4.html#a24ddfc9e45d7b70639124fe7c2800384">More...</a><br /></td></tr>
<tr class="separator:a24ddfc9e45d7b70639124fe7c2800384 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a337360e8d0f44c373acef65328a3e9f8 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab81c48dcee7a1104ee82794613ee7ed2">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a337360e8d0f44c373acef65328a3e9f8">size</a> () const noexcept</td></tr>
<tr class="memdesc:a337360e8d0f44c373acef65328a3e9f8 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of elements in the sparse set. <a href="classentt_1_1SparseSet_3_01Entity_01_4.html#a337360e8d0f44c373acef65328a3e9f8">More...</a><br /></td></tr>
<tr class="separator:a337360e8d0f44c373acef65328a3e9f8 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d6b9c98d2645d821c81ff7d3586ca27 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a9d6b9c98d2645d821c81ff7d3586ca27">empty</a> () const noexcept</td></tr>
<tr class="memdesc:a9d6b9c98d2645d821c81ff7d3586ca27 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the sparse set is empty. <a href="classentt_1_1SparseSet_3_01Entity_01_4.html#a9d6b9c98d2645d821c81ff7d3586ca27">More...</a><br /></td></tr>
<tr class="separator:a9d6b9c98d2645d821c81ff7d3586ca27 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e4dda542e3d725dd963dea57bfb9cb1 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6e4dda542e3d725dd963dea57bfb9cb1">data</a> () const noexcept</td></tr>
<tr class="memdesc:a6e4dda542e3d725dd963dea57bfb9cb1 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the internal packed array. <a href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6e4dda542e3d725dd963dea57bfb9cb1">More...</a><br /></td></tr>
<tr class="separator:a6e4dda542e3d725dd963dea57bfb9cb1 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1efc9899f2ede4fd8ea1840a7ed8dbc7 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1efc9899f2ede4fd8ea1840a7ed8dbc7">begin</a> () const noexcept</td></tr>
<tr class="memdesc:a1efc9899f2ede4fd8ea1840a7ed8dbc7 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the beginning. <a href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1efc9899f2ede4fd8ea1840a7ed8dbc7">More...</a><br /></td></tr>
<tr class="separator:a1efc9899f2ede4fd8ea1840a7ed8dbc7 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c54395d55054437bfe179718e102181 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a2c54395d55054437bfe179718e102181">end</a> () const noexcept</td></tr>
<tr class="memdesc:a2c54395d55054437bfe179718e102181 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the end. <a href="classentt_1_1SparseSet_3_01Entity_01_4.html#a2c54395d55054437bfe179718e102181">More...</a><br /></td></tr>
<tr class="separator:a2c54395d55054437bfe179718e102181 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b6a33e6e65345bf028877efa74c5a5e inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1b6a33e6e65345bf028877efa74c5a5e">has</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> entity) const noexcept</td></tr>
<tr class="memdesc:a1b6a33e6e65345bf028877efa74c5a5e inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the sparse set contains the given entity. <a href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1b6a33e6e65345bf028877efa74c5a5e">More...</a><br /></td></tr>
<tr class="separator:a1b6a33e6e65345bf028877efa74c5a5e inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7aa0a2c4f286228fc47d32761552bc13 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a20c218a69cf339371251ffa5580d7aa0">pos_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7aa0a2c4f286228fc47d32761552bc13">get</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> entity) const noexcept</td></tr>
<tr class="memdesc:a7aa0a2c4f286228fc47d32761552bc13 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the position of the entity in the sparse set. <a href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7aa0a2c4f286228fc47d32761552bc13">More...</a><br /></td></tr>
<tr class="separator:a7aa0a2c4f286228fc47d32761552bc13 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb58b7215e9c15cd705f66e4b233706d inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a20c218a69cf339371251ffa5580d7aa0">pos_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#abb58b7215e9c15cd705f66e4b233706d">construct</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> entity)</td></tr>
<tr class="memdesc:abb58b7215e9c15cd705f66e4b233706d inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns an entity to the sparse set. <a href="classentt_1_1SparseSet_3_01Entity_01_4.html#abb58b7215e9c15cd705f66e4b233706d">More...</a><br /></td></tr>
<tr class="separator:abb58b7215e9c15cd705f66e4b233706d inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac222c5dcab4e40674dc0152cc2774409 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memTemplParams" colspan="2">template&lt;typename Compare &gt; </td></tr>
<tr class="memitem:ac222c5dcab4e40674dc0152cc2774409 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ac222c5dcab4e40674dc0152cc2774409">sort</a> (Compare compare)</td></tr>
<tr class="memdesc:ac222c5dcab4e40674dc0152cc2774409 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort entities according to the given comparison function. <a href="classentt_1_1SparseSet_3_01Entity_01_4.html#ac222c5dcab4e40674dc0152cc2774409">More...</a><br /></td></tr>
<tr class="separator:ac222c5dcab4e40674dc0152cc2774409 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1e2dd6f41d75e6b808a453a24d3d955 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab1e2dd6f41d75e6b808a453a24d3d955">respect</a> (const <a class="el" href="classentt_1_1SparseSet.html">SparseSet</a>&lt; Entity &gt; &amp;other)</td></tr>
<tr class="memdesc:ab1e2dd6f41d75e6b808a453a24d3d955 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort entities according to their order in the given sparse set. <a href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab1e2dd6f41d75e6b808a453a24d3d955">More...</a><br /></td></tr>
<tr class="separator:ab1e2dd6f41d75e6b808a453a24d3d955 inherit pub_methods_classentt_1_1SparseSet_3_01Entity_01_4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Entity, typename Type&gt;<br />
class entt::SparseSet&lt; Entity, Type &gt;</h3>
<p>Extended sparse set implementation. </p>
<p>This specialization of a sparse set associates an object to an entity. The main purpose of this class is to use sparse sets to store components in a <a class="el" href="classentt_1_1Registry.html" title="A repository class for entities and components. ">Registry</a>. It guarantees fast access both to the elements and to the entities.</p>
<dl class="section note"><dt>Note</dt><dd>Entities and objects have the same order. It's guaranteed both in case of raw access (either to entities or objects) and when using input iterators.</dd>
<dd>
Internal data structures arrange elements to maximize performance. Because of that, there are no guarantees that elements have the expected order when iterate directly the internal packed array (see <code>raw</code> and <code>size</code> member functions for that). Use <code>begin</code> and <code>end</code> instead.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html" title="Basic sparse set implementation. ">SparseSet&lt;Entity&gt;</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Entity</td><td>A valid entity type (see <a class="el" href="structentt_1_1entt__traits.html" title="Entity traits. ">entt_traits</a> for more details). </td></tr>
<tr><td class="paramname">Type</td><td>The type of the objects assigned to the entities. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00402">402</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aaf02adad06199a55c618622c365c0287"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf02adad06199a55c618622c365c0287">&#9670;&nbsp;</a></span>construct()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Type &gt; </div>
<div class="memtemplate">
template&lt;typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">type</a>&amp; <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity, Type &gt;::construct </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Assigns an entity to the sparse set and constructs its object. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an entity that already belongs to the sparse set results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the sparse set already contains the given entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Args</td><td>The type of the params used to construct the object. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
<tr><td class="paramname">args</td><td>The params to use to construct an object for the entity. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The object associated to the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00515">515</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="a06b863abd1b457c48b7080e203b47a0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06b863abd1b457c48b7080e203b47a0f">&#9670;&nbsp;</a></span>destroy()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity, Type &gt;::destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes an entity from the sparse set and destroies its object. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an entity that doesn't belong to the sparse set results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the sparse set doesn't contain the given entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab4be1be8435da50621373c0bd737a1e8">entt::SparseSet&lt; Entity &gt;</a>.</p>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00532">532</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="a8da654fb96317df9b00ea48b75cf642a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8da654fb96317df9b00ea48b75cf642a">&#9670;&nbsp;</a></span>get() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">type</a>&amp; <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity, Type &gt;::get </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the object associated to the given entity. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an entity that doesn't belong to the sparse set results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the sparse set doesn't contain the given entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The object associated to the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00480">480</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="ae3c82ad4f376e67e8ccafede84942cf2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3c82ad4f376e67e8ccafede84942cf2">&#9670;&nbsp;</a></span>get() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">type</a>&amp; <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity, Type &gt;::get </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the object associated to the given entity. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an entity that doesn't belong to the sparse set results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the sparse set doesn't contain the given entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The object associated to the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00496">496</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="aa700bb907a18470dce144f84822c67ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa700bb907a18470dce144f84822c67ae">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a>&amp; <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity, Type &gt;::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1SparseSet.html">SparseSet</a>&lt; Entity, Type &gt; &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copying a sparse set isn't allowed. </p>
<dl class="section return"><dt>Returns</dt><dd>This sparse set. </dd></dl>
</div>
</div>
<a id="a52a81e838ae87413116ab9165ab9ba86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52a81e838ae87413116ab9165ab9ba86">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a>&amp; <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity, Type &gt;::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a>&lt; Entity, Type &gt; &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default move operator. </p>
<dl class="section return"><dt>Returns</dt><dd>This sparse set. </dd></dl>
</div>
</div>
<a id="a05125091c25b7a3c62561c247e09c5a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05125091c25b7a3c62561c247e09c5a2">&#9670;&nbsp;</a></span>raw() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">type</a>* <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity, Type &gt;::raw </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the array of objects. </p>
<p>The returned pointer is such that range <code>[<a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a52327d1e800f00ebc3f0364bcef7aa05" title="Direct access to the array of objects. ">raw()</a>, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a52327d1e800f00ebc3f0364bcef7aa05" title="Direct access to the array of objects. ">raw()</a> + <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a337360e8d0f44c373acef65328a3e9f8" title="Returns the number of elements in the sparse set. ">size()</a>]</code> is always a valid range, even if the container is empty.</p>
<dl class="section note"><dt>Note</dt><dd>There are no guarantees on the order, even though <code>sort</code> has been previously invoked. Internal data structures arrange elements to maximize performance. Accessing them directly gives a performance boost but less guarantees. Use <code>begin</code> and <code>end</code> if you want to iterate the sparse set in the expected order.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the array of objects. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00445">445</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="a52327d1e800f00ebc3f0364bcef7aa05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52327d1e800f00ebc3f0364bcef7aa05">&#9670;&nbsp;</a></span>raw() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">type</a>* <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity, Type &gt;::raw </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the array of objects. </p>
<p>The returned pointer is such that range <code>[<a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a52327d1e800f00ebc3f0364bcef7aa05" title="Direct access to the array of objects. ">raw()</a>, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a52327d1e800f00ebc3f0364bcef7aa05" title="Direct access to the array of objects. ">raw()</a> + <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a337360e8d0f44c373acef65328a3e9f8" title="Returns the number of elements in the sparse set. ">size()</a>]</code> is always a valid range, even if the container is empty.</p>
<dl class="section note"><dt>Note</dt><dd>There are no guarantees on the order, even though <code>sort</code> has been previously invoked. Internal data structures arrange elements to maximize performance. Accessing them directly gives a performance boost but less guarantees. Use <code>begin</code> and <code>end</code> if you want to iterate the sparse set in the expected order.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the array of objects. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00464">464</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="a9f17b5608443a236189e10089f46b89d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f17b5608443a236189e10089f46b89d">&#9670;&nbsp;</a></span>swap()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity, Type &gt;::swap </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>&#160;</td>
<td class="paramname"><em>lhs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>&#160;</td>
<td class="paramname"><em>rhs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Swaps the two entities and their objects. </p>
<dl class="section note"><dt>Note</dt><dd>This function doesn't swap objects between entities. It exchanges entity and object positions in the sparse set. It's used mainly for sorting.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use entities that don't belong to the sparse set results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the sparse set doesn't contain the given entities.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">lhs</td><td>A valid entity identifier. </td></tr>
<tr><td class="paramname">rhs</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a4a6dff653279d53831e5ed2f27b687d3">entt::SparseSet&lt; Entity &gt;</a>.</p>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00554">554</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/entt/entity/<a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,3 @@
<map id="entt::SparseSet&lt; Entity, Type &gt;" name="entt::SparseSet&lt; Entity, Type &gt;">
<area shape="rect" id="node2" href="$classentt_1_1SparseSet_3_01Entity_01_4.html" title="Basic sparse set implementation. " alt="" coords="5,5,176,32"/>
</map>

View File

@@ -0,0 +1 @@
9dd00cc071bb6f77cee0a01806ec26e8

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -0,0 +1,3 @@
<map id="entt::SparseSet&lt; Entity, Type &gt;" name="entt::SparseSet&lt; Entity, Type &gt;">
<area shape="rect" id="node2" href="$classentt_1_1SparseSet_3_01Entity_01_4.html" title="Basic sparse set implementation. " alt="" coords="5,5,176,32"/>
</map>

View File

@@ -0,0 +1 @@
5d66a969af4ef8af36b07c3ce805bc3f

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -0,0 +1,104 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">SparseSet&lt; Entity &gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entt::SparseSet&lt; Entity &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1efc9899f2ede4fd8ea1840a7ed8dbc7">begin</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#abb58b7215e9c15cd705f66e4b233706d">construct</a>(entity_type entity)</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6e4dda542e3d725dd963dea57bfb9cb1">data</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab4be1be8435da50621373c0bd737a1e8">destroy</a>(entity_type entity)</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a9d6b9c98d2645d821c81ff7d3586ca27">empty</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a2c54395d55054437bfe179718e102181">end</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7aa0a2c4f286228fc47d32761552bc13">get</a>(entity_type entity) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1b6a33e6e65345bf028877efa74c5a5e">has</a>(entity_type entity) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">iterator_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a34ffc79377cef381ef5af2e75d61cf4d">operator=</a>(const SparseSet &amp;)=delete</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a24ddfc9e45d7b70639124fe7c2800384">operator=</a>(SparseSet &amp;&amp;)=default</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a20c218a69cf339371251ffa5580d7aa0">pos_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ad1c62c65aeb0112e688f05d8f641cdab">reset</a>()</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab1e2dd6f41d75e6b808a453a24d3d955">respect</a>(const SparseSet&lt; Entity &gt; &amp;other)</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a337360e8d0f44c373acef65328a3e9f8">size</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab81c48dcee7a1104ee82794613ee7ed2">size_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ac222c5dcab4e40674dc0152cc2774409">sort</a>(Compare compare)</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#abbb28cca309663bae49e1617f83ad76a">SparseSet</a>() noexcept=default</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#aa4ad5318f2be78e8e4336bdf4b012905">SparseSet</a>(const SparseSet &amp;)=delete</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#acdfceb557303dee515fe906a13ac759e">SparseSet</a>(SparseSet &amp;&amp;)=default</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a4a6dff653279d53831e5ed2f27b687d3">swap</a>(entity_type lhs, entity_type rhs)</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6c078509aa5b611563c7d11f3a5114bf">~SparseSet</a>() noexcept=default</td><td class="entry"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">entt::SparseSet&lt; Entity &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,742 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: entt::SparseSet&lt; Entity &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">SparseSet&lt; Entity &gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classentt_1_1SparseSet_3_01Entity_01_4-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">entt::SparseSet&lt; Entity &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Basic sparse set implementation.
<a href="classentt_1_1SparseSet_3_01Entity_01_4.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for entt::SparseSet&lt; Entity &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classentt_1_1SparseSet_3_01Entity_01_4__inherit__graph.png" border="0" usemap="#entt_1_1SparseSet_3_01Entity_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="entt_1_1SparseSet_3_01Entity_01_4_inherit__map" id="entt_1_1SparseSet_3_01Entity_01_4_inherit__map">
<area shape="rect" id="node2" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html" title="Extended sparse set implementation. " alt="" coords="9,80,172,121"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a7d36e852257a965a9a0ed3fb636433e2"><td class="memItemLeft" align="right" valign="top"><a id="a7d36e852257a965a9a0ed3fb636433e2"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> = Entity</td></tr>
<tr class="memdesc:a7d36e852257a965a9a0ed3fb636433e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Underlying entity identifier. <br /></td></tr>
<tr class="separator:a7d36e852257a965a9a0ed3fb636433e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20c218a69cf339371251ffa5580d7aa0"><td class="memItemLeft" align="right" valign="top"><a id="a20c218a69cf339371251ffa5580d7aa0"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a20c218a69cf339371251ffa5580d7aa0">pos_type</a> = <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a></td></tr>
<tr class="memdesc:a20c218a69cf339371251ffa5580d7aa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entity dependent position type. <br /></td></tr>
<tr class="separator:a20c218a69cf339371251ffa5580d7aa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab81c48dcee7a1104ee82794613ee7ed2"><td class="memItemLeft" align="right" valign="top"><a id="ab81c48dcee7a1104ee82794613ee7ed2"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab81c48dcee7a1104ee82794613ee7ed2">size_type</a> = std::size_t</td></tr>
<tr class="memdesc:ab81c48dcee7a1104ee82794613ee7ed2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <br /></td></tr>
<tr class="separator:ab81c48dcee7a1104ee82794613ee7ed2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ad77aed1e49af60b61044c996969b9a"><td class="memItemLeft" align="right" valign="top"><a id="a1ad77aed1e49af60b61044c996969b9a"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">iterator_type</a> = Iterator</td></tr>
<tr class="memdesc:a1ad77aed1e49af60b61044c996969b9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Input iterator type. <br /></td></tr>
<tr class="separator:a1ad77aed1e49af60b61044c996969b9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abbb28cca309663bae49e1617f83ad76a"><td class="memItemLeft" align="right" valign="top"><a id="abbb28cca309663bae49e1617f83ad76a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#abbb28cca309663bae49e1617f83ad76a">SparseSet</a> () noexcept=default</td></tr>
<tr class="memdesc:abbb28cca309663bae49e1617f83ad76a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor, explicit on purpose. <br /></td></tr>
<tr class="separator:abbb28cca309663bae49e1617f83ad76a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4ad5318f2be78e8e4336bdf4b012905"><td class="memItemLeft" align="right" valign="top"><a id="aa4ad5318f2be78e8e4336bdf4b012905"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#aa4ad5318f2be78e8e4336bdf4b012905">SparseSet</a> (const <a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;)=delete</td></tr>
<tr class="memdesc:aa4ad5318f2be78e8e4336bdf4b012905"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copying a sparse set isn't allowed. <br /></td></tr>
<tr class="separator:aa4ad5318f2be78e8e4336bdf4b012905"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdfceb557303dee515fe906a13ac759e"><td class="memItemLeft" align="right" valign="top"><a id="acdfceb557303dee515fe906a13ac759e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#acdfceb557303dee515fe906a13ac759e">SparseSet</a> (<a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:acdfceb557303dee515fe906a13ac759e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move constructor. <br /></td></tr>
<tr class="separator:acdfceb557303dee515fe906a13ac759e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c078509aa5b611563c7d11f3a5114bf"><td class="memItemLeft" align="right" valign="top"><a id="a6c078509aa5b611563c7d11f3a5114bf"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6c078509aa5b611563c7d11f3a5114bf">~SparseSet</a> () noexcept=default</td></tr>
<tr class="memdesc:a6c078509aa5b611563c7d11f3a5114bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor. <br /></td></tr>
<tr class="separator:a6c078509aa5b611563c7d11f3a5114bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34ffc79377cef381ef5af2e75d61cf4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a34ffc79377cef381ef5af2e75d61cf4d">operator=</a> (const <a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;)=delete</td></tr>
<tr class="memdesc:a34ffc79377cef381ef5af2e75d61cf4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copying a sparse set isn't allowed. <a href="#a34ffc79377cef381ef5af2e75d61cf4d">More...</a><br /></td></tr>
<tr class="separator:a34ffc79377cef381ef5af2e75d61cf4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24ddfc9e45d7b70639124fe7c2800384"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a24ddfc9e45d7b70639124fe7c2800384">operator=</a> (<a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a24ddfc9e45d7b70639124fe7c2800384"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move operator. <a href="#a24ddfc9e45d7b70639124fe7c2800384">More...</a><br /></td></tr>
<tr class="separator:a24ddfc9e45d7b70639124fe7c2800384"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a337360e8d0f44c373acef65328a3e9f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab81c48dcee7a1104ee82794613ee7ed2">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a337360e8d0f44c373acef65328a3e9f8">size</a> () const noexcept</td></tr>
<tr class="memdesc:a337360e8d0f44c373acef65328a3e9f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of elements in the sparse set. <a href="#a337360e8d0f44c373acef65328a3e9f8">More...</a><br /></td></tr>
<tr class="separator:a337360e8d0f44c373acef65328a3e9f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d6b9c98d2645d821c81ff7d3586ca27"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a9d6b9c98d2645d821c81ff7d3586ca27">empty</a> () const noexcept</td></tr>
<tr class="memdesc:a9d6b9c98d2645d821c81ff7d3586ca27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the sparse set is empty. <a href="#a9d6b9c98d2645d821c81ff7d3586ca27">More...</a><br /></td></tr>
<tr class="separator:a9d6b9c98d2645d821c81ff7d3586ca27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e4dda542e3d725dd963dea57bfb9cb1"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6e4dda542e3d725dd963dea57bfb9cb1">data</a> () const noexcept</td></tr>
<tr class="memdesc:a6e4dda542e3d725dd963dea57bfb9cb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the internal packed array. <a href="#a6e4dda542e3d725dd963dea57bfb9cb1">More...</a><br /></td></tr>
<tr class="separator:a6e4dda542e3d725dd963dea57bfb9cb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1efc9899f2ede4fd8ea1840a7ed8dbc7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1efc9899f2ede4fd8ea1840a7ed8dbc7">begin</a> () const noexcept</td></tr>
<tr class="memdesc:a1efc9899f2ede4fd8ea1840a7ed8dbc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the beginning. <a href="#a1efc9899f2ede4fd8ea1840a7ed8dbc7">More...</a><br /></td></tr>
<tr class="separator:a1efc9899f2ede4fd8ea1840a7ed8dbc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c54395d55054437bfe179718e102181"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a2c54395d55054437bfe179718e102181">end</a> () const noexcept</td></tr>
<tr class="memdesc:a2c54395d55054437bfe179718e102181"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the end. <a href="#a2c54395d55054437bfe179718e102181">More...</a><br /></td></tr>
<tr class="separator:a2c54395d55054437bfe179718e102181"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b6a33e6e65345bf028877efa74c5a5e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1b6a33e6e65345bf028877efa74c5a5e">has</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> entity) const noexcept</td></tr>
<tr class="memdesc:a1b6a33e6e65345bf028877efa74c5a5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the sparse set contains the given entity. <a href="#a1b6a33e6e65345bf028877efa74c5a5e">More...</a><br /></td></tr>
<tr class="separator:a1b6a33e6e65345bf028877efa74c5a5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7aa0a2c4f286228fc47d32761552bc13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a20c218a69cf339371251ffa5580d7aa0">pos_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7aa0a2c4f286228fc47d32761552bc13">get</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> entity) const noexcept</td></tr>
<tr class="memdesc:a7aa0a2c4f286228fc47d32761552bc13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the position of the entity in the sparse set. <a href="#a7aa0a2c4f286228fc47d32761552bc13">More...</a><br /></td></tr>
<tr class="separator:a7aa0a2c4f286228fc47d32761552bc13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb58b7215e9c15cd705f66e4b233706d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a20c218a69cf339371251ffa5580d7aa0">pos_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#abb58b7215e9c15cd705f66e4b233706d">construct</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> entity)</td></tr>
<tr class="memdesc:abb58b7215e9c15cd705f66e4b233706d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns an entity to the sparse set. <a href="#abb58b7215e9c15cd705f66e4b233706d">More...</a><br /></td></tr>
<tr class="separator:abb58b7215e9c15cd705f66e4b233706d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4be1be8435da50621373c0bd737a1e8"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab4be1be8435da50621373c0bd737a1e8">destroy</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> entity)</td></tr>
<tr class="memdesc:ab4be1be8435da50621373c0bd737a1e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the given entity from the sparse set. <a href="#ab4be1be8435da50621373c0bd737a1e8">More...</a><br /></td></tr>
<tr class="separator:ab4be1be8435da50621373c0bd737a1e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a6dff653279d53831e5ed2f27b687d3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a4a6dff653279d53831e5ed2f27b687d3">swap</a> (<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> lhs, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a> rhs)</td></tr>
<tr class="memdesc:a4a6dff653279d53831e5ed2f27b687d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps the position of the entities in the internal packed array. <a href="#a4a6dff653279d53831e5ed2f27b687d3">More...</a><br /></td></tr>
<tr class="separator:a4a6dff653279d53831e5ed2f27b687d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac222c5dcab4e40674dc0152cc2774409"><td class="memTemplParams" colspan="2">template&lt;typename Compare &gt; </td></tr>
<tr class="memitem:ac222c5dcab4e40674dc0152cc2774409"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ac222c5dcab4e40674dc0152cc2774409">sort</a> (Compare compare)</td></tr>
<tr class="memdesc:ac222c5dcab4e40674dc0152cc2774409"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort entities according to the given comparison function. <a href="#ac222c5dcab4e40674dc0152cc2774409">More...</a><br /></td></tr>
<tr class="separator:ac222c5dcab4e40674dc0152cc2774409"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1e2dd6f41d75e6b808a453a24d3d955"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab1e2dd6f41d75e6b808a453a24d3d955">respect</a> (const <a class="el" href="classentt_1_1SparseSet.html">SparseSet</a>&lt; Entity &gt; &amp;other)</td></tr>
<tr class="memdesc:ab1e2dd6f41d75e6b808a453a24d3d955"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort entities according to their order in the given sparse set. <a href="#ab1e2dd6f41d75e6b808a453a24d3d955">More...</a><br /></td></tr>
<tr class="separator:ab1e2dd6f41d75e6b808a453a24d3d955"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1c62c65aeb0112e688f05d8f641cdab"><td class="memItemLeft" align="right" valign="top"><a id="ad1c62c65aeb0112e688f05d8f641cdab"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ad1c62c65aeb0112e688f05d8f641cdab">reset</a> ()</td></tr>
<tr class="memdesc:ad1c62c65aeb0112e688f05d8f641cdab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the sparse set. <br /></td></tr>
<tr class="separator:ad1c62c65aeb0112e688f05d8f641cdab"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Entity&gt;<br />
class entt::SparseSet&lt; Entity &gt;</h3>
<p>Basic sparse set implementation. </p>
<p>Sparse set or packed array or whatever is the name users give it.<br />
Two arrays: an <em>external</em> one and an <em>internal</em> one; a <em>sparse</em> one and a <em>packed</em> one; one used for direct access through contiguous memory, the other one used to get the data through an extra level of indirection.<br />
This is largely used by the <a class="el" href="classentt_1_1Registry.html" title="A repository class for entities and components. ">Registry</a> to offer users the fastest access ever to the components. <a class="el" href="classentt_1_1View.html" title="Multi component view. ">View</a> and <a class="el" href="classentt_1_1PersistentView.html" title="Persistent view. ">PersistentView</a> are entirely designed around sparse sets.</p>
<p>This type of data structure is widely documented in the literature and on the web. This is nothing more than a customized implementation suitable for the purpose of the framework.</p>
<dl class="section note"><dt>Note</dt><dd>There are no guarantees that entities are returned in the insertion order when iterate a sparse set. Do not make assumption on the order in any case.</dd>
<dd>
Internal data structures arrange elements to maximize performance. Because of that, there are no guarantees that elements have the expected order when iterate directly the internal packed array (see <code>data</code> and <code>size</code> member functions for that). Use <code>begin</code> and <code>end</code> instead.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Entity</td><td>A valid entity type (see <a class="el" href="structentt_1_1entt__traits.html" title="Entity traits. ">entt_traits</a> for more details). </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00054">54</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a1efc9899f2ede4fd8ea1840a7ed8dbc7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1efc9899f2ede4fd8ea1840a7ed8dbc7">&#9670;&nbsp;</a></span>begin()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">iterator_type</a> <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::begin </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an iterator to the beginning. </p>
<p>The returned iterator points to the first element of the internal packed array. If the sparse set is empty, the returned iterator will be equal to <code><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a2c54395d55054437bfe179718e102181" title="Returns an iterator to the end. ">end()</a></code>.</p>
<dl class="section note"><dt>Note</dt><dd>Input iterators stay true to the order imposed by a call to <code>sort</code>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the first element of the internal packed array. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00169">169</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="abb58b7215e9c15cd705f66e4b233706d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb58b7215e9c15cd705f66e4b233706d">&#9670;&nbsp;</a></span>construct()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a20c218a69cf339371251ffa5580d7aa0">pos_type</a> <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::construct </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Assigns an entity to the sparse set. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to assign an entity that already belongs to the sparse set results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the sparse set already contains the given entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The position of the entity in the internal packed array. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00229">229</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="a6e4dda542e3d725dd963dea57bfb9cb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e4dda542e3d725dd963dea57bfb9cb1">&#9670;&nbsp;</a></span>data()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>* <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the internal packed array. </p>
<p>The returned pointer is such that range <code>[<a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6e4dda542e3d725dd963dea57bfb9cb1" title="Direct access to the internal packed array. ">data()</a>, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6e4dda542e3d725dd963dea57bfb9cb1" title="Direct access to the internal packed array. ">data()</a> + <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a337360e8d0f44c373acef65328a3e9f8" title="Returns the number of elements in the sparse set. ">size()</a>]</code> is always a valid range, even if the container is empty.</p>
<dl class="section note"><dt>Note</dt><dd>There are no guarantees on the order, even though <code>sort</code> has been previously invoked. Internal data structures arrange elements to maximize performance. Accessing them directly gives a performance boost but less guarantees. Use <code>begin</code> and <code>end</code> if you want to iterate the sparse set in the expected order.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the internal packed array. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00153">153</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="ab4be1be8435da50621373c0bd737a1e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4be1be8435da50621373c0bd737a1e8">&#9670;&nbsp;</a></span>destroy()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes the given entity from the sparse set. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to remove an entity that doesn't belong to the sparse set results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the sparse set doesn't contain the given entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented in <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a06b863abd1b457c48b7080e203b47a0f">entt::SparseSet&lt; Entity, Type &gt;</a>.</p>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00255">255</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="a9d6b9c98d2645d821c81ff7d3586ca27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d6b9c98d2645d821c81ff7d3586ca27">&#9670;&nbsp;</a></span>empty()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::empty </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks whether the sparse set is empty. </p>
<dl class="section return"><dt>Returns</dt><dd>True is the sparse set is empty, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00134">134</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="a2c54395d55054437bfe179718e102181"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c54395d55054437bfe179718e102181">&#9670;&nbsp;</a></span>end()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">iterator_type</a> <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::end </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an iterator to the end. </p>
<p>The returned iterator points to the element following the last element in the internal packed array. Attempting to dereference the returned iterator results in undefined behavior.</p>
<dl class="section note"><dt>Note</dt><dd>Input iterators stay true to the order imposed by a call to <code>sort</code>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the element following the last element of the internal packed array. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00186">186</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="a7aa0a2c4f286228fc47d32761552bc13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7aa0a2c4f286228fc47d32761552bc13">&#9670;&nbsp;</a></span>get()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a20c218a69cf339371251ffa5580d7aa0">pos_type</a> <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::get </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the position of the entity in the sparse set. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to get the position of an entity that doesn't belong to the sparse set results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the sparse set doesn't contain the given entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The position of the entity in the sparse set. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00212">212</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="a1b6a33e6e65345bf028877efa74c5a5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b6a33e6e65345bf028877efa74c5a5e">&#9670;&nbsp;</a></span>has()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::has </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if the sparse set contains the given entity. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the sparse set contains the entity, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00195">195</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="a34ffc79377cef381ef5af2e75d61cf4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34ffc79377cef381ef5af2e75d61cf4d">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a>&amp; <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1SparseSet.html">SparseSet</a>&lt; Entity &gt; &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copying a sparse set isn't allowed. </p>
<dl class="section return"><dt>Returns</dt><dd>This sparse set. </dd></dl>
</div>
</div>
<a id="a24ddfc9e45d7b70639124fe7c2800384"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24ddfc9e45d7b70639124fe7c2800384">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a>&amp; <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a>&lt; Entity &gt; &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default move operator. </p>
<dl class="section return"><dt>Returns</dt><dd>This sparse set. </dd></dl>
</div>
</div>
<a id="ab1e2dd6f41d75e6b808a453a24d3d955"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1e2dd6f41d75e6b808a453a24d3d955">&#9670;&nbsp;</a></span>respect()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::respect </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1SparseSet.html">SparseSet</a>&lt; Entity &gt; &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sort entities according to their order in the given sparse set. </p>
<p>Entities that are part of both the sparse sets are ordered internally according to the order they have in <code>other</code>. All the other entities goes to the end of the list and there are no guarantess on their order.<br />
In other terms, this function can be used to impose the same order on two sets by using one of them as a master and the other one as a slave.</p>
<p>Iterating the sparse set with a couple of iterators returns elements in the expected order after a call to <code>sort</code>. See <code>begin</code> and <code>end</code> for more details.</p>
<dl class="section note"><dt>Note</dt><dd>Attempting to iterate elements using the raw pointer returned by <code>data</code> gives no guarantees on the order, even though <code>sort</code> has been invoked.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>The sparse sets that imposes the order of the entities. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00337">337</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="a337360e8d0f44c373acef65328a3e9f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a337360e8d0f44c373acef65328a3e9f8">&#9670;&nbsp;</a></span>size()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab81c48dcee7a1104ee82794613ee7ed2">size_type</a> <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of elements in the sparse set. </p>
<p>The number of elements is also the size of the internal packed array. There is no guarantee that the internal sparse array has the same size. Usually the size of the internal sparse array is equal or greater than the one of the internal packed array.</p>
<dl class="section return"><dt>Returns</dt><dd>The number of elements. </dd></dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00126">126</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="ac222c5dcab4e40674dc0152cc2774409"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac222c5dcab4e40674dc0152cc2774409">&#9670;&nbsp;</a></span>sort()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Compare &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::sort </td>
<td>(</td>
<td class="paramtype">Compare&#160;</td>
<td class="paramname"><em>compare</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sort entities according to the given comparison function. </p>
<p>Sort the elements so that iterating the sparse set with a couple of iterators returns them in the expected order. See <code>begin</code> and <code>end</code> for more details.</p>
<dl class="section note"><dt>Note</dt><dd>Attempting to iterate elements using the raw pointer returned by <code>data</code> gives no guarantees on the order, even though <code>sort</code> has been invoked.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Compare</td><td>The type of the comparison function. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">compare</td><td>A comparison function whose signature shall be equivalent to: <code>bool(Entity, Entity)</code>. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00305">305</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<a id="a4a6dff653279d53831e5ed2f27b687d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a6dff653279d53831e5ed2f27b687d3">&#9670;&nbsp;</a></span>swap()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classentt_1_1SparseSet.html">entt::SparseSet</a>&lt; Entity &gt;::swap </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>&#160;</td>
<td class="paramname"><em>lhs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entity_type</a>&#160;</td>
<td class="paramname"><em>rhs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Swaps the position of the entities in the internal packed array. </p>
<p>For what it's worth, this function affects both the internal sparse array and the internal packed array. Users should not care of that anyway.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to swap entities that don't belong to the sparse set results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the sparse set doesn't contain the given entities.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">lhs</td><td>A valid entity identifier. </td></tr>
<tr><td class="paramname">rhs</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented in <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a9f17b5608443a236189e10089f46b89d">entt::SparseSet&lt; Entity, Type &gt;</a>.</p>
<p class="definition">Definition at line <a class="el" href="sparse__set_8hpp_source.html#l00280">280</a> of file <a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/entt/entity/<a class="el" href="sparse__set_8hpp_source.html">sparse_set.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,3 @@
<map id="entt::SparseSet&lt; Entity &gt;" name="entt::SparseSet&lt; Entity &gt;">
<area shape="rect" id="node2" href="$classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html" title="Extended sparse set implementation. " alt="" coords="9,80,172,121"/>
</map>

View File

@@ -0,0 +1 @@
6d71b221f475a29f7b7544220a193386

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -0,0 +1,90 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1View.html">View</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entt::View&lt; Entity, First, Other &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classentt_1_1View.html">entt::View&lt; Entity, First, Other &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1View.html#aecf54fad5f9fce08a3e452fcd304ed9c">begin</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1View.html">entt::View&lt; Entity, First, Other &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1View.html#a61dbd65a57f56771f6b9aff282592055">end</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1View.html">entt::View&lt; Entity, First, Other &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1View.html#ad9dc37ca8b83a1ebcc0c5860e3327c0f">entity_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1View.html">entt::View&lt; Entity, First, Other &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1View.html#a180a7c5c8dc1974f4549ce3198e3fd97">get</a>(entity_type entity) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1View.html">entt::View&lt; Entity, First, Other &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1View.html#a2118e7980d218aaf2c8f1083bee42812">get</a>(entity_type entity) noexcept</td><td class="entry"><a class="el" href="classentt_1_1View.html">entt::View&lt; Entity, First, Other &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1View.html#ada871f4f73d072442cad5da1926eb0a8">iterator_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1View.html">entt::View&lt; Entity, First, Other &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1View.html#a2a12951d1032876dd9c534cba78f0f14">reset</a>()</td><td class="entry"><a class="el" href="classentt_1_1View.html">entt::View&lt; Entity, First, Other &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1View.html#a1f398913dffcfcdc1200c1fc0f28b1dd">size_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1View.html">entt::View&lt; Entity, First, Other &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1View.html#a87458191a9cffea5e9fc10e36f85cf3e">View</a>(pool_type&lt; First &gt; &amp;pool, pool_type&lt; Other &gt; &amp;... other) noexcept</td><td class="entry"><a class="el" href="classentt_1_1View.html">entt::View&lt; Entity, First, Other &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

429
classentt_1_1View.html Normal file
View File

@@ -0,0 +1,429 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: entt::View&lt; Entity, First, Other &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1View.html">View</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classentt_1_1View-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">entt::View&lt; Entity, First, Other &gt; Class Template Reference<span class="mlabels"><span class="mlabel">final</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Multi component view.
<a href="classentt_1_1View.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="view_8hpp_source.html">view.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ada871f4f73d072442cad5da1926eb0a8"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View.html#ada871f4f73d072442cad5da1926eb0a8">iterator_type</a> = Iterator</td></tr>
<tr class="separator:ada871f4f73d072442cad5da1926eb0a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9dc37ca8b83a1ebcc0c5860e3327c0f"><td class="memItemLeft" align="right" valign="top"><a id="ad9dc37ca8b83a1ebcc0c5860e3327c0f"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View.html#ad9dc37ca8b83a1ebcc0c5860e3327c0f">entity_type</a> = typename <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">base_pool_type::entity_type</a></td></tr>
<tr class="memdesc:ad9dc37ca8b83a1ebcc0c5860e3327c0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Underlying entity identifier. <br /></td></tr>
<tr class="separator:ad9dc37ca8b83a1ebcc0c5860e3327c0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f398913dffcfcdc1200c1fc0f28b1dd"><td class="memItemLeft" align="right" valign="top"><a id="a1f398913dffcfcdc1200c1fc0f28b1dd"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View.html#a1f398913dffcfcdc1200c1fc0f28b1dd">size_type</a> = typename <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab81c48dcee7a1104ee82794613ee7ed2">base_pool_type::size_type</a></td></tr>
<tr class="memdesc:a1f398913dffcfcdc1200c1fc0f28b1dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <br /></td></tr>
<tr class="separator:a1f398913dffcfcdc1200c1fc0f28b1dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a87458191a9cffea5e9fc10e36f85cf3e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View.html#a87458191a9cffea5e9fc10e36f85cf3e">View</a> (<a class="el" href="classentt_1_1SparseSet.html">pool_type</a>&lt; First &gt; &amp;pool, <a class="el" href="classentt_1_1SparseSet.html">pool_type</a>&lt; Other &gt; &amp;... other) noexcept</td></tr>
<tr class="memdesc:a87458191a9cffea5e9fc10e36f85cf3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a view out of a bunch of pools of components. <a href="#a87458191a9cffea5e9fc10e36f85cf3e">More...</a><br /></td></tr>
<tr class="separator:a87458191a9cffea5e9fc10e36f85cf3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecf54fad5f9fce08a3e452fcd304ed9c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1View.html#ada871f4f73d072442cad5da1926eb0a8">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View.html#aecf54fad5f9fce08a3e452fcd304ed9c">begin</a> () const noexcept</td></tr>
<tr class="memdesc:aecf54fad5f9fce08a3e452fcd304ed9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the first entity that has the given components. <a href="#aecf54fad5f9fce08a3e452fcd304ed9c">More...</a><br /></td></tr>
<tr class="separator:aecf54fad5f9fce08a3e452fcd304ed9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61dbd65a57f56771f6b9aff282592055"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1View.html#ada871f4f73d072442cad5da1926eb0a8">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View.html#a61dbd65a57f56771f6b9aff282592055">end</a> () const noexcept</td></tr>
<tr class="memdesc:a61dbd65a57f56771f6b9aff282592055"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator that is past the last entity that has the given components. <a href="#a61dbd65a57f56771f6b9aff282592055">More...</a><br /></td></tr>
<tr class="separator:a61dbd65a57f56771f6b9aff282592055"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a180a7c5c8dc1974f4549ce3198e3fd97"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:a180a7c5c8dc1974f4549ce3198e3fd97"><td class="memTemplItemLeft" align="right" valign="top">const Component &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1View.html#a180a7c5c8dc1974f4549ce3198e3fd97">get</a> (<a class="el" href="classentt_1_1View.html#ad9dc37ca8b83a1ebcc0c5860e3327c0f">entity_type</a> entity) const noexcept</td></tr>
<tr class="memdesc:a180a7c5c8dc1974f4549ce3198e3fd97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component assigned to the given entity. <a href="#a180a7c5c8dc1974f4549ce3198e3fd97">More...</a><br /></td></tr>
<tr class="separator:a180a7c5c8dc1974f4549ce3198e3fd97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2118e7980d218aaf2c8f1083bee42812"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:a2118e7980d218aaf2c8f1083bee42812"><td class="memTemplItemLeft" align="right" valign="top">Component &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1View.html#a2118e7980d218aaf2c8f1083bee42812">get</a> (<a class="el" href="classentt_1_1View.html#ad9dc37ca8b83a1ebcc0c5860e3327c0f">entity_type</a> entity) noexcept</td></tr>
<tr class="memdesc:a2118e7980d218aaf2c8f1083bee42812"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component assigned to the given entity. <a href="#a2118e7980d218aaf2c8f1083bee42812">More...</a><br /></td></tr>
<tr class="separator:a2118e7980d218aaf2c8f1083bee42812"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a12951d1032876dd9c534cba78f0f14"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View.html#a2a12951d1032876dd9c534cba78f0f14">reset</a> ()</td></tr>
<tr class="memdesc:a2a12951d1032876dd9c534cba78f0f14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the view and reinitializes it. <a href="#a2a12951d1032876dd9c534cba78f0f14">More...</a><br /></td></tr>
<tr class="separator:a2a12951d1032876dd9c534cba78f0f14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Entity, typename First, typename... Other&gt;<br />
class entt::View&lt; Entity, First, Other &gt;</h3>
<p>Multi component view. </p>
<p>Multi component views iterate over those entities that have at least all the given components in their bags. During initialization, a multi component view looks at the number of entities available for each component and picks up a reference to the smallest set of candidate entities in order to get a performance boost when iterate.<br />
Order of elements during iterations are highly dependent on the order of the underlying data strctures. See <a class="el" href="classentt_1_1SparseSet.html" title="Sparse set. ">SparseSet</a> and its specializations for more details.</p>
<p><b>Important</b> </p>
<p>Iterators aren't invalidated if:</p>
<ul>
<li>New instances of the given components are created and assigned to entities.</li>
<li>The entity currently pointed is modified (as an example, if one of the given components is removed from the entity to which the iterator points).</li>
</ul>
<p>In all the other cases, modify the pools of the given components somehow invalidates all the iterators and using them results in undefined behavior.</p>
<dl class="section note"><dt>Note</dt><dd>Views share references to the underlying data structures with the <a class="el" href="classentt_1_1Registry.html" title="A repository class for entities and components. ">Registry</a> that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>Lifetime of a view must overcome the one of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html" title="Single component view specialization. ">View&lt;Entity, Component&gt;</a> </dd>
<dd>
<a class="el" href="classentt_1_1PersistentView.html" title="Persistent view. ">PersistentView</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Entity</td><td>A valid entity type (see <a class="el" href="structentt_1_1entt__traits.html" title="Entity traits. ">entt_traits</a> for more details). </td></tr>
<tr><td class="paramname">First</td><td>One of the components to iterate. </td></tr>
<tr><td class="paramname">Other</td><td>The rest of the components to iterate. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00255">255</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="ada871f4f73d072442cad5da1926eb0a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada871f4f73d072442cad5da1926eb0a8">&#9670;&nbsp;</a></span>iterator_type</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename First , typename... Other&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, First, Other &gt;::<a class="el" href="classentt_1_1View.html#ada871f4f73d072442cad5da1926eb0a8">iterator_type</a> = Iterator</td>
</tr>
</table>
</div><div class="memdoc">
<p>Input iterator type. </p>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00315">315</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a87458191a9cffea5e9fc10e36f85cf3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87458191a9cffea5e9fc10e36f85cf3e">&#9670;&nbsp;</a></span>View()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename First , typename... Other&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, First, Other &gt;::<a class="el" href="classentt_1_1View.html">View</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet.html">pool_type</a>&lt; First &gt; &amp;&#160;</td>
<td class="paramname"><em>pool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet.html">pool_type</a>&lt; Other &gt; &amp;...&#160;</td>
<td class="paramname"><em>other</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a view out of a bunch of pools of components. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pool</td><td>A reference to a pool of components. </td></tr>
<tr><td class="paramname">other</td><td>Other references to pools of components. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00326">326</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aecf54fad5f9fce08a3e452fcd304ed9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aecf54fad5f9fce08a3e452fcd304ed9c">&#9670;&nbsp;</a></span>begin()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename First , typename... Other&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1View.html#ada871f4f73d072442cad5da1926eb0a8">iterator_type</a> <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, First, Other &gt;::begin </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an iterator to the first entity that has the given components. </p>
<p>The returned iterator points to the first entity that has the given components. If the view is empty, the returned iterator will be equal to <code><a class="el" href="classentt_1_1View.html#a61dbd65a57f56771f6b9aff282592055" title="Returns an iterator that is past the last entity that has the given components. ">end()</a></code>.</p>
<dl class="section note"><dt>Note</dt><dd>Input iterators stay true to the order imposed to the underlying data structures.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the first entity that has the given components. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00346">346</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a61dbd65a57f56771f6b9aff282592055"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61dbd65a57f56771f6b9aff282592055">&#9670;&nbsp;</a></span>end()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename First , typename... Other&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1View.html#ada871f4f73d072442cad5da1926eb0a8">iterator_type</a> <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, First, Other &gt;::end </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an iterator that is past the last entity that has the given components. </p>
<p>The returned iterator points to the entity following the last entity that has the given components. Attempting to dereference the returned iterator results in undefined behavior.</p>
<dl class="section note"><dt>Note</dt><dd>Input iterators stay true to the order imposed to the underlying data structures.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the entity following the last entity that has the given components. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00365">365</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a180a7c5c8dc1974f4549ce3198e3fd97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a180a7c5c8dc1974f4549ce3198e3fd97">&#9670;&nbsp;</a></span>get() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename First , typename... Other&gt; </div>
<div class="memtemplate">
template&lt;typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const Component&amp; <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, First, Other &gt;::get </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1View.html#ad9dc37ca8b83a1ebcc0c5860e3327c0f">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the component assigned to the given entity. </p>
<p>Prefer this function instead of <code><a class="el" href="classentt_1_1Registry.html#a904b71bae3eaa69d534b4dc41c15e889" title="Gets a reference to the given component owned by the given entity. ">Registry::get</a></code> during iterations. It has far better performance than its companion function.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid component type results in a compilation error. Attempting to use an entity that doesn't belong to the view results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the view doesn't contain the given entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>The type of the component to get. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The component assigned to the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00387">387</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a2118e7980d218aaf2c8f1083bee42812"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2118e7980d218aaf2c8f1083bee42812">&#9670;&nbsp;</a></span>get() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename First , typename... Other&gt; </div>
<div class="memtemplate">
template&lt;typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Component&amp; <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, First, Other &gt;::get </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1View.html#ad9dc37ca8b83a1ebcc0c5860e3327c0f">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the component assigned to the given entity. </p>
<p>Prefer this function instead of <code><a class="el" href="classentt_1_1Registry.html#a904b71bae3eaa69d534b4dc41c15e889" title="Gets a reference to the given component owned by the given entity. ">Registry::get</a></code> during iterations. It has far better performance than its companion function.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid component type results in a compilation error. Attempting to use an entity that doesn't belong to the view results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the view doesn't contain the given entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>The type of the component to get. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The component assigned to the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00409">409</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a2a12951d1032876dd9c534cba78f0f14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a12951d1032876dd9c534cba78f0f14">&#9670;&nbsp;</a></span>reset()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename First , typename... Other&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, First, Other &gt;::reset </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Resets the view and reinitializes it. </p>
<p>A multi component view keeps a reference to the smallest set of candidate entities to iterate. Resetting a view means querying the underlying data structures and reinitializing the view.<br />
Use it only if copies of views are stored around and there is a possibility that a component has become the best candidate in the meantime. </p>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00423">423</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/entt/entity/<a class="el" href="view_8hpp_source.html">view.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,94 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">View&lt; Entity, Component &gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entt::View&lt; Entity, Component &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ae351dc5fef90e54a61187310d1e7d9ba">begin</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a78f5d9ebb636c6acb391d802ad13fede">data</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#af683298434cb58f86f0025cdb585eda2">end</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a75fc64bf381a3003d8acf03ed66728f2">entity_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a831d0d782118c26ca8efe00c452f4b21">get</a>(entity_type entity) const noexcept</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a97f303e914e114df37e12fd4556efff6">get</a>(entity_type entity) noexcept</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ac6be1bdfe4c0f864fc7deb04f418aadf">iterator_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#aa5bfe21925dfd6af9bb8aba65d9bccd5">raw</a>() noexcept</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a1ad9504a013794b2e3f08feefc5b4c58">raw</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a2900e9b4b4fcd73faafb1d1910648484">raw_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a6f5d49e4b67890cf53d1c3c25879fb81">size</a>() const noexcept</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#afa754b0f10b28dbdb2149b5b8d0fdf73">size_type</a> typedef</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a24c7693fd64b152591a1a63d46f8e91f">View</a>(pool_type &amp;pool) noexcept</td><td class="entry"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">entt::View&lt; Entity, Component &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,529 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: entt::View&lt; Entity, Component &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">View&lt; Entity, Component &gt;</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classentt_1_1View_3_01Entity_00_01Component_01_4-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">entt::View&lt; Entity, Component &gt; Class Template Reference<span class="mlabels"><span class="mlabel">final</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Single component view specialization.
<a href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="view_8hpp_source.html">view.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ac6be1bdfe4c0f864fc7deb04f418aadf"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ac6be1bdfe4c0f864fc7deb04f418aadf">iterator_type</a> = typename pool_type::iterator_type</td></tr>
<tr class="separator:ac6be1bdfe4c0f864fc7deb04f418aadf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75fc64bf381a3003d8acf03ed66728f2"><td class="memItemLeft" align="right" valign="top"><a id="a75fc64bf381a3003d8acf03ed66728f2"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a75fc64bf381a3003d8acf03ed66728f2">entity_type</a> = typename pool_type::entity_type</td></tr>
<tr class="memdesc:a75fc64bf381a3003d8acf03ed66728f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Underlying entity identifier. <br /></td></tr>
<tr class="separator:a75fc64bf381a3003d8acf03ed66728f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa754b0f10b28dbdb2149b5b8d0fdf73"><td class="memItemLeft" align="right" valign="top"><a id="afa754b0f10b28dbdb2149b5b8d0fdf73"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#afa754b0f10b28dbdb2149b5b8d0fdf73">size_type</a> = typename pool_type::size_type</td></tr>
<tr class="memdesc:afa754b0f10b28dbdb2149b5b8d0fdf73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <br /></td></tr>
<tr class="separator:afa754b0f10b28dbdb2149b5b8d0fdf73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2900e9b4b4fcd73faafb1d1910648484"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a2900e9b4b4fcd73faafb1d1910648484">raw_type</a> = typename pool_type::type</td></tr>
<tr class="separator:a2900e9b4b4fcd73faafb1d1910648484"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a24c7693fd64b152591a1a63d46f8e91f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a24c7693fd64b152591a1a63d46f8e91f">View</a> (<a class="el" href="classentt_1_1SparseSet.html">pool_type</a> &amp;pool) noexcept</td></tr>
<tr class="memdesc:a24c7693fd64b152591a1a63d46f8e91f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a view out of a pool of components. <a href="#a24c7693fd64b152591a1a63d46f8e91f">More...</a><br /></td></tr>
<tr class="separator:a24c7693fd64b152591a1a63d46f8e91f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f5d49e4b67890cf53d1c3c25879fb81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#afa754b0f10b28dbdb2149b5b8d0fdf73">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a6f5d49e4b67890cf53d1c3c25879fb81">size</a> () const noexcept</td></tr>
<tr class="memdesc:a6f5d49e4b67890cf53d1c3c25879fb81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of entities that have the given component. <a href="#a6f5d49e4b67890cf53d1c3c25879fb81">More...</a><br /></td></tr>
<tr class="separator:a6f5d49e4b67890cf53d1c3c25879fb81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5bfe21925dfd6af9bb8aba65d9bccd5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a2900e9b4b4fcd73faafb1d1910648484">raw_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#aa5bfe21925dfd6af9bb8aba65d9bccd5">raw</a> () noexcept</td></tr>
<tr class="memdesc:aa5bfe21925dfd6af9bb8aba65d9bccd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the list of components. <a href="#aa5bfe21925dfd6af9bb8aba65d9bccd5">More...</a><br /></td></tr>
<tr class="separator:aa5bfe21925dfd6af9bb8aba65d9bccd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ad9504a013794b2e3f08feefc5b4c58"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a2900e9b4b4fcd73faafb1d1910648484">raw_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a1ad9504a013794b2e3f08feefc5b4c58">raw</a> () const noexcept</td></tr>
<tr class="memdesc:a1ad9504a013794b2e3f08feefc5b4c58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the list of components. <a href="#a1ad9504a013794b2e3f08feefc5b4c58">More...</a><br /></td></tr>
<tr class="separator:a1ad9504a013794b2e3f08feefc5b4c58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78f5d9ebb636c6acb391d802ad13fede"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a75fc64bf381a3003d8acf03ed66728f2">entity_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a78f5d9ebb636c6acb391d802ad13fede">data</a> () const noexcept</td></tr>
<tr class="memdesc:a78f5d9ebb636c6acb391d802ad13fede"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the list of entities. <a href="#a78f5d9ebb636c6acb391d802ad13fede">More...</a><br /></td></tr>
<tr class="separator:a78f5d9ebb636c6acb391d802ad13fede"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae351dc5fef90e54a61187310d1e7d9ba"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ac6be1bdfe4c0f864fc7deb04f418aadf">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ae351dc5fef90e54a61187310d1e7d9ba">begin</a> () const noexcept</td></tr>
<tr class="memdesc:ae351dc5fef90e54a61187310d1e7d9ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the first entity that has the given component. <a href="#ae351dc5fef90e54a61187310d1e7d9ba">More...</a><br /></td></tr>
<tr class="separator:ae351dc5fef90e54a61187310d1e7d9ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af683298434cb58f86f0025cdb585eda2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ac6be1bdfe4c0f864fc7deb04f418aadf">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#af683298434cb58f86f0025cdb585eda2">end</a> () const noexcept</td></tr>
<tr class="memdesc:af683298434cb58f86f0025cdb585eda2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator that is past the last entity that has the given component. <a href="#af683298434cb58f86f0025cdb585eda2">More...</a><br /></td></tr>
<tr class="separator:af683298434cb58f86f0025cdb585eda2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a831d0d782118c26ca8efe00c452f4b21"><td class="memItemLeft" align="right" valign="top">const Component &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a831d0d782118c26ca8efe00c452f4b21">get</a> (<a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a75fc64bf381a3003d8acf03ed66728f2">entity_type</a> entity) const noexcept</td></tr>
<tr class="memdesc:a831d0d782118c26ca8efe00c452f4b21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component assigned to the given entity. <a href="#a831d0d782118c26ca8efe00c452f4b21">More...</a><br /></td></tr>
<tr class="separator:a831d0d782118c26ca8efe00c452f4b21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97f303e914e114df37e12fd4556efff6"><td class="memItemLeft" align="right" valign="top">Component &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a97f303e914e114df37e12fd4556efff6">get</a> (<a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a75fc64bf381a3003d8acf03ed66728f2">entity_type</a> entity) noexcept</td></tr>
<tr class="memdesc:a97f303e914e114df37e12fd4556efff6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component assigned to the given entity. <a href="#a97f303e914e114df37e12fd4556efff6">More...</a><br /></td></tr>
<tr class="separator:a97f303e914e114df37e12fd4556efff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Entity, typename Component&gt;<br />
class entt::View&lt; Entity, Component &gt;</h3>
<p>Single component view specialization. </p>
<p>Single component views are specialized in order to get a boost in terms of performance. This kind of views can access the underlying data structure directly and avoid superflous checks.<br />
Order of elements during iterations are highly dependent on the order of the underlying data structure. See <a class="el" href="classentt_1_1SparseSet.html" title="Sparse set. ">SparseSet</a> and its specializations for more details.</p>
<p><b>Important</b> </p>
<p>Iterators aren't invalidated if:</p>
<ul>
<li>New instances of the given components are created and assigned to entities.</li>
<li>The entity currently pointed is modified (as an example, if one of the given components is removed from the entity to which the iterator points).</li>
</ul>
<p>In all the other cases, modify the pools of the given components somehow invalidates all the iterators and using them results in undefined behavior.</p>
<dl class="section note"><dt>Note</dt><dd>Views share a reference to the underlying data structure with the <a class="el" href="classentt_1_1Registry.html" title="A repository class for entities and components. ">Registry</a> that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>Lifetime of a view must overcome the one of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1View.html" title="Multi component view. ">View</a> </dd>
<dd>
<a class="el" href="classentt_1_1PersistentView.html" title="Persistent view. ">PersistentView</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Entity</td><td>A valid entity type (see <a class="el" href="structentt_1_1entt__traits.html" title="Entity traits. ">entt_traits</a> for more details). </td></tr>
<tr><td class="paramname">Component</td><td>The type of the component iterated by the view. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00473">473</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="ac6be1bdfe4c0f864fc7deb04f418aadf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6be1bdfe4c0f864fc7deb04f418aadf">&#9670;&nbsp;</a></span>iterator_type</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Component &gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, Component &gt;::<a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ac6be1bdfe4c0f864fc7deb04f418aadf">iterator_type</a> = typename pool_type::iterator_type</td>
</tr>
</table>
</div><div class="memdoc">
<p>Input iterator type. </p>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00478">478</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a2900e9b4b4fcd73faafb1d1910648484"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2900e9b4b4fcd73faafb1d1910648484">&#9670;&nbsp;</a></span>raw_type</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Component &gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, Component &gt;::<a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a2900e9b4b4fcd73faafb1d1910648484">raw_type</a> = typename pool_type::type</td>
</tr>
</table>
</div><div class="memdoc">
<p>The type of the component iterated by the view. </p>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00484">484</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a24c7693fd64b152591a1a63d46f8e91f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24c7693fd64b152591a1a63d46f8e91f">&#9670;&nbsp;</a></span>View()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, Component &gt;::<a class="el" href="classentt_1_1View.html">View</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1SparseSet.html">pool_type</a> &amp;&#160;</td>
<td class="paramname"><em>pool</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a view out of a pool of components. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pool</td><td>A reference to a pool of components. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00490">490</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ae351dc5fef90e54a61187310d1e7d9ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae351dc5fef90e54a61187310d1e7d9ba">&#9670;&nbsp;</a></span>begin()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ac6be1bdfe4c0f864fc7deb04f418aadf">iterator_type</a> <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, Component &gt;::begin </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an iterator to the first entity that has the given component. </p>
<p>The returned iterator points to the first entity that has the given component. If the view is empty, the returned iterator will be equal to <code><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#af683298434cb58f86f0025cdb585eda2" title="Returns an iterator that is past the last entity that has the given component. ">end()</a></code>.</p>
<dl class="section note"><dt>Note</dt><dd>Input iterators stay true to the order imposed to the underlying data structures.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the first entity that has the given component. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00564">564</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a78f5d9ebb636c6acb391d802ad13fede"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78f5d9ebb636c6acb391d802ad13fede">&#9670;&nbsp;</a></span>data()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a75fc64bf381a3003d8acf03ed66728f2">entity_type</a>* <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, Component &gt;::data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the list of entities. </p>
<p>The returned pointer is such that range <code>[<a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a78f5d9ebb636c6acb391d802ad13fede" title="Direct access to the list of entities. ">data()</a>, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a78f5d9ebb636c6acb391d802ad13fede" title="Direct access to the list of entities. ">data()</a> + <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a6f5d49e4b67890cf53d1c3c25879fb81" title="Returns the number of entities that have the given component. ">size()</a>]</code> is always a valid range, even if the container is empty.</p>
<dl class="section note"><dt>Note</dt><dd>There are no guarantees on the order of the entities. Use <code>begin</code> and <code>end</code> if you want to iterate the view in the expected order.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the array of entities. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00546">546</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="af683298434cb58f86f0025cdb585eda2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af683298434cb58f86f0025cdb585eda2">&#9670;&nbsp;</a></span>end()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ac6be1bdfe4c0f864fc7deb04f418aadf">iterator_type</a> <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, Component &gt;::end </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an iterator that is past the last entity that has the given component. </p>
<p>The returned iterator points to the entity following the last entity that has the given component. Attempting to dereference the returned iterator results in undefined behavior.</p>
<dl class="section note"><dt>Note</dt><dd>Input iterators stay true to the order imposed to the underlying data structures.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the entity following the last entity that has the given component. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00583">583</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a831d0d782118c26ca8efe00c452f4b21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a831d0d782118c26ca8efe00c452f4b21">&#9670;&nbsp;</a></span>get() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const Component&amp; <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, Component &gt;::get </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a75fc64bf381a3003d8acf03ed66728f2">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the component assigned to the given entity. </p>
<p>Prefer this function instead of <code><a class="el" href="classentt_1_1Registry.html#a904b71bae3eaa69d534b4dc41c15e889" title="Gets a reference to the given component owned by the given entity. ">Registry::get</a></code> during iterations. It has far better performance than its companion function.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an entity that doesn't belong to the view results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the view doesn't contain the given entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The component assigned to the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00602">602</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a97f303e914e114df37e12fd4556efff6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97f303e914e114df37e12fd4556efff6">&#9670;&nbsp;</a></span>get() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Component&amp; <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, Component &gt;::get </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a75fc64bf381a3003d8acf03ed66728f2">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the component assigned to the given entity. </p>
<p>Prefer this function instead of <code><a class="el" href="classentt_1_1Registry.html#a904b71bae3eaa69d534b4dc41c15e889" title="Gets a reference to the given component owned by the given entity. ">Registry::get</a></code> during iterations. It has far better performance than its companion function.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an entity that doesn't belong to the view results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the view doesn't contain the given entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The component assigned to the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00621">621</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="aa5bfe21925dfd6af9bb8aba65d9bccd5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5bfe21925dfd6af9bb8aba65d9bccd5">&#9670;&nbsp;</a></span>raw() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a2900e9b4b4fcd73faafb1d1910648484">raw_type</a>* <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, Component &gt;::raw </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the list of components. </p>
<p>The returned pointer is such that range <code>[<a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#aa5bfe21925dfd6af9bb8aba65d9bccd5" title="Direct access to the list of components. ">raw()</a>, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#aa5bfe21925dfd6af9bb8aba65d9bccd5" title="Direct access to the list of components. ">raw()</a> + <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a6f5d49e4b67890cf53d1c3c25879fb81" title="Returns the number of entities that have the given component. ">size()</a>]</code> is always a valid range, even if the container is empty.</p>
<dl class="section note"><dt>Note</dt><dd>There are no guarantees on the order of the components. Use <code>begin</code> and <code>end</code> if you want to iterate the view in the expected order.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the array of components. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00514">514</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a1ad9504a013794b2e3f08feefc5b4c58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ad9504a013794b2e3f08feefc5b4c58">&#9670;&nbsp;</a></span>raw() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a2900e9b4b4fcd73faafb1d1910648484">raw_type</a>* <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, Component &gt;::raw </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the list of components. </p>
<p>The returned pointer is such that range <code>[<a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#aa5bfe21925dfd6af9bb8aba65d9bccd5" title="Direct access to the list of components. ">raw()</a>, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#aa5bfe21925dfd6af9bb8aba65d9bccd5" title="Direct access to the list of components. ">raw()</a> + <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a6f5d49e4b67890cf53d1c3c25879fb81" title="Returns the number of entities that have the given component. ">size()</a>]</code> is always a valid range, even if the container is empty.</p>
<dl class="section note"><dt>Note</dt><dd>There are no guarantees on the order of the components. Use <code>begin</code> and <code>end</code> if you want to iterate the view in the expected order.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the array of components. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00530">530</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<a id="a6f5d49e4b67890cf53d1c3c25879fb81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f5d49e4b67890cf53d1c3c25879fb81">&#9670;&nbsp;</a></span>size()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity , typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#afa754b0f10b28dbdb2149b5b8d0fdf73">size_type</a> <a class="el" href="classentt_1_1View.html">entt::View</a>&lt; Entity, Component &gt;::size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of entities that have the given component. </p>
<dl class="section return"><dt>Returns</dt><dd>The number of entities that have the given component. </dd></dl>
<p class="definition">Definition at line <a class="el" href="view_8hpp_source.html#l00498">498</a> of file <a class="el" href="view_8hpp_source.html">view.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/entt/entity/<a class="el" href="view_8hpp_source.html">view.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

92
classes.html Normal file
View File

@@ -0,0 +1,92 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Class Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Class Index</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_e">e</a>&#160;|&#160;<a class="qindex" href="#letter_f">f</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_r">r</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_v">v</a></div>
<table class="classindex">
<tr><td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;e&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;f&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_r"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;r&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html">SigH&lt; Ret(Args...)&gt;</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html">View&lt; Entity, Component &gt;</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="classentt_1_1SparseSet.html">SparseSet</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="structentt_1_1entt__traits.html">entt_traits</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classentt_1_1Family.html">Family</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classentt_1_1Registry.html">Registry</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html">SparseSet&lt; Entity &gt;</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html">entt_traits&lt; std::uint16_t &gt;</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html">SparseSet&lt; Entity, Type &gt;</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html">entt_traits&lt; std::uint32_t &gt;</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;v&#160;&#160;</div></td></tr></table>
</td><td></td></tr>
<tr><td valign="top"><a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html">entt_traits&lt; std::uint64_t &gt;</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classentt_1_1PersistentView.html">PersistentView</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classentt_1_1SigH.html">SigH</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="classentt_1_1View.html">View</a> (<a class="el" href="namespaceentt.html">entt</a>)&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_e">e</a>&#160;|&#160;<a class="qindex" href="#letter_f">f</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_r">r</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_v">v</a></div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

BIN
closed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

View File

@@ -1,19 +0,0 @@
project(googletest-download NONE)
cmake_minimum_required(VERSION 3.2)
include(ExternalProject)
ExternalProject_Add(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.8.0
DOWNLOAD_DIR ${GOOGLETEST_DEPS_DIR}
TMP_DIR ${GOOGLETEST_DEPS_DIR}/tmp
STAMP_DIR ${GOOGLETEST_DEPS_DIR}/stamp
SOURCE_DIR ${GOOGLETEST_DEPS_DIR}/src
BINARY_DIR ${GOOGLETEST_DEPS_DIR}/build
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)

2
deps/.gitignore vendored
View File

@@ -1,2 +0,0 @@
*
!.gitignore

View File

@@ -0,0 +1,82 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: src/entt Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_66e9674e8206a335795995fa32a03c91.html">entt</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entt Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
Directories</h2></td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,82 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: src Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">src Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
Directories</h2></td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,78 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: src/entt/signal Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_66e9674e8206a335795995fa32a03c91.html">entt</a></li><li class="navelem"><a class="el" href="dir_a53318306f6ac0f7fe657839abd543ab.html">signal</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">signal Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,78 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: src/entt/core Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_66e9674e8206a335795995fa32a03c91.html">entt</a></li><li class="navelem"><a class="el" href="dir_de8f4e6ba3f54a2a21309f742e93a373.html">core</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">core Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

View File

@@ -0,0 +1,78 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: src/entt/entity Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_66e9674e8206a335795995fa32a03c91.html">entt</a></li><li class="navelem"><a class="el" href="dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html">entity</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entity Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

BIN
doc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

1596
doxygen.css Normal file

File diff suppressed because it is too large Load Diff

BIN
doxygen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

104
dynsections.js Normal file
View File

@@ -0,0 +1,104 @@
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
var summary = $('#'+base+'-summary');
var content = $('#'+base+'-content');
var trigger = $('#'+base+'-trigger');
var src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.hide();
summary.show();
$(linkObj).addClass('closed').removeClass('opened');
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
content.show();
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
}
return false;
}
function updateStripes()
{
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
}
function toggleLevel(level)
{
$('table.directory tr').each(function() {
var l = this.id.split('_').length-1;
var i = $('#img'+this.id.substring(3));
var a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
a.html('&#9660;');
$(this).show();
} else if (l==level+1) {
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
a.html('&#9658;');
$(this).show();
} else {
$(this).hide();
}
});
updateStripes();
}
function toggleFolder(id)
{
// the clicked row
var currentRow = $('#row_'+id);
// all rows after the clicked row
var rows = currentRow.nextAll("tr");
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
var childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
currentRowSpans.filter(".arrow").html('&#9658;');
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
currentRowSpans.filter(".arrow").html('&#9660;');
// replace down arrows by right arrows for child rows
var childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
childRowsSpans.filter(".arrow").html('&#9658;');
childRows.show(); //show all children
}
updateStripes();
}
function toggleInherit(id)
{
var rows = $('tr.inherit.'+id);
var img = $('tr.inherit_header.'+id+' img');
var src = $(img).attr('src');
if (rows.filter(':first').is(':visible')===true) {
rows.css('display','none');
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
rows.css('display','table-row'); // using show() causes jump in firefox
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
}
}
$(document).ready(function() {
$('.code,.codeRef').each(function() {
$(this).data('powertip',$('#'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
$(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
});
});

78
entt_8hpp_source.html Normal file
View File

@@ -0,0 +1,78 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: src/entt/entt.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_66e9674e8206a335795995fa32a03c91.html">entt</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">entt.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;core/family.hpp&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;core/ident.hpp&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;entity/registry.hpp&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;entity/sparse_set.hpp&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;entity/traits.hpp&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;entity/view.hpp&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;signal/sigh.hpp&quot;</span></div></div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

81
family_8hpp_source.html Normal file
View File

@@ -0,0 +1,81 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: src/entt/core/family.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_66e9674e8206a335795995fa32a03c91.html">entt</a></li><li class="navelem"><a class="el" href="dir_de8f4e6ba3f54a2a21309f742e93a373.html">core</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">family.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef ENTT_CORE_FAMILY_HPP</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define ENTT_CORE_FAMILY_HPP</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include&lt;type_traits&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include&lt;cstddef&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include&lt;utility&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="namespaceentt.html"> 10</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentt.html">entt</a> {</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span>...&gt;</div><div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="classentt_1_1Family.html"> 21</a></span>&#160;<span class="keyword">class </span><a class="code" href="classentt_1_1Family.html">Family</a> {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">static</span> std::size_t identifier() noexcept {</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">static</span> std::size_t value = 0;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">return</span> value++;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; }</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span>...&gt;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classentt_1_1Family.html#a221d31326ada546b679633235ef9494c"> 33</a></span>&#160; <span class="keyword">static</span> std::size_t <a class="code" href="classentt_1_1Family.html#a221d31326ada546b679633235ef9494c">type</a>() noexcept {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> std::size_t value = identifier();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">return</span> value;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; }</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;};</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#endif // ENTT_CORE_FAMILY_HPP</span></div><div class="ttc" id="classentt_1_1Family_html_a221d31326ada546b679633235ef9494c"><div class="ttname"><a href="classentt_1_1Family.html#a221d31326ada546b679633235ef9494c">entt::Family::type</a></div><div class="ttdeci">static std::size_t type() noexcept</div><div class="ttdoc">Returns an unique identifier for the given type. </div><div class="ttdef"><b>Definition:</b> <a href="family_8hpp_source.html#l00033">family.hpp:33</a></div></div>
<div class="ttc" id="namespaceentt_html"><div class="ttname"><a href="namespaceentt.html">entt</a></div><div class="ttdoc">EnTT default namespace. </div><div class="ttdef"><b>Definition:</b> <a href="family_8hpp_source.html#l00010">family.hpp:10</a></div></div>
<div class="ttc" id="classentt_1_1Family_html"><div class="ttname"><a href="classentt_1_1Family.html">entt::Family</a></div><div class="ttdoc">Dynamic identifier generator. </div><div class="ttdef"><b>Definition:</b> <a href="family_8hpp_source.html#l00021">family.hpp:21</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

91
files.html Normal file
View File

@@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">File List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_66e9674e8206a335795995fa32a03c91.html" target="_self">entt</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_0_" class="arrow" onclick="toggleFolder('0_0_0_')">&#9660;</span><span id="img_0_0_0_" class="iconfopen" onclick="toggleFolder('0_0_0_')">&#160;</span><a class="el" href="dir_de8f4e6ba3f54a2a21309f742e93a373.html" target="_self">core</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="family_8hpp_source.html"><span class="icondoc"></span></a><b>family.hpp</b></td><td class="desc"></td></tr>
<tr id="row_0_0_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="ident_8hpp_source.html"><span class="icondoc"></span></a><b>ident.hpp</b></td><td class="desc"></td></tr>
<tr id="row_0_0_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_1_" class="arrow" onclick="toggleFolder('0_0_1_')">&#9660;</span><span id="img_0_0_1_" class="iconfopen" onclick="toggleFolder('0_0_1_')">&#160;</span><a class="el" href="dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html" target="_self">entity</a></td><td class="desc"></td></tr>
<tr id="row_0_0_1_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="registry_8hpp_source.html"><span class="icondoc"></span></a><b>registry.hpp</b></td><td class="desc"></td></tr>
<tr id="row_0_0_1_1_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="sparse__set_8hpp_source.html"><span class="icondoc"></span></a><b>sparse_set.hpp</b></td><td class="desc"></td></tr>
<tr id="row_0_0_1_2_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="traits_8hpp_source.html"><span class="icondoc"></span></a><b>traits.hpp</b></td><td class="desc"></td></tr>
<tr id="row_0_0_1_3_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="view_8hpp_source.html"><span class="icondoc"></span></a><b>view.hpp</b></td><td class="desc"></td></tr>
<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_2_" class="arrow" onclick="toggleFolder('0_0_2_')">&#9660;</span><span id="img_0_0_2_" class="iconfopen" onclick="toggleFolder('0_0_2_')">&#160;</span><a class="el" href="dir_a53318306f6ac0f7fe657839abd543ab.html" target="_self">signal</a></td><td class="desc"></td></tr>
<tr id="row_0_0_2_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="sigh_8hpp_source.html"><span class="icondoc"></span></a><b>sigh.hpp</b></td><td class="desc"></td></tr>
<tr id="row_0_0_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="entt_8hpp_source.html"><span class="icondoc"></span></a><b>entt.hpp</b></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

BIN
folderclosed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

BIN
folderopen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

345
functions.html Normal file
View File

@@ -0,0 +1,345 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Class Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
<h3><a id="index_a"></a>- a -</h3><ul>
<li>accomodate()
: <a class="el" href="classentt_1_1Registry.html#a14524dac71cf528fcdccd74cdf230627">entt::Registry&lt; Entity &gt;</a>
</li>
<li>assign()
: <a class="el" href="classentt_1_1Registry.html#aa6b578d40a9305869e692167fc3dcddf">entt::Registry&lt; Entity &gt;</a>
</li>
</ul>
<h3><a id="index_b"></a>- b -</h3><ul>
<li>begin()
: <a class="el" href="classentt_1_1PersistentView.html#a56b0ad24d885281b2985b083553a1156">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1efc9899f2ede4fd8ea1840a7ed8dbc7">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1View.html#aecf54fad5f9fce08a3e452fcd304ed9c">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ae351dc5fef90e54a61187310d1e7d9ba">entt::View&lt; Entity, Component &gt;</a>
</li>
</ul>
<h3><a id="index_c"></a>- c -</h3><ul>
<li>capacity()
: <a class="el" href="classentt_1_1Registry.html#af51d1553722e555eb1557fc0c68f104a">entt::Registry&lt; Entity &gt;</a>
</li>
<li>clear()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ac61dd0b81a8264df96e4a14ef597dba8">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
<li>connect()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ab152ac61c8693e58e712dedd09214af0">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
<li>construct()
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#abb58b7215e9c15cd705f66e4b233706d">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#aaf02adad06199a55c618622c365c0287">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
<li>create()
: <a class="el" href="classentt_1_1Registry.html#ae1d9f447dfda4794f8d364965eab6586">entt::Registry&lt; Entity &gt;</a>
</li>
<li>current()
: <a class="el" href="classentt_1_1Registry.html#a4e1a07f4170764925864b162277485b6">entt::Registry&lt; Entity &gt;</a>
</li>
</ul>
<h3><a id="index_d"></a>- d -</h3><ul>
<li>data()
: <a class="el" href="classentt_1_1PersistentView.html#ac6f07a78cd7cac6dc9574877e1073a19">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6e4dda542e3d725dd963dea57bfb9cb1">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a78f5d9ebb636c6acb391d802ad13fede">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>destroy()
: <a class="el" href="classentt_1_1Registry.html#afe1fc933ce101207a49b6bdeafa2ce41">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab4be1be8435da50621373c0bd737a1e8">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a06b863abd1b457c48b7080e203b47a0f">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
<li>disconnect()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a476a043603c4561fae32863e6103b2f1">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
</ul>
<h3><a id="index_e"></a>- e -</h3><ul>
<li>empty()
: <a class="el" href="classentt_1_1Registry.html#afccc9bc4af28b679d761f365655e1d42">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ab9336ffcfa8bf37b9c402eb70b470483">entt::SigH&lt; Ret(Args...)&gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a9d6b9c98d2645d821c81ff7d3586ca27">entt::SparseSet&lt; Entity &gt;</a>
</li>
<li>end()
: <a class="el" href="classentt_1_1PersistentView.html#a48703efeadcd08915f32e5c647db5754">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a2c54395d55054437bfe179718e102181">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1View.html#a61dbd65a57f56771f6b9aff282592055">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#af683298434cb58f86f0025cdb585eda2">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>entity_mask
: <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html#a8cbe9cd94ffc28ffb6e2302e9c3d9d93">entt::entt_traits&lt; std::uint16_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html#ad5117f976c01a855164ab5b788f82af5">entt::entt_traits&lt; std::uint32_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html#a4a9de15b5c7720c248a9cfee974a304f">entt::entt_traits&lt; std::uint64_t &gt;</a>
</li>
<li>entity_type
: <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html#a86e202c8932f341626b29c194bd47489">entt::entt_traits&lt; std::uint16_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html#aecde3ac9bfc28e7f0f880a74ee2c5d8f">entt::entt_traits&lt; std::uint32_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html#a304eb4dc4a1487cf2966d902214f7185">entt::entt_traits&lt; std::uint64_t &gt;</a>
, <a class="el" href="classentt_1_1PersistentView.html#a5195c9d1dede0fe6c40bea576398022b">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1Registry.html#ad434a1920dd2c6a9a31ab482e2f29038">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#afe382e2d5c8769fb3d924e1a357cf9b0">entt::SparseSet&lt; Entity, Type &gt;</a>
, <a class="el" href="classentt_1_1View.html#ad9dc37ca8b83a1ebcc0c5860e3327c0f">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a75fc64bf381a3003d8acf03ed66728f2">entt::View&lt; Entity, Component &gt;</a>
</li>
</ul>
<h3><a id="index_g"></a>- g -</h3><ul>
<li>get()
: <a class="el" href="classentt_1_1PersistentView.html#a7b1ca9cc827871a1dbab18e5cbc0826a">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1Registry.html#a6b1cd324d6d080c68f61def36a7a4668">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7aa0a2c4f286228fc47d32761552bc13">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a8da654fb96317df9b00ea48b75cf642a">entt::SparseSet&lt; Entity, Type &gt;</a>
, <a class="el" href="classentt_1_1View.html#a180a7c5c8dc1974f4549ce3198e3fd97">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a831d0d782118c26ca8efe00c452f4b21">entt::View&lt; Entity, Component &gt;</a>
</li>
</ul>
<h3><a id="index_h"></a>- h -</h3><ul>
<li>has()
: <a class="el" href="classentt_1_1Registry.html#ace82d0e0181bf0872174e1774d729db4">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1b6a33e6e65345bf028877efa74c5a5e">entt::SparseSet&lt; Entity &gt;</a>
</li>
</ul>
<h3><a id="index_i"></a>- i -</h3><ul>
<li>iterator_type
: <a class="el" href="classentt_1_1PersistentView.html#ae563ed31a62fd9f33f93767f0ecdfff5">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#aab1937b624841a57dd7487e7a40ea0ac">entt::SparseSet&lt; Entity, Type &gt;</a>
, <a class="el" href="classentt_1_1View.html#ada871f4f73d072442cad5da1926eb0a8">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ac6be1bdfe4c0f864fc7deb04f418aadf">entt::View&lt; Entity, Component &gt;</a>
</li>
</ul>
<h3><a id="index_o"></a>- o -</h3><ul>
<li>operator=()
: <a class="el" href="classentt_1_1Registry.html#a6ff250745f1774984a9524d63855f26d">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ac82f1eb153df6f5657ba7bca025c9efc">entt::SigH&lt; Ret(Args...)&gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a24ddfc9e45d7b70639124fe7c2800384">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a52a81e838ae87413116ab9165ab9ba86">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
<li>operator==()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#aca4e12793bd2d0fae4d214fde6013d13">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
</ul>
<h3><a id="index_p"></a>- p -</h3><ul>
<li>persistent()
: <a class="el" href="classentt_1_1Registry.html#a139a4d7b711fc1813c6c4520b9e79c09">entt::Registry&lt; Entity &gt;</a>
</li>
<li>PersistentView()
: <a class="el" href="classentt_1_1PersistentView.html#ab673895244500555493f7eb31c2a1728">entt::PersistentView&lt; Entity, Component &gt;</a>
</li>
<li>pos_type
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a20c218a69cf339371251ffa5580d7aa0">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#ad161a395ca3979154a333520662c7737">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
<li>prepare()
: <a class="el" href="classentt_1_1Registry.html#ac05c9ccc5fe57df386d8104578fc9675">entt::Registry&lt; Entity &gt;</a>
</li>
<li>publish()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a8e3b57f6b3e65034937e410f60635d79">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
</ul>
<h3><a id="index_r"></a>- r -</h3><ul>
<li>raw()
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a05125091c25b7a3c62561c247e09c5a2">entt::SparseSet&lt; Entity, Type &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a1ad9504a013794b2e3f08feefc5b4c58">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>raw_type
: <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a2900e9b4b4fcd73faafb1d1910648484">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>Registry()
: <a class="el" href="classentt_1_1Registry.html#ab5022bf3ac71d209cb9b85e686324f28">entt::Registry&lt; Entity &gt;</a>
</li>
<li>remove()
: <a class="el" href="classentt_1_1Registry.html#a856e1f92b8c1c523e66035481ef4ab8d">entt::Registry&lt; Entity &gt;</a>
</li>
<li>replace()
: <a class="el" href="classentt_1_1Registry.html#a5ce71508e824ea5ef0d95d4baef37503">entt::Registry&lt; Entity &gt;</a>
</li>
<li>reset()
: <a class="el" href="classentt_1_1Registry.html#ae58d20711dabcd4959a89e0928974136">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ad1c62c65aeb0112e688f05d8f641cdab">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a3b138c121f11592a3f9e9f2fc2bb67fe">entt::SparseSet&lt; Entity, Type &gt;</a>
, <a class="el" href="classentt_1_1View.html#a2a12951d1032876dd9c534cba78f0f14">entt::View&lt; Entity, First, Other &gt;</a>
</li>
<li>respect()
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab1e2dd6f41d75e6b808a453a24d3d955">entt::SparseSet&lt; Entity &gt;</a>
</li>
</ul>
<h3><a id="index_s"></a>- s -</h3><ul>
<li>SigH()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ab1b9dbb2dea4f33c0556ab2da5d76ae2">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
<li>size()
: <a class="el" href="classentt_1_1PersistentView.html#a416b2794ee8c13ac0f793e2a7a9ae769">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1Registry.html#a16f0e2c46c7f95ce9f16561bbeb6c52c">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a75f255c0d8a399a9452e2eeb12ff332c">entt::SigH&lt; Ret(Args...)&gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a337360e8d0f44c373acef65328a3e9f8">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a6f5d49e4b67890cf53d1c3c25879fb81">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>size_type
: <a class="el" href="classentt_1_1PersistentView.html#ac2e81caacece38b84f46c4430cd8cf4e">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1Registry.html#a741ffda6e06838c5593ba97adc7658e2">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#acfb88c5b425fab6e5c5cd416943d23a7">entt::SigH&lt; Ret(Args...)&gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab81c48dcee7a1104ee82794613ee7ed2">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a27a88e2bb0822de41131741d9ffcded5">entt::SparseSet&lt; Entity, Type &gt;</a>
, <a class="el" href="classentt_1_1View.html#a1f398913dffcfcdc1200c1fc0f28b1dd">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#afa754b0f10b28dbdb2149b5b8d0fdf73">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>sort()
: <a class="el" href="classentt_1_1PersistentView.html#accde3d4b4a904e79c832f6b05f324b05">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1Registry.html#a625ada828ff48c153c7be14cc99eeca5">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ac222c5dcab4e40674dc0152cc2774409">entt::SparseSet&lt; Entity &gt;</a>
</li>
<li>SparseSet()
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#acdfceb557303dee515fe906a13ac759e">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a24c21285684a38acf7d1a3384ac1ab5c">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
<li>swap
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a77dd7bf9e63e5457c080416f31bb232b">entt::SigH&lt; Ret(Args...)&gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a4a6dff653279d53831e5ed2f27b687d3">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a9f17b5608443a236189e10089f46b89d">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
</ul>
<h3><a id="index_t"></a>- t -</h3><ul>
<li>type()
: <a class="el" href="classentt_1_1Family.html#a221d31326ada546b679633235ef9494c">entt::Family&lt;... &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
</ul>
<h3><a id="index_v"></a>- v -</h3><ul>
<li>valid()
: <a class="el" href="classentt_1_1Registry.html#a11a759638bf2c28ac1670c7b533ca53f">entt::Registry&lt; Entity &gt;</a>
</li>
<li>version()
: <a class="el" href="classentt_1_1Registry.html#a773c2bb361f4e83aae1349ccfeede56b">entt::Registry&lt; Entity &gt;</a>
</li>
<li>version_mask
: <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html#a78f400e87476e73bf4eb324ccb977682">entt::entt_traits&lt; std::uint16_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html#a6aa8692650455fe7b691a69b7621f9a1">entt::entt_traits&lt; std::uint32_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html#ab242af30841712877cd2d4042840551b">entt::entt_traits&lt; std::uint64_t &gt;</a>
</li>
<li>version_shift
: <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html#ac15e408e560ad377c1a7675921b7fdaa">entt::entt_traits&lt; std::uint16_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html#acc5ced135b3b2462fe5d87d6330089bf">entt::entt_traits&lt; std::uint32_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html#af040b5eb089ccdccb2f22ab70c98126f">entt::entt_traits&lt; std::uint64_t &gt;</a>
</li>
<li>version_type
: <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html#ab37d10c3be3d59159a63c0bd1e9e2924">entt::entt_traits&lt; std::uint16_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html#aee59dc7455ea0be015e699c3e46a22d1">entt::entt_traits&lt; std::uint32_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html#aeac4d9172940a9dec0682860ac176725">entt::entt_traits&lt; std::uint64_t &gt;</a>
, <a class="el" href="classentt_1_1Registry.html#a82c8996277034df5e72b5f30a70ebb2d">entt::Registry&lt; Entity &gt;</a>
</li>
<li>view()
: <a class="el" href="classentt_1_1Registry.html#aed83d4c8f80ae647ee73f2a8440fa09d">entt::Registry&lt; Entity &gt;</a>
</li>
<li>View()
: <a class="el" href="classentt_1_1View.html#a87458191a9cffea5e9fc10e36f85cf3e">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a24c7693fd64b152591a1a63d46f8e91f">entt::View&lt; Entity, Component &gt;</a>
</li>
</ul>
<h3><a id="index_0x7e"></a>- ~ -</h3><ul>
<li>~Registry()
: <a class="el" href="classentt_1_1Registry.html#a82cdceea5721c9b227cdef6d69020047">entt::Registry&lt; Entity &gt;</a>
</li>
<li>~SigH()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#aed50c6a7584447de8972b8086284f6d9">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
<li>~SparseSet()
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6c078509aa5b611563c7d11f3a5114bf">entt::SparseSet&lt; Entity &gt;</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

284
functions_func.html Normal file
View File

@@ -0,0 +1,284 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Class Members - Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;
<h3><a id="index_a"></a>- a -</h3><ul>
<li>accomodate()
: <a class="el" href="classentt_1_1Registry.html#a14524dac71cf528fcdccd74cdf230627">entt::Registry&lt; Entity &gt;</a>
</li>
<li>assign()
: <a class="el" href="classentt_1_1Registry.html#aa6b578d40a9305869e692167fc3dcddf">entt::Registry&lt; Entity &gt;</a>
</li>
</ul>
<h3><a id="index_b"></a>- b -</h3><ul>
<li>begin()
: <a class="el" href="classentt_1_1PersistentView.html#a56b0ad24d885281b2985b083553a1156">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1efc9899f2ede4fd8ea1840a7ed8dbc7">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1View.html#aecf54fad5f9fce08a3e452fcd304ed9c">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ae351dc5fef90e54a61187310d1e7d9ba">entt::View&lt; Entity, Component &gt;</a>
</li>
</ul>
<h3><a id="index_c"></a>- c -</h3><ul>
<li>capacity()
: <a class="el" href="classentt_1_1Registry.html#af51d1553722e555eb1557fc0c68f104a">entt::Registry&lt; Entity &gt;</a>
</li>
<li>clear()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ac61dd0b81a8264df96e4a14ef597dba8">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
<li>connect()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a24a1ade0a4886219fe9a55c3f22ba453">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
<li>construct()
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#abb58b7215e9c15cd705f66e4b233706d">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#aaf02adad06199a55c618622c365c0287">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
<li>create()
: <a class="el" href="classentt_1_1Registry.html#ae3c9cd27360a869f1e192d159447b5e4">entt::Registry&lt; Entity &gt;</a>
</li>
<li>current()
: <a class="el" href="classentt_1_1Registry.html#a4e1a07f4170764925864b162277485b6">entt::Registry&lt; Entity &gt;</a>
</li>
</ul>
<h3><a id="index_d"></a>- d -</h3><ul>
<li>data()
: <a class="el" href="classentt_1_1PersistentView.html#ac6f07a78cd7cac6dc9574877e1073a19">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6e4dda542e3d725dd963dea57bfb9cb1">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a78f5d9ebb636c6acb391d802ad13fede">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>destroy()
: <a class="el" href="classentt_1_1Registry.html#afe1fc933ce101207a49b6bdeafa2ce41">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab4be1be8435da50621373c0bd737a1e8">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a06b863abd1b457c48b7080e203b47a0f">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
<li>disconnect()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a22891cefa259e475462242442b0fe55f">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
</ul>
<h3><a id="index_e"></a>- e -</h3><ul>
<li>empty()
: <a class="el" href="classentt_1_1Registry.html#afccc9bc4af28b679d761f365655e1d42">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ab9336ffcfa8bf37b9c402eb70b470483">entt::SigH&lt; Ret(Args...)&gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a9d6b9c98d2645d821c81ff7d3586ca27">entt::SparseSet&lt; Entity &gt;</a>
</li>
<li>end()
: <a class="el" href="classentt_1_1PersistentView.html#a48703efeadcd08915f32e5c647db5754">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a2c54395d55054437bfe179718e102181">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1View.html#a61dbd65a57f56771f6b9aff282592055">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#af683298434cb58f86f0025cdb585eda2">entt::View&lt; Entity, Component &gt;</a>
</li>
</ul>
<h3><a id="index_g"></a>- g -</h3><ul>
<li>get()
: <a class="el" href="classentt_1_1PersistentView.html#a7b1ca9cc827871a1dbab18e5cbc0826a">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1Registry.html#a904b71bae3eaa69d534b4dc41c15e889">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7aa0a2c4f286228fc47d32761552bc13">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#ae3c82ad4f376e67e8ccafede84942cf2">entt::SparseSet&lt; Entity, Type &gt;</a>
, <a class="el" href="classentt_1_1View.html#a180a7c5c8dc1974f4549ce3198e3fd97">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a97f303e914e114df37e12fd4556efff6">entt::View&lt; Entity, Component &gt;</a>
</li>
</ul>
<h3><a id="index_h"></a>- h -</h3><ul>
<li>has()
: <a class="el" href="classentt_1_1Registry.html#ace82d0e0181bf0872174e1774d729db4">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1b6a33e6e65345bf028877efa74c5a5e">entt::SparseSet&lt; Entity &gt;</a>
</li>
</ul>
<h3><a id="index_o"></a>- o -</h3><ul>
<li>operator=()
: <a class="el" href="classentt_1_1Registry.html#a6ff250745f1774984a9524d63855f26d">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a19f0b1697d8f4af9946519c7aba33231">entt::SigH&lt; Ret(Args...)&gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a24ddfc9e45d7b70639124fe7c2800384">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#aa700bb907a18470dce144f84822c67ae">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
<li>operator==()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#aca4e12793bd2d0fae4d214fde6013d13">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
</ul>
<h3><a id="index_p"></a>- p -</h3><ul>
<li>persistent()
: <a class="el" href="classentt_1_1Registry.html#a139a4d7b711fc1813c6c4520b9e79c09">entt::Registry&lt; Entity &gt;</a>
</li>
<li>PersistentView()
: <a class="el" href="classentt_1_1PersistentView.html#ab673895244500555493f7eb31c2a1728">entt::PersistentView&lt; Entity, Component &gt;</a>
</li>
<li>prepare()
: <a class="el" href="classentt_1_1Registry.html#ac05c9ccc5fe57df386d8104578fc9675">entt::Registry&lt; Entity &gt;</a>
</li>
<li>publish()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a8e3b57f6b3e65034937e410f60635d79">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
</ul>
<h3><a id="index_r"></a>- r -</h3><ul>
<li>raw()
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a05125091c25b7a3c62561c247e09c5a2">entt::SparseSet&lt; Entity, Type &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#aa5bfe21925dfd6af9bb8aba65d9bccd5">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>Registry()
: <a class="el" href="classentt_1_1Registry.html#ab5022bf3ac71d209cb9b85e686324f28">entt::Registry&lt; Entity &gt;</a>
</li>
<li>remove()
: <a class="el" href="classentt_1_1Registry.html#a856e1f92b8c1c523e66035481ef4ab8d">entt::Registry&lt; Entity &gt;</a>
</li>
<li>replace()
: <a class="el" href="classentt_1_1Registry.html#a5ce71508e824ea5ef0d95d4baef37503">entt::Registry&lt; Entity &gt;</a>
</li>
<li>reset()
: <a class="el" href="classentt_1_1Registry.html#ae58d20711dabcd4959a89e0928974136">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ad1c62c65aeb0112e688f05d8f641cdab">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a3b138c121f11592a3f9e9f2fc2bb67fe">entt::SparseSet&lt; Entity, Type &gt;</a>
, <a class="el" href="classentt_1_1View.html#a2a12951d1032876dd9c534cba78f0f14">entt::View&lt; Entity, First, Other &gt;</a>
</li>
<li>respect()
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab1e2dd6f41d75e6b808a453a24d3d955">entt::SparseSet&lt; Entity &gt;</a>
</li>
</ul>
<h3><a id="index_s"></a>- s -</h3><ul>
<li>SigH()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#ab1b9dbb2dea4f33c0556ab2da5d76ae2">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
<li>size()
: <a class="el" href="classentt_1_1PersistentView.html#a416b2794ee8c13ac0f793e2a7a9ae769">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1Registry.html#a16f0e2c46c7f95ce9f16561bbeb6c52c">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a75f255c0d8a399a9452e2eeb12ff332c">entt::SigH&lt; Ret(Args...)&gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a337360e8d0f44c373acef65328a3e9f8">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a6f5d49e4b67890cf53d1c3c25879fb81">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>sort()
: <a class="el" href="classentt_1_1PersistentView.html#accde3d4b4a904e79c832f6b05f324b05">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1Registry.html#a625ada828ff48c153c7be14cc99eeca5">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ac222c5dcab4e40674dc0152cc2774409">entt::SparseSet&lt; Entity &gt;</a>
</li>
<li>SparseSet()
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#aa4ad5318f2be78e8e4336bdf4b012905">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a11cbb29701b5a1b1a6e4b77d19d29cec">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
<li>swap()
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a4a6dff653279d53831e5ed2f27b687d3">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a9f17b5608443a236189e10089f46b89d">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
</ul>
<h3><a id="index_t"></a>- t -</h3><ul>
<li>type()
: <a class="el" href="classentt_1_1Family.html#a221d31326ada546b679633235ef9494c">entt::Family&lt;... &gt;</a>
</li>
</ul>
<h3><a id="index_v"></a>- v -</h3><ul>
<li>valid()
: <a class="el" href="classentt_1_1Registry.html#a11a759638bf2c28ac1670c7b533ca53f">entt::Registry&lt; Entity &gt;</a>
</li>
<li>version()
: <a class="el" href="classentt_1_1Registry.html#a773c2bb361f4e83aae1349ccfeede56b">entt::Registry&lt; Entity &gt;</a>
</li>
<li>view()
: <a class="el" href="classentt_1_1Registry.html#aed83d4c8f80ae647ee73f2a8440fa09d">entt::Registry&lt; Entity &gt;</a>
</li>
<li>View()
: <a class="el" href="classentt_1_1View.html#a87458191a9cffea5e9fc10e36f85cf3e">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a24c7693fd64b152591a1a63d46f8e91f">entt::View&lt; Entity, Component &gt;</a>
</li>
</ul>
<h3><a id="index_0x7e"></a>- ~ -</h3><ul>
<li>~Registry()
: <a class="el" href="classentt_1_1Registry.html#a82cdceea5721c9b227cdef6d69020047">entt::Registry&lt; Entity &gt;</a>
</li>
<li>~SigH()
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#aed50c6a7584447de8972b8086284f6d9">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
<li>~SparseSet()
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a6c078509aa5b611563c7d11f3a5114bf">entt::SparseSet&lt; Entity &gt;</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

75
functions_rela.html Normal file
View File

@@ -0,0 +1,75 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Class Members - Related Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>swap
: <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#a77dd7bf9e63e5457c080416f31bb232b">entt::SigH&lt; Ret(Args...)&gt;</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

115
functions_type.html Normal file
View File

@@ -0,0 +1,115 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Class Members - Typedefs</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>entity_type
: <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html#a86e202c8932f341626b29c194bd47489">entt::entt_traits&lt; std::uint16_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html#aecde3ac9bfc28e7f0f880a74ee2c5d8f">entt::entt_traits&lt; std::uint32_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html#a304eb4dc4a1487cf2966d902214f7185">entt::entt_traits&lt; std::uint64_t &gt;</a>
, <a class="el" href="classentt_1_1PersistentView.html#a5195c9d1dede0fe6c40bea576398022b">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1Registry.html#ad434a1920dd2c6a9a31ab482e2f29038">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a7d36e852257a965a9a0ed3fb636433e2">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#afe382e2d5c8769fb3d924e1a357cf9b0">entt::SparseSet&lt; Entity, Type &gt;</a>
, <a class="el" href="classentt_1_1View.html#ad9dc37ca8b83a1ebcc0c5860e3327c0f">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a75fc64bf381a3003d8acf03ed66728f2">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>iterator_type
: <a class="el" href="classentt_1_1PersistentView.html#ae563ed31a62fd9f33f93767f0ecdfff5">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a1ad77aed1e49af60b61044c996969b9a">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#aab1937b624841a57dd7487e7a40ea0ac">entt::SparseSet&lt; Entity, Type &gt;</a>
, <a class="el" href="classentt_1_1View.html#ada871f4f73d072442cad5da1926eb0a8">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#ac6be1bdfe4c0f864fc7deb04f418aadf">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>pos_type
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#a20c218a69cf339371251ffa5580d7aa0">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#ad161a395ca3979154a333520662c7737">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
<li>raw_type
: <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#a2900e9b4b4fcd73faafb1d1910648484">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>size_type
: <a class="el" href="classentt_1_1PersistentView.html#ac2e81caacece38b84f46c4430cd8cf4e">entt::PersistentView&lt; Entity, Component &gt;</a>
, <a class="el" href="classentt_1_1Registry.html#a741ffda6e06838c5593ba97adc7658e2">entt::Registry&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html#acfb88c5b425fab6e5c5cd416943d23a7">entt::SigH&lt; Ret(Args...)&gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html#ab81c48dcee7a1104ee82794613ee7ed2">entt::SparseSet&lt; Entity &gt;</a>
, <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a27a88e2bb0822de41131741d9ffcded5">entt::SparseSet&lt; Entity, Type &gt;</a>
, <a class="el" href="classentt_1_1View.html#a1f398913dffcfcdc1200c1fc0f28b1dd">entt::View&lt; Entity, First, Other &gt;</a>
, <a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html#afa754b0f10b28dbdb2149b5b8d0fdf73">entt::View&lt; Entity, Component &gt;</a>
</li>
<li>type
: <a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html#a81d23c99f42e6bb7fcb4065657ae9507">entt::SparseSet&lt; Entity, Type &gt;</a>
</li>
<li>version_type
: <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html#ab37d10c3be3d59159a63c0bd1e9e2924">entt::entt_traits&lt; std::uint16_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html#aee59dc7455ea0be015e699c3e46a22d1">entt::entt_traits&lt; std::uint32_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html#aeac4d9172940a9dec0682860ac176725">entt::entt_traits&lt; std::uint64_t &gt;</a>
, <a class="el" href="classentt_1_1Registry.html#a82c8996277034df5e72b5f30a70ebb2d">entt::Registry&lt; Entity &gt;</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

87
functions_vars.html Normal file
View File

@@ -0,0 +1,87 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Class Members - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>entity_mask
: <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html#a8cbe9cd94ffc28ffb6e2302e9c3d9d93">entt::entt_traits&lt; std::uint16_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html#ad5117f976c01a855164ab5b788f82af5">entt::entt_traits&lt; std::uint32_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html#a4a9de15b5c7720c248a9cfee974a304f">entt::entt_traits&lt; std::uint64_t &gt;</a>
</li>
<li>version_mask
: <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html#a78f400e87476e73bf4eb324ccb977682">entt::entt_traits&lt; std::uint16_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html#a6aa8692650455fe7b691a69b7621f9a1">entt::entt_traits&lt; std::uint32_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html#ab242af30841712877cd2d4042840551b">entt::entt_traits&lt; std::uint64_t &gt;</a>
</li>
<li>version_shift
: <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html#ac15e408e560ad377c1a7675921b7fdaa">entt::entt_traits&lt; std::uint16_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html#acc5ced135b3b2462fe5d87d6330089bf">entt::entt_traits&lt; std::uint32_t &gt;</a>
, <a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html#af040b5eb089ccdccb2f22ab70c98126f">entt::entt_traits&lt; std::uint64_t &gt;</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

103
graph_legend.html Normal file
View File

@@ -0,0 +1,103 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Graph Legend</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Graph Legend</div> </div>
</div><!--header-->
<div class="contents">
<p>This page explains how to interpret the graphs that are generated by doxygen.</p>
<p>Consider the following example: </p><div class="fragment"><div class="line">/*! Invisible class because of truncation */</div><div class="line">class Invisible { };</div><div class="line"></div><div class="line">/*! Truncated class, inheritance relation is hidden */</div><div class="line">class Truncated : public Invisible { };</div><div class="line"></div><div class="line">/* Class not documented with doxygen comments */</div><div class="line">class Undocumented { };</div><div class="line"></div><div class="line">/*! Class that is inherited using public inheritance */</div><div class="line">class PublicBase : public Truncated { };</div><div class="line"></div><div class="line">/*! A template class */</div><div class="line">template&lt;class T&gt; class Templ { };</div><div class="line"></div><div class="line">/*! Class that is inherited using protected inheritance */</div><div class="line">class ProtectedBase { };</div><div class="line"></div><div class="line">/*! Class that is inherited using private inheritance */</div><div class="line">class PrivateBase { };</div><div class="line"></div><div class="line">/*! Class that is used by the Inherited class */</div><div class="line">class Used { };</div><div class="line"></div><div class="line">/*! Super class that inherits a number of other classes */</div><div class="line">class Inherited : public PublicBase,</div><div class="line"> protected ProtectedBase,</div><div class="line"> private PrivateBase,</div><div class="line"> public Undocumented,</div><div class="line"> public Templ&lt;int&gt;</div><div class="line">{</div><div class="line"> private:</div><div class="line"> Used *m_usedClass;</div><div class="line">};</div></div><!-- fragment --><p> This will result in the following graph:</p>
<center><div class="image">
<img src="graph_legend.png"/>
</div>
</center><p>The boxes in the above graph have the following meaning: </p>
<ul>
<li>
A filled gray box represents the struct or class for which the graph is generated. </li>
<li>
A box with a black border denotes a documented struct or class. </li>
<li>
A box with a gray border denotes an undocumented struct or class. </li>
<li>
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
</ul>
<p>The arrows have the following meaning: </p>
<ul>
<li>
A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
<li>
A dark green arrow is used for protected inheritance. </li>
<li>
A dark red arrow is used for private inheritance. </li>
<li>
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible. </li>
<li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance. </li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

1
graph_legend.md5 Normal file
View File

@@ -0,0 +1 @@
387ff8eb65306fa251338d3c9bd7bfff

BIN
graph_legend.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

96
hierarchy.html Normal file
View File

@@ -0,0 +1,96 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: Class Hierarchy</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Class Hierarchy</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">
<p><a href="inherits.html">Go to the graphical class hierarchy</a></p>
This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structentt_1_1entt__traits.html" target="_self">entt::entt_traits&lt; typename &gt;</a></td><td class="desc">Entity traits </td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html" target="_self">entt::entt_traits&lt; std::uint16_t &gt;</a></td><td class="desc">Entity traits for a 16 bits entity identifier </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html" target="_self">entt::entt_traits&lt; std::uint32_t &gt;</a></td><td class="desc">Entity traits for a 32 bits entity identifier </td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html" target="_self">entt::entt_traits&lt; std::uint64_t &gt;</a></td><td class="desc">Entity traits for a 64 bits entity identifier </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1Family.html" target="_self">entt::Family&lt;... &gt;</a></td><td class="desc">Dynamic identifier generator </td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1PersistentView.html" target="_self">entt::PersistentView&lt; Entity, Component &gt;</a></td><td class="desc">Persistent view </td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1Registry.html" target="_self">entt::Registry&lt; Entity &gt;</a></td><td class="desc">A repository class for entities and components </td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1SigH.html" target="_self">entt::SigH&lt; typename &gt;</a></td><td class="desc">Signal handler </td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1SigH_3_01Ret_07Args_8_8_8_08_4.html" target="_self">entt::SigH&lt; Ret(Args...)&gt;</a></td><td class="desc">Signal handler </td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1SigH.html" target="_self">entt::SigH&lt; void(Entity)&gt;</a></td><td class="desc"></td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1SparseSet.html" target="_self">entt::SparseSet&lt;... &gt;</a></td><td class="desc">Sparse set </td></tr>
<tr id="row_11_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_11_" class="arrow" onclick="toggleFolder('11_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1SparseSet_3_01Entity_01_4.html" target="_self">entt::SparseSet&lt; Entity &gt;</a></td><td class="desc">Basic sparse set implementation </td></tr>
<tr id="row_11_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html" target="_self">entt::SparseSet&lt; Entity, Type &gt;</a></td><td class="desc">Extended sparse set implementation </td></tr>
<tr id="row_12_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1SparseSet.html" target="_self">entt::SparseSet&lt; Entity, Component &gt;</a></td><td class="desc"></td></tr>
<tr id="row_13_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1View.html" target="_self">entt::View&lt; Entity, First, Other &gt;</a></td><td class="desc">Multi component view </td></tr>
<tr id="row_14_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentt_1_1View_3_01Entity_00_01Component_01_4.html" target="_self">entt::View&lt; Entity, Component &gt;</a></td><td class="desc">Single component view specialization </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

80
ident_8hpp_source.html Normal file

File diff suppressed because one or more lines are too long

199
index.html Normal file
View File

@@ -0,0 +1,199 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: The EnTT Framework</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">The EnTT Framework </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a href="https://travis-ci.org/skypjack/entt"></a> <a href="https://ci.appveyor.com/project/skypjack/entt"></a> <a href="https://coveralls.io/github/skypjack/entt?branch=master"></a> <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=W2HF9FESD5LJY&amp;lc=IT&amp;item_name=Michele%20Caini&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"></a></p>
<h1><a class="anchor" id="autotoc_md1"></a>
Introduction</h1>
<p><code>EnTT</code> is a header-only, tiny and easy to use framework written in modern C++.<br />
It's entirely designed around an architectural pattern pattern called <em>ECS</em> that is used mostly in game development. For further details:</p>
<ul>
<li><a href="http://entity-systems.wikidot.com/">Entity Systems Wiki</a></li>
<li><a href="http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/">Evolve Your Hierarchy</a></li>
<li><a href="https://en.wikipedia.org/wiki/Entity%E2%80%93component%E2%80%93system">ECS on Wikipedia</a></li>
</ul>
<p>Originally, <code>EnTT</code> was written as a faster alternative to other well known and open source entity-component systems.<br />
After a while the codebase has grown and more features have become part of the framework.</p>
<h2><a class="anchor" id="autotoc_md2"></a>
Code Example</h2>
<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;registry.hpp&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">struct </span>Position {</div><div class="line"> <span class="keywordtype">float</span> x;</div><div class="line"> <span class="keywordtype">float</span> y;</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keyword">struct </span>Velocity {</div><div class="line"> <span class="keywordtype">float</span> dx;</div><div class="line"> <span class="keywordtype">float</span> dy;</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keywordtype">void</span> update(<a class="code" href="classentt_1_1Registry.html">entt::DefaultRegistry</a> &amp;registry) {</div><div class="line"> <span class="keyword">auto</span> view = ecs.view&lt;Position, Velocity&gt;();</div><div class="line"></div><div class="line"> <span class="keywordflow">for</span>(<span class="keyword">auto</span> entity: view) {</div><div class="line"> <span class="keyword">auto</span> &amp;position = view.get&lt;Position&gt;(entity);</div><div class="line"> <span class="keyword">auto</span> &amp;velocity = view.get&lt;Velocity&gt;(entity);</div><div class="line"> <span class="comment">// ...</span></div><div class="line"> }</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main() {</div><div class="line"> <a class="code" href="classentt_1_1Registry.html">entt::DefaultRegistry</a> registry;</div><div class="line"></div><div class="line"> <span class="keywordflow">for</span>(<span class="keyword">auto</span> i = 0; i &lt; 10; ++i) {</div><div class="line"> <span class="keyword">auto</span> entity = registry.<a class="code" href="classentt_1_1Registry.html#ae3c9cd27360a869f1e192d159447b5e4">create</a>();</div><div class="line"> registry.<a class="code" href="classentt_1_1Registry.html#aa6b578d40a9305869e692167fc3dcddf">assign</a>&lt;Position&gt;(entity, i * 1.f, i * 1.f);</div><div class="line"> <span class="keywordflow">if</span>(i % 2 == 0) { registry.<a class="code" href="classentt_1_1Registry.html#aa6b578d40a9305869e692167fc3dcddf">assign</a>&lt;Velocity&gt;(entity, i * .1f, i * .1f); }</div><div class="line"> }</div><div class="line"></div><div class="line"> update(registry);</div><div class="line"> <span class="comment">// ...</span></div><div class="line">}</div></div><!-- fragment --><h2><a class="anchor" id="autotoc_md3"></a>
Motivation</h2>
<p>I started working on <code>EnTT</code> because of the wrong reason: my goal was to design an entity-component system that beated another well known open source solution in terms of performance.<br />
I did it, of course, but it wasn't much satisfying. Actually it wasn't satisfying at all. The fastest and nothing more, fairly little indeed. When I realized it, I tried hard to keep intact the great performance of <code>EnTT</code> and to add all the features I wanted to see in <em>my</em> entity-component system at the same time.</p>
<p>Today <code>EnTT</code> is finally what I was looking for: still faster than its <em>rivals</em>, a really good API and an amazing set of features. And even more, of course.</p>
<h3><a class="anchor" id="autotoc_md4"></a>
Performance</h3>
<p>As it stands right now, <code>EnTT</code> is just fast enough for my requirements if compared to my first choice (that was already amazingly fast indeed).<br />
Here is a comparision between the two (both of them compiled with GCC 7.2.0 on a Dell XPS 13 out of the mid 2014):</p>
<table class="doxtable">
<tr>
<th>Benchmark </th><th>EntityX (experimental/compile_time) </th><th>EnTT </th></tr>
<tr>
<td>Creating 10M entities </td><td>0.128881s </td><td><b>0.0408754s</b> </td></tr>
<tr>
<td>Destroying 10M entities </td><td><b>0.0531374s</b> </td><td>0.0545839s </td></tr>
<tr>
<td>Iterating over 10M entities, unpacking one component, standard view </td><td>0.010661s </td><td><b>1.58e-07s</b> </td></tr>
<tr>
<td>Iterating over 10M entities, unpacking two components, standard view </td><td><b>0.0112664s</b> </td><td>0.0840068s </td></tr>
<tr>
<td>Iterating over 10M entities, unpacking two components, standard view, half of the entities have all the components </td><td><b>0.0077951s</b> </td><td>0.042168s </td></tr>
<tr>
<td>Iterating over 10M entities, unpacking two components, standard view, one of the entities has all the components </td><td>0.00713398s </td><td><b>8.93e-07s</b> </td></tr>
<tr>
<td>Iterating over 10M entities, unpacking two components, persistent view </td><td>0.0112664s </td><td><b>5.68e-07s</b> </td></tr>
<tr>
<td>Iterating over 10M entities, unpacking five components, standard view </td><td><b>0.00905084s</b> </td><td>0.137757s </td></tr>
<tr>
<td>Iterating over 10M entities, unpacking five components, persistent view </td><td>0.00905084s </td><td><b>2.9e-07s</b> </td></tr>
<tr>
<td>Iterating over 10M entities, unpacking ten components, standard view </td><td><b>0.0104708s</b> </td><td>0.388602s </td></tr>
<tr>
<td>Iterating over 10M entities, unpacking ten components, standard view, half of the entities have all the components </td><td><b>0.00899859s</b> </td><td>0.200752s </td></tr>
<tr>
<td>Iterating over 10M entities, unpacking ten components, standard view, one of the entities has all the components </td><td>0.00700349s </td><td><b>2.565e-06s</b> </td></tr>
<tr>
<td>Iterating over 10M entities, unpacking ten components, persistent view </td><td>0.0104708s </td><td><b>6.23e-07s</b> </td></tr>
<tr>
<td>Iterating over 50M entities, unpacking one component, standard view </td><td>0.055194s </td><td><b>2.87e-07s</b> </td></tr>
<tr>
<td>Iterating over 50M entities, unpacking two components, standard view </td><td><b>0.0533921s</b> </td><td>0.243197s </td></tr>
<tr>
<td>Iterating over 50M entities, unpacking two components, persistent view </td><td>0.055194s </td><td><b>4.47e-07s</b> </td></tr>
<tr>
<td>Sort 150k entities, one component </td><td>- </td><td><b>0.0080046s</b> </td></tr>
<tr>
<td>Sort 150k entities, match two components </td><td>- </td><td><b>0.00608322s</b> </td></tr>
</table>
<p><code>EnTT</code> includes its own tests and benchmarks. See <a href="https://github.com/skypjack/entt/blob/master/test/benchmark.cpp">benchmark.cpp</a> for further details.<br />
On Github users can find also a <a href="https://github.com/abeimler/ecs_benchmark">benchmark suite</a> that compares a bunch of different projects, one of which is <code>EnTT</code>.</p>
<p>Of course, probably I'll try to get out of <code>EnTT</code> more features and better performance in the future, mainly for fun.<br />
If you want to contribute and/or have any suggestion, feel free to make a PR or open an issue to discuss your idea.</p>
<h1><a class="anchor" id="autotoc_md5"></a>
Build Instructions</h1>
<h2><a class="anchor" id="autotoc_md6"></a>
Requirements</h2>
<p>To be able to use <code>EnTT</code>, users must provide a full-featured compiler that supports at least C++14.<br />
The requirements below are mandatory to compile the tests and to extract the documentation:</p>
<ul>
<li>CMake version 3.2 or later.</li>
<li>Doxygen version 1.8 or later.</li>
</ul>
<h2><a class="anchor" id="autotoc_md7"></a>
Library</h2>
<p><code>EnTT</code> is a header-only library. This means that including the <code><a class="el" href="registry_8hpp_source.html">registry.hpp</a></code> header is enough to use it.<br />
It's a matter of adding the following line at the top of a file:</p>
<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;registry.hpp&gt;</span></div></div><!-- fragment --><p>Then pass the proper <code>-I</code> argument to the compiler to add the <code>src</code> directory to the include paths.</p>
<h2><a class="anchor" id="autotoc_md8"></a>
Documentation</h2>
<h3><a class="anchor" id="autotoc_md9"></a>
API Reference</h3>
<p>The documentation is based on <a href="http://www.stack.nl/~dimitri/doxygen/">doxygen</a>. To build it:</p>
<p>$ cd build $ cmake .. $ make docs</p>
<p>The API reference will be created in HTML format within the directory <code>build/docs/html</code>. To navigate it with your favorite browser:</p>
<p>$ cd build $ your_favorite_browser docs/html/index.html</p>
<p>The API reference is also available <a href="https://skypjack.github.io/entt/">online</a> for the latest version.</p>
<h3><a class="anchor" id="autotoc_md10"></a>
Crash Course</h3>
<h4><a class="anchor" id="autotoc_md11"></a>
Vademecum</h4>
<p>The <code>Registry</code> to store, the <code>View</code>s to iterate. That's all.</p>
<h2><a class="anchor" id="autotoc_md12"></a>
Tests</h2>
<p>To compile and run the tests, <code>EnTT</code> requires <em>googletest</em>.<br />
<code>cmake</code> will download and compile the library before to compile anything else.</p>
<p>To build the tests:</p>
<ul>
<li><code>$ cd build</code></li>
<li><code>$ cmake ..</code></li>
<li><code>$ make</code></li>
<li><code>$ make test</code></li>
</ul>
<p>To build the benchmarks, use the following line instead:</p>
<ul>
<li><code>$ cmake -DCMAKE_BUILD_TYPE=Release ..</code></li>
</ul>
<p>Benchmarks are compiled only in release mode currently.</p>
<h1><a class="anchor" id="autotoc_md13"></a>
Contributors</h1>
<p>If you want to contribute, please send patches as pull requests against the branch master.<br />
Check the <a href="https://github.com/skypjack/entt/blob/master/AUTHORS">contributors list</a> to see who has partecipated so far.</p>
<h1><a class="anchor" id="autotoc_md14"></a>
License</h1>
<p>Code and documentation Copyright (c) 2017 Michele Caini.<br />
Code released under <a href="https://github.com/skypjack/entt/blob/master/LICENSE">the MIT license</a>. Docs released under <a href="https://github.com/skypjack/entt/blob/master/docs/LICENSE">Creative Commons</a>.</p>
<h1><a class="anchor" id="autotoc_md15"></a>
Donation</h1>
<p>Developing and maintaining <code>EnTT</code> takes some time and lots of coffee. It still lacks a proper test suite, documentation is partially incomplete and not all functionalities have been fully implemented yet.<br />
If you want to support this project, you can offer me an espresso. I'm from Italy, we're used to turning the best coffee ever in code.<br />
Take a look at the donation button at the top of the page for more details or just click <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=W2HF9FESD5LJY&amp;lc=IT&amp;item_name=Michele%20Caini&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted">here</a>. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

3
inherit_graph_0.map Normal file
View File

@@ -0,0 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
<area shape="rect" id="node1" href="$structentt_1_1entt__traits_3_01std_1_1uint16__t_01_4.html" title="Entity traits for a 16 bits entity identifier. " alt="" coords="5,5,124,47"/>
</map>

1
inherit_graph_0.md5 Normal file
View File

@@ -0,0 +1 @@
5280b3511ad40df37cde82cb9e2eb1e1

BIN
inherit_graph_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

3
inherit_graph_1.map Normal file
View File

@@ -0,0 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
<area shape="rect" id="node1" href="$structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4.html" title="Entity traits for a 32 bits entity identifier. " alt="" coords="5,5,124,47"/>
</map>

1
inherit_graph_1.md5 Normal file
View File

@@ -0,0 +1 @@
820ea685d52a50407520850e381b91f8

BIN
inherit_graph_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

4
inherit_graph_10.map Normal file
View File

@@ -0,0 +1,4 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
<area shape="rect" id="node1" href="$classentt_1_1SparseSet_3_01Entity_01_4.html" title="Basic sparse set implementation. " alt="" coords="5,13,176,39"/>
<area shape="rect" id="node2" href="$classentt_1_1SparseSet_3_01Entity_00_01Type_01_4.html" title="Extended sparse set implementation. " alt="" coords="224,5,387,47"/>
</map>

1
inherit_graph_10.md5 Normal file
View File

@@ -0,0 +1 @@
8b49e5d4ab6821a094273ac533350361

BIN
inherit_graph_10.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

3
inherit_graph_11.map Normal file
View File

@@ -0,0 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
<area shape="rect" id="node1" href="$classentt_1_1SparseSet.html" title="entt::SparseSet\&lt; Entity,\l Component \&gt;" alt="" coords="5,5,168,47"/>
</map>

1
inherit_graph_11.md5 Normal file
View File

@@ -0,0 +1 @@
d277977b1425339c8f946591267cbe20

BIN
inherit_graph_11.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

3
inherit_graph_12.map Normal file
View File

@@ -0,0 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
<area shape="rect" id="node1" href="$classentt_1_1SparseSet.html" title="Sparse set. " alt="" coords="5,5,151,32"/>
</map>

1
inherit_graph_12.md5 Normal file
View File

@@ -0,0 +1 @@
621c711cd444e7dcd7b795f1703c5cd0

BIN
inherit_graph_12.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

3
inherit_graph_13.map Normal file
View File

@@ -0,0 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
<area shape="rect" id="node1" href="$classentt_1_1View_3_01Entity_00_01Component_01_4.html" title="Single component view specialization. " alt="" coords="5,5,136,47"/>
</map>

1
inherit_graph_13.md5 Normal file
View File

@@ -0,0 +1 @@
e858ed2f3c399ac5179f89b14a40a3d7

BIN
inherit_graph_13.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

3
inherit_graph_14.map Normal file
View File

@@ -0,0 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
<area shape="rect" id="node1" href="$classentt_1_1View.html" title="Multi component view. " alt="" coords="5,5,136,47"/>
</map>

1
inherit_graph_14.md5 Normal file
View File

@@ -0,0 +1 @@
9ec2ec1f7c03ab25a019e90b2440537e

BIN
inherit_graph_14.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

3
inherit_graph_2.map Normal file
View File

@@ -0,0 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
<area shape="rect" id="node1" href="$structentt_1_1entt__traits_3_01std_1_1uint64__t_01_4.html" title="Entity traits for a 64 bits entity identifier. " alt="" coords="5,5,124,47"/>
</map>

1
inherit_graph_2.md5 Normal file
View File

@@ -0,0 +1 @@
448f5f138376e0a71e7cc0def9a0dc84

BIN
inherit_graph_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

3
inherit_graph_3.map Normal file
View File

@@ -0,0 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
<area shape="rect" id="node1" href="$structentt_1_1entt__traits.html" title="Entity traits. " alt="" coords="5,5,124,47"/>
</map>

1
inherit_graph_3.md5 Normal file
View File

@@ -0,0 +1 @@
b73da3bdeb56ed8b3261b9f6de7dc7ed

BIN
inherit_graph_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

3
inherit_graph_4.map Normal file
View File

@@ -0,0 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
<area shape="rect" id="node1" href="$classentt_1_1Family.html" title="Dynamic identifier generator. " alt="" coords="5,5,128,32"/>
</map>

1
inherit_graph_4.md5 Normal file
View File

@@ -0,0 +1 @@
09580e735d0e3bb01d18b482b6830ac0

BIN
inherit_graph_4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

3
inherit_graph_5.map Normal file
View File

@@ -0,0 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
<area shape="rect" id="node1" href="$classentt_1_1PersistentView.html" title="Persistent view. " alt="" coords="5,5,160,47"/>
</map>

Some files were not shown because too many files have changed in this diff Show More