Cogs.Core
TerrainFunctions.h
1#pragma once
2
3#include "Bridge/Bridge.h"
4#include "Bridge/FieldFunctions.h"
5
6#include "../Source/RenderContext.h"
7#include "../Source/CogsTerrainBase.h"
8
9#include <glm/glm.hpp>
10
11namespace Cogs
12{
13 struct ClipmapParameters;
14 struct TerrainMetrics;
15}
16
17#if defined( _WIN32 )
18#ifdef COGSCORE_TERRAIN_BUILD
19#define COGSCORE_TERRAIN_API extern "C" __declspec(dllexport)
20#else
21#define COGSCORE_TERRAIN_API extern "C" __declspec(dllimport)
22#endif
23#else
24#define COGSCORE_TERRAIN_API
25#endif
26
27COGSCORE_TERRAIN_API void initializeTerrain();
28
29COGSCORE_TERRAIN_API void* createSharedContext(BridgeContext * ctx);
30COGSCORE_TERRAIN_API void initializeSharedContext(BridgeContext * ctx, void* sharedContext);
31COGSCORE_TERRAIN_API void releaseSharedContext(BridgeContext * ctx, void* sharedContext);
32
33COGSCORE_TERRAIN_API void setWorldOptions(BridgeContext * ctx, EntityId id, const Cogs::WorldOptions* options);
34COGSCORE_TERRAIN_API void setUpdateOptions(BridgeContext * ctx, EntityId id, const Cogs::UpdateOptions* options);
35COGSCORE_TERRAIN_API void setRenderOptions(BridgeContext * ctx, EntityId id, const Cogs::RenderOptions* options);
36COGSCORE_TERRAIN_API void setDebugOptions(BridgeContext * ctx, EntityId id, const Cogs::DebugOptions* options);
37COGSCORE_TERRAIN_API void setOceanOptions(BridgeContext * ctx, EntityId id, const Cogs::OceanOptions* options);
38
39COGSCORE_TERRAIN_API void setShadingOptions(BridgeContext * ctx, EntityId id, const Cogs::ShadingOptions* options);
40COGSCORE_TERRAIN_API void setRasterSources(BridgeContext * ctx, EntityId id,
41 Cogs::RasterSourceParameters* terrainParameters,
42 const size_t numTerrain,
43 Cogs::RasterSourceParameters* imageryParameters,
44 const size_t numImagery);
45
46COGSCORE_TERRAIN_API void setClipmapParameters(BridgeContext * ctx, EntityId id, const Cogs::ClipmapParameters* parameters);
47
48COGSCORE_TERRAIN_API void invalidateRasterSource(BridgeContext * ctx, EntityId id, const long rasterSourceId, const bool clearContents);
49
50COGSCORE_TERRAIN_API void queryTerrain(BridgeContext * ctx, EntityId id, Cogs::TerrainQuery* query, Cogs::TerrainQueryCallback callback);
51
52COGSCORE_TERRAIN_API float getNearestSample(BridgeContext * ctx, EntityId id);
53
54COGSCORE_TERRAIN_API void processQueries(BridgeContext * ctx, EntityId id);
55
56COGSCORE_TERRAIN_API void triggerTerrainUpdate(BridgeContext * ctx, EntityId id);
57
58COGSCORE_TERRAIN_API void setCustomParameters(BridgeContext * ctx, EntityId id, const unsigned char* data, int count);
59
60COGSCORE_TERRAIN_API void setImageryEnabled(BridgeContext * ctx, EntityId id, const bool* data, int count);
61
62COGSCORE_TERRAIN_API void getTerrainMetrics(BridgeContext * ctx, EntityId id, Cogs::TerrainMetrics* metrics);
63
64COGSCORE_TERRAIN_API void setMaxTilesPerFrame(BridgeContext * ctx, EntityId id, int count);
65
66COGSCORE_TERRAIN_API void disposeRasterSource(BridgeContext * ctx, int64_t id);
67
68COGSCORE_TERRAIN_API void invalidateRasterTile(BridgeContext * ctx, int64_t id, int level, int x, int y, int flags);
Contains all Cogs related functionality.
Definition: FieldSetter.h:23