1+ #include " Cesium3DTiles/Tile.h"
2+
13#include < Cesium3DTiles/Tileset.h>
24
35#include < doctest/doctest.h>
@@ -20,6 +22,11 @@ TEST_CASE("forEachTile") {
2022
2123 Tile& grandchild = child0.children .emplace_back ();
2224
25+ root.refine = Cesium3DTiles::Tile::Refine::ADD ;
26+ child0.refine = Cesium3DTiles::Tile::Refine::REPLACE ;
27+ child1.refine = std::nullopt ;
28+ grandchild.refine = Cesium3DTiles::Tile::Refine::ADD ;
29+
2330 glm::dmat4 rootTransform = glm::dmat4 (2.0 );
2431 glm::dmat4 child0Transform = glm::dmat4 (3.0 );
2532 glm::dmat4 child1Transform = glm::dmat4 (4.0 );
@@ -40,17 +47,27 @@ TEST_CASE("forEachTile") {
4047 rootTransform * child0Transform * grandchildTransform;
4148
4249 std::vector<glm::dmat4> transforms;
43- tileset.forEachTile (
44- [&transforms](
45- Tileset& /* tileset */ ,
46- Tile& /* tile */ ,
47- const glm::dmat4& transform) { transforms.push_back (transform); });
50+ std::vector<std::string> refines;
51+ tileset.forEachTile ([&transforms, &refines](
52+ Tileset& /* tileset */ ,
53+ Tile& /* tile */ ,
54+ const glm::dmat4& transform,
55+ const std::string& refine) {
56+ transforms.push_back (transform);
57+ refines.push_back (refine);
58+ });
4859
4960 REQUIRE (transforms.size () == 4 );
5061 CHECK (transforms[0 ] == expectedRootTransform);
5162 CHECK (transforms[1 ] == expectedChild0Transform);
5263 CHECK (transforms[2 ] == expectedGrandchildTransform);
5364 CHECK (transforms[3 ] == expectedChild1Transform);
65+
66+ REQUIRE (refines.size () == 4 );
67+ CHECK (refines[0 ] == Cesium3DTiles::Tile::Refine::ADD );
68+ CHECK (refines[1 ] == Cesium3DTiles::Tile::Refine::REPLACE );
69+ CHECK (refines[2 ] == Cesium3DTiles::Tile::Refine::ADD );
70+ CHECK (refines[3 ] == Cesium3DTiles::Tile::Refine::ADD );
5471}
5572
5673TEST_CASE (" forEachContent" ) {
@@ -66,6 +83,11 @@ TEST_CASE("forEachContent") {
6683
6784 Tile& grandchild = child0.children .emplace_back ();
6885
86+ root.refine = Cesium3DTiles::Tile::Refine::ADD ;
87+ child0.refine = Cesium3DTiles::Tile::Refine::REPLACE ;
88+ child1.refine = std::nullopt ;
89+ grandchild.refine = Cesium3DTiles::Tile::Refine::ADD ;
90+
6991 const Content& rootContent = root.content .emplace ();
7092 const Content& child1Content = child1.content .emplace ();
7193
@@ -94,13 +116,16 @@ TEST_CASE("forEachContent") {
94116 rootTransform * child0Transform * grandchildTransform;
95117
96118 std::vector<glm::dmat4> transforms;
119+ std::vector<std::string> refines;
97120 std::vector<Cesium3DTiles::Content*> contents;
98- tileset.forEachContent ([&transforms, &contents](
121+ tileset.forEachContent ([&transforms, &refines, & contents](
99122 Tileset& /* tileset */ ,
100123 Tile& /* tile */ ,
101124 Content& content,
102- const glm::dmat4& transform) {
125+ const glm::dmat4& transform,
126+ const std::string& refine) {
103127 transforms.push_back (transform);
128+ refines.push_back (refine);
104129 contents.push_back (&content);
105130 });
106131
@@ -110,6 +135,12 @@ TEST_CASE("forEachContent") {
110135 CHECK (transforms[2 ] == expectedGrandchildTransform);
111136 CHECK (transforms[3 ] == expectedChild1Transform);
112137
138+ REQUIRE (refines.size () == 4 );
139+ CHECK (refines[0 ] == Cesium3DTiles::Tile::Refine::ADD );
140+ CHECK (refines[1 ] == Cesium3DTiles::Tile::Refine::ADD );
141+ CHECK (refines[2 ] == Cesium3DTiles::Tile::Refine::ADD );
142+ CHECK (refines[3 ] == Cesium3DTiles::Tile::Refine::ADD );
143+
113144 REQUIRE (contents.size () == 4 );
114145 CHECK (contents[0 ] == &rootContent);
115146 CHECK (contents[1 ] == &grandchildContent0);
0 commit comments