Cogs.Core
Extensions
OGC3DTiles
Source
OGC3DTilesExtension.cpp
1
#include "OGC3DTilesExtension.h"
2
3
#include "ResourceManifest.h"
4
#include "Components/OGC3DTilesComponent.h"
5
#include "Systems/OGC3DTilesSystem.h"
6
#include "Serialization/EntityReader.h"
7
#include "Resources/ResourceStore.h"
8
9
namespace
{
10
constexpr
const
char
* OGC3DTilesEntityDefinition =
11
R
"({
12
"name": "OGC3DTiles",
13
"components" : [ "OGC3DTilesComponent", "TransformComponent", "SceneComponent" ],
14
"description": "OGC 3DTiles entity"
15
})";
16
}
17
18
using namespace
Cogs::Core
;
19
20
bool
OGC3DTilesExtension::initializeStatic
() {
21
OGC3DTilesComponent::registerType();
22
return
true
;
23
}
24
25
bool
OGC3DTilesExtension::initialize
(
Context
* context) {
26
const
std::string resourceArchive =
"Cogs.Core.Extensions.OGC3DTiles.zip"
;
27
28
#if EMSCRIPTEN
29
bool
resourceArchiveAdded =
false
;
30
auto
manifest = getResourceManifest(context);
31
for
(
auto
& item : manifest) {
32
if
(item.find(resourceArchive) != std::string::npos) {
33
context->
resourceStore
->addResourceArchive(item);
34
resourceArchiveAdded =
true
;
35
break
;
36
}
37
}
38
if
(!resourceArchiveAdded) {
39
context->
resourceStore
->addResourceArchive(resourceArchive);
40
}
41
#else
42
context->
resourceStore
->addSearchPath(
"../Extensions/OGC3DTiles/Data/"
);
43
context->
resourceStore
->addResourceArchive(resourceArchive);
44
#endif
45
46
readEntityDefinition(OGC3DTilesEntityDefinition, context->
store
);
47
ExtensionRegistry::registerExtensionSystem<OGC3DTilesSystem>(context,
SystemPriority::PreRendering
, 16);
48
return
true
;
49
}
Cogs::Core::Context
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Definition:
Context.h:83
Cogs::Core::Context::store
class EntityStore * store
Entity store.
Definition:
Context.h:231
Cogs::Core::Context::resourceStore
std::unique_ptr< class ResourceStore > resourceStore
ResourceStore service instance.
Definition:
Context.h:210
Cogs::Core
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
Definition:
ComponentFunctions.h:10
Cogs::Core::OGC3DTilesExtension::initialize
bool initialize(Context *context) override
Initialize extension for the given context.
Definition:
OGC3DTilesExtension.cpp:25
Cogs::Core::OGC3DTilesExtension::initializeStatic
bool initializeStatic() override
Initialize extension statically.
Definition:
OGC3DTilesExtension.cpp:20
Cogs::Core::SystemPriority::PreRendering
@ PreRendering
Run before rendering is performed.
Definition:
Engine.h:74
Generated by
1.9.6