Cogs.Core
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
9namespace {
10 constexpr const char* OGC3DTilesEntityDefinition =
11 R"({
12 "name": "OGC3DTiles",
13 "components" : [ "OGC3DTilesComponent", "TransformComponent", "SceneComponent" ],
14 "description": "OGC 3DTiles entity"
15 })";
16}
17
18using namespace Cogs::Core;
19
21 OGC3DTilesComponent::registerType();
22 return true;
23}
24
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}
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Definition: Context.h:83
class EntityStore * store
Entity store.
Definition: Context.h:231
std::unique_ptr< class ResourceStore > resourceStore
ResourceStore service instance.
Definition: Context.h:210
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
bool initialize(Context *context) override
Initialize extension for the given context.
bool initializeStatic() override
Initialize extension statically.
@ PreRendering
Run before rendering is performed.
Definition: Engine.h:74