summaryrefslogtreecommitdiff
path: root/src/mbgl/layout
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-09-13 13:50:27 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-09-16 09:00:54 -0700
commita8dd1bbbb8f9053923179fd45b2dfcbb86e3f474 (patch)
treefac3c39d91b7060ff1659e55df64cd7f8a8143df /src/mbgl/layout
parent1f375581c3a31adea9281a7494a73e5c8f1c9a17 (diff)
downloadqtlocation-mapboxgl-a8dd1bbbb8f9053923179fd45b2dfcbb86e3f474.tar.gz
[core] Move SymbolInstance and SymbolFeature into their own files
Diffstat (limited to 'src/mbgl/layout')
-rw-r--r--src/mbgl/layout/merge_lines.cpp1
-rw-r--r--src/mbgl/layout/merge_lines.hpp6
-rw-r--r--src/mbgl/layout/symbol_feature.hpp17
-rw-r--r--src/mbgl/layout/symbol_instance.cpp34
-rw-r--r--src/mbgl/layout/symbol_instance.hpp34
-rw-r--r--src/mbgl/layout/symbol_layout.cpp27
-rw-r--r--src/mbgl/layout/symbol_layout.hpp34
7 files changed, 94 insertions, 59 deletions
diff --git a/src/mbgl/layout/merge_lines.cpp b/src/mbgl/layout/merge_lines.cpp
index 1e33a655e7..ddae9c2c8d 100644
--- a/src/mbgl/layout/merge_lines.cpp
+++ b/src/mbgl/layout/merge_lines.cpp
@@ -1,4 +1,5 @@
#include <mbgl/layout/merge_lines.hpp>
+#include <mbgl/layout/symbol_feature.hpp>
#include <boost/functional/hash.hpp>
diff --git a/src/mbgl/layout/merge_lines.hpp b/src/mbgl/layout/merge_lines.hpp
index bb4c01f6a2..4cce39a652 100644
--- a/src/mbgl/layout/merge_lines.hpp
+++ b/src/mbgl/layout/merge_lines.hpp
@@ -1,11 +1,15 @@
#pragma once
+#include <mbgl/tile/geometry_tile_data.hpp>
+
#include <unordered_map>
#include <string>
#include <vector>
-#include <mbgl/layout/symbol_layout.hpp>
namespace mbgl {
+
+class SymbolFeature;
+
namespace util {
unsigned int mergeFromRight(std::vector<SymbolFeature> &features,
diff --git a/src/mbgl/layout/symbol_feature.hpp b/src/mbgl/layout/symbol_feature.hpp
new file mode 100644
index 0000000000..3b4eb78d86
--- /dev/null
+++ b/src/mbgl/layout/symbol_feature.hpp
@@ -0,0 +1,17 @@
+#pragma once
+
+#include <mbgl/tile/geometry_tile_data.hpp>
+
+#include <string>
+
+namespace mbgl {
+
+class SymbolFeature {
+public:
+ GeometryCollection geometry;
+ std::u32string label;
+ std::string sprite;
+ std::size_t index;
+};
+
+} // namespace mbgl
diff --git a/src/mbgl/layout/symbol_instance.cpp b/src/mbgl/layout/symbol_instance.cpp
new file mode 100644
index 0000000000..64b913200e
--- /dev/null
+++ b/src/mbgl/layout/symbol_instance.cpp
@@ -0,0 +1,34 @@
+#include <mbgl/layout/symbol_instance.hpp>
+#include <mbgl/style/layers/symbol_layer_properties.hpp>
+
+namespace mbgl {
+
+using namespace style;
+
+SymbolInstance::SymbolInstance(Anchor& anchor, const GeometryCoordinates& line,
+ const Shaping& shapedText, const PositionedIcon& shapedIcon,
+ const SymbolLayoutProperties& layout, const bool addToBuffers, const uint32_t index_,
+ const float textBoxScale, const float textPadding, const SymbolPlacementType textPlacement,
+ const float iconBoxScale, const float iconPadding, const SymbolPlacementType iconPlacement,
+ const GlyphPositions& face, const IndexedSubfeature& indexedFeature) :
+ point(anchor.point),
+ index(index_),
+ hasText(shapedText),
+ hasIcon(shapedIcon),
+
+ // Create the quads used for rendering the glyphs.
+ glyphQuads(addToBuffers && shapedText ?
+ getGlyphQuads(anchor, shapedText, textBoxScale, line, layout, textPlacement, face) :
+ SymbolQuads()),
+
+ // Create the quad used for rendering the icon.
+ iconQuads(addToBuffers && shapedIcon ?
+ getIconQuads(anchor, shapedIcon, line, layout, iconPlacement, shapedText) :
+ SymbolQuads()),
+
+ // Create the collision features that will be used to check whether this symbol instance can be placed
+ textCollisionFeature(line, anchor, shapedText, textBoxScale, textPadding, textPlacement, indexedFeature),
+ iconCollisionFeature(line, anchor, shapedIcon, iconBoxScale, iconPadding, iconPlacement, indexedFeature)
+ {}
+
+} // namespace mbgl
diff --git a/src/mbgl/layout/symbol_instance.hpp b/src/mbgl/layout/symbol_instance.hpp
new file mode 100644
index 0000000000..3087bf09f9
--- /dev/null
+++ b/src/mbgl/layout/symbol_instance.hpp
@@ -0,0 +1,34 @@
+#pragma once
+
+#include <mbgl/text/quads.hpp>
+#include <mbgl/text/collision_feature.hpp>
+
+namespace mbgl {
+
+struct Anchor;
+class IndexedSubfeature;
+
+namespace style {
+class SymbolLayoutProperties;
+} // namespace style
+
+class SymbolInstance {
+public:
+ explicit SymbolInstance(Anchor& anchor, const GeometryCoordinates& line,
+ const Shaping& shapedText, const PositionedIcon& shapedIcon,
+ const style::SymbolLayoutProperties&, const bool inside, const uint32_t index,
+ const float textBoxScale, const float textPadding, style::SymbolPlacementType textPlacement,
+ const float iconBoxScale, const float iconPadding, style::SymbolPlacementType iconPlacement,
+ const GlyphPositions& face, const IndexedSubfeature& indexedfeature);
+
+ Point<float> point;
+ uint32_t index;
+ bool hasText;
+ bool hasIcon;
+ SymbolQuads glyphQuads;
+ SymbolQuads iconQuads;
+ CollisionFeature textCollisionFeature;
+ CollisionFeature iconCollisionFeature;
+};
+
+} // namespace mbgl
diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp
index 2a85ead32b..5161d3c34b 100644
--- a/src/mbgl/layout/symbol_layout.cpp
+++ b/src/mbgl/layout/symbol_layout.cpp
@@ -23,33 +23,6 @@ namespace mbgl {
using namespace style;
-SymbolInstance::SymbolInstance(Anchor& anchor, const GeometryCoordinates& line,
- const Shaping& shapedText, const PositionedIcon& shapedIcon,
- const SymbolLayoutProperties& layout, const bool addToBuffers, const uint32_t index_,
- const float textBoxScale, const float textPadding, const SymbolPlacementType textPlacement,
- const float iconBoxScale, const float iconPadding, const SymbolPlacementType iconPlacement,
- const GlyphPositions& face, const IndexedSubfeature& indexedFeature) :
- point(anchor.point),
- index(index_),
- hasText(shapedText),
- hasIcon(shapedIcon),
-
- // Create the quads used for rendering the glyphs.
- glyphQuads(addToBuffers && shapedText ?
- getGlyphQuads(anchor, shapedText, textBoxScale, line, layout, textPlacement, face) :
- SymbolQuads()),
-
- // Create the quad used for rendering the icon.
- iconQuads(addToBuffers && shapedIcon ?
- getIconQuads(anchor, shapedIcon, line, layout, iconPlacement, shapedText) :
- SymbolQuads()),
-
- // Create the collision features that will be used to check whether this symbol instance can be placed
- textCollisionFeature(line, anchor, shapedText, textBoxScale, textPadding, textPlacement, indexedFeature),
- iconCollisionFeature(line, anchor, shapedIcon, iconBoxScale, iconPadding, iconPlacement, indexedFeature)
- {}
-
-
SymbolLayout::SymbolLayout(std::string bucketName_,
std::string sourceLayerName_,
uint32_t overscaling_,
diff --git a/src/mbgl/layout/symbol_layout.hpp b/src/mbgl/layout/symbol_layout.hpp
index 83a3735061..e365e7b443 100644
--- a/src/mbgl/layout/symbol_layout.hpp
+++ b/src/mbgl/layout/symbol_layout.hpp
@@ -1,10 +1,9 @@
#pragma once
-#include <mbgl/tile/geometry_tile_data.hpp>
#include <mbgl/map/mode.hpp>
-#include <mbgl/text/collision_feature.hpp>
-#include <mbgl/text/quads.hpp>
#include <mbgl/style/layers/symbol_layer_properties.hpp>
+#include <mbgl/layout/symbol_feature.hpp>
+#include <mbgl/layout/symbol_instance.hpp>
#include <memory>
#include <map>
@@ -13,47 +12,20 @@
namespace mbgl {
+class GeometryTileLayer;
class CollisionTile;
class SpriteAtlas;
class SpriteStore;
class GlyphAtlas;
class GlyphStore;
-class IndexedSubfeature;
class SymbolBucket;
namespace style {
class Filter;
} // namespace style
-class SymbolFeature {
-public:
- GeometryCollection geometry;
- std::u32string label;
- std::string sprite;
- std::size_t index;
-};
-
struct Anchor;
-class SymbolInstance {
-public:
- explicit SymbolInstance(Anchor& anchor, const GeometryCoordinates& line,
- const Shaping& shapedText, const PositionedIcon& shapedIcon,
- const style::SymbolLayoutProperties&, const bool inside, const uint32_t index,
- const float textBoxScale, const float textPadding, style::SymbolPlacementType textPlacement,
- const float iconBoxScale, const float iconPadding, style::SymbolPlacementType iconPlacement,
- const GlyphPositions& face, const IndexedSubfeature& indexedfeature);
-
- Point<float> point;
- uint32_t index;
- bool hasText;
- bool hasIcon;
- SymbolQuads glyphQuads;
- SymbolQuads iconQuads;
- CollisionFeature textCollisionFeature;
- CollisionFeature iconCollisionFeature;
-};
-
class SymbolLayout {
public:
SymbolLayout(std::string bucketName_,