NAP
entitycreationparameters.h
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4 
5 #pragma once
6 
7 // Local Includes
8 #include "component.h"
9 #include "componentresourcepath.h"
10 
11 // External Includes
12 #include <unordered_map>
13 
14 namespace nap
15 {
16  // Forward Declares
17  namespace rtti
18  {
19  class Object;
20  }
21  class Component;
22  class ComponentInstance;
23  class Entity;
24  class EntityInstance;
25  class EntityObjectGraphItem;
26  template<typename ITEM> class ObjectGraph;
28 
33  {
34  public:
35  ClonedComponentResource() = default;
36  ClonedComponentResource(const ComponentResourcePath& path, std::unique_ptr<Component> resource);
37 
39  std::unique_ptr<Component> mResource;
40  };
41  using ClonedComponentResourceList = std::vector<ClonedComponentResource>;
42 
47  {
48  using EntityInstanceByIDMap = std::unordered_map<std::string, std::unique_ptr<EntityInstance>>;
49  using InstanceByIDMap = std::unordered_map<std::string, rtti::Object*>;
50  using EntityInstanceMap = std::unordered_map<Entity*, std::vector<EntityInstance*>>;
51  using ComponentInstanceMap = std::unordered_map<Component*, std::vector<ComponentInstance*>>;
52 
53  EntityCreationParameters(const EntityObjectGraph& objectGraph);
55 
56  const EntityObjectGraph* mObjectGraph = nullptr;
63  };
64 }
nap::EntityCreationParameters::mCurrentEntityClonedComponents
ClonedComponentResourceList * mCurrentEntityClonedComponents
List of cloned components for the current root entity being created.
Definition: entitycreationparameters.h:61
nap::ClonedComponentResource::mResource
std::unique_ptr< Component > mResource
The cloned component resource.
Definition: entitycreationparameters.h:39
nap::ClonedComponentResource
Definition: entitycreationparameters.h:32
nap::EntityCreationParameters::ComponentInstanceMap
std::unordered_map< Component *, std::vector< ComponentInstance * > > ComponentInstanceMap
Definition: entitycreationparameters.h:51
nap::ClonedComponentResource::mPath
ComponentResourcePath mPath
The path (from the root entity) to the original component that was cloned.
Definition: entitycreationparameters.h:38
nap::EntityCreationParameters::mComponentInstanceMap
ComponentInstanceMap mComponentInstanceMap
Map from Component resource to a list of instantiated ComponentInstances.
Definition: entitycreationparameters.h:60
nap::ObjectGraph
Definition: objectgraph.h:20
nap::ClonedComponentResourceList
std::vector< ClonedComponentResource > ClonedComponentResourceList
Definition: entitycreationparameters.h:41
nap::EntityCreationParameters::EntityInstanceByIDMap
std::unordered_map< std::string, std::unique_ptr< EntityInstance > > EntityInstanceByIDMap
Definition: entitycreationparameters.h:48
nap::EntityCreationParameters::~EntityCreationParameters
~EntityCreationParameters()
nap::EntityCreationParameters
Definition: entitycreationparameters.h:46
nap::EntityCreationParameters::EntityInstanceMap
std::unordered_map< Entity *, std::vector< EntityInstance * > > EntityInstanceMap
Definition: entitycreationparameters.h:50
nap::EntityCreationParameters::InstanceByIDMap
std::unordered_map< std::string, rtti::Object * > InstanceByIDMap
Definition: entitycreationparameters.h:49
nap::EntityCreationParameters::mAllInstancesByID
InstanceByIDMap mAllInstancesByID
Map of both Entity and Component instances and their generated instance ID.
Definition: entitycreationparameters.h:58
nap::ClonedComponentResource::ClonedComponentResource
ClonedComponentResource()=default
nap::EntityCreationParameters::mCurrentEntityPath
ComponentResourcePath mCurrentEntityPath
Path in current entity being created.
Definition: entitycreationparameters.h:62
nap
Definition: templateapp.h:17
nap::EntityCreationParameters::mEntityInstanceMap
EntityInstanceMap mEntityInstanceMap
Map from Entity resource to a list of instantiated EntityInstances.
Definition: entitycreationparameters.h:59
nap::EntityCreationParameters::EntityCreationParameters
EntityCreationParameters(const EntityObjectGraph &objectGraph)
nap::EntityCreationParameters::mObjectGraph
const EntityObjectGraph * mObjectGraph
Object graph of a single root entity and its entire subgraph.
Definition: entitycreationparameters.h:56
nap::ComponentResourcePath
Definition: componentresourcepath.h:18
nap::EntityCreationParameters::mEntityInstancesByID
EntityInstanceByIDMap mEntityInstancesByID
Map containing all created entity instances and their generated instance ID.
Definition: entitycreationparameters.h:57