Skip to content

Commit 528a6ed

Browse files
committed
nitpickコメント対応
1 parent 4db4a48 commit 528a6ed

11 files changed

Lines changed: 91 additions & 75 deletions

File tree

include/plateau/polygon_mesh/mesh_extract_options.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,12 @@ namespace plateau::polygonMesh {
119119
*/
120120
int epsg_code;
121121

122-
/**
123-
* 最高LODのみを抽出するかどうかを指定します。
124-
* true の場合、最高LODのポリゴンのみを抽出し、他のLODは無視します。
125-
* false の場合、min_lod から max_lod までの範囲のポリゴンを抽出します。
126-
*/
122+
/**
123+
* 最高LODのみを抽出するかどうかを指定します。
124+
* true の場合、min_lod..max_lod の範囲のうち最大のLOD(= max_lod)に相当するポリゴンのみを抽出し、
125+
* 他のLODは無視します。false の場合、min_lod から max_lod までの範囲のポリゴンを抽出します。
126+
* (もし「データセット内で検出された実在の最大LOD」のみを対象にする仕様であれば、その旨に書き換えてください)
127+
*/
127128
bool highest_lod_only;
128129
};
129130
}

include/plateau/polygon_mesh/mesh_extractor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,6 @@ namespace plateau::polygonMesh {
6262
static bool shouldContainPrimaryMesh(unsigned lod, const citygml::CityObject& primary_obj);
6363
static bool isTypeToSkip(citygml::CityObject::CityObjectsType type);
6464

65-
static std::vector<geometry::Extent> extendExtents(const std::vector<geometry::Extent>& src_extents, float multiplier);
65+
static std::vector<plateau::geometry::Extent> extendExtents(const std::vector<plateau::geometry::Extent>& src_extents, float multiplier);
6666
};
6767
}

include/plateau/polygon_mesh/model.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ namespace plateau::polygonMesh {
4040

4141
Node& getRootNodeAt(size_t index);
4242
const Node& getRootNodeAt(size_t index) const;
43-
const int getRootNodeIndexByName(const std::string name) const;
43+
const int getRootNodeIndexByName(const std::string& name) const;
4444

4545
/// 各ノードのペアレント、ルートを設定します。
4646
void assignNodeHierarchy();

include/plateau/polygon_mesh/node.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ namespace plateau::polygonMesh {
5454
Node& getChildAt(unsigned int index);
5555
const Node& getChildAt(unsigned int index) const;
5656

57-
const int getChildIndexByName(const std::string name) const;
57+
int getChildIndexByName(const std::string& name) const; // 見つからない場合は -1 を返す
5858

5959
/// Parent Node設定
6060
void setParentNode(Node* node);

src/c_wrapper/tile_extractor_c.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#include "libplateau_c.h"
22
#include "city_model_c.h"
33
#include <plateau/polygon_mesh/tile_extractor.h>
4-
#include <plateau/geometry/geo_coordinate.h>
54

65
using namespace libplateau;
76
using namespace plateau::polygonMesh;
@@ -27,11 +26,15 @@ extern "C"{
2726
}
2827

2928
CityModelVector city_models = std::make_shared<std::vector<std::weak_ptr<const citygml::CityModel>>>();
29+
city_models->reserve(static_cast<size_t>(city_model_size));
3030
for (int i = 0; i < city_model_size; ++i) {
3131
if (!city_model_handles[i]) {
3232
continue; // nullptr の場合はスキップ
3333
}
34-
const auto & ptr = city_model_handles[i]->getCityModelPtr(); // ここで city_model_handles[i] のポインタを取得
34+
auto ptr = city_model_handles[i]->getCityModelPtr(); // 共有所有権を値で受ける
35+
if (!ptr) {
36+
continue; // 空の shared_ptr はスキップ
37+
}
3538
std::weak_ptr<const citygml::CityModel> weak = ptr;
3639
city_models->push_back(weak);
3740
}

src/polygon_mesh/area_mesh_factory.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include <plateau/polygon_mesh/primary_city_object_types.h>
44
#include <plateau/polygon_mesh/mesh_factory.h>
55
#include <plateau/polygon_mesh/polygon_mesh_utils.h>
6+
#include <plateau/polygon_mesh/tile_extractor.h>
67

78
namespace {
89
using namespace plateau;
@@ -118,13 +119,13 @@ namespace plateau::polygonMesh {
118119
}
119120
}
120121

121-
if (options.highest_lod_only) {
122-
// highest_lod_only オプションが有効な場合、最大LODのみを対象とします。
123-
if (lod != max_lod_in_obj) {
124-
// 最大LOD以外はスキップします。
125-
continue;
126-
}
127-
}
122+
if (options.highest_lod_only) {
123+
// highest_lod_only オプションが有効な場合、最大LODのみを対象とします。
124+
if (lod != max_lod_in_obj) {
125+
// 最大LOD以外はスキップします。
126+
continue;
127+
}
128+
}
128129

129130
// グループに追加します。
130131
unsigned group_id = grid_id * (PolygonMeshUtils::max_lod_in_specification_ + 1) + max_lod_in_obj;

src/polygon_mesh/area_mesh_factory.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
#include "citygml/citymodel.h"
44
#include "plateau/geometry/geo_reference.h"
5-
#include <plateau/polygon_mesh/tile_extractor.h>
65
#include <plateau/polygon_mesh/mesh.h>
76
#include <plateau/polygon_mesh/mesh_extract_options.h>
87

98
namespace plateau::polygonMesh {
10-
/// グループIDと、その結合後Meshのmapです。
9+
using CityModelVector = std::shared_ptr<std::vector<std::weak_ptr<const citygml::CityModel>>>;
10+
11+
// グループIDとグリッドIDのペアをキーとし、その結合後Meshのmapです。
12+
// キー: std::pair<group_id, grid_id>
1113
using GridMergeResult = std::map<std::pair<unsigned, unsigned>, std::unique_ptr<Mesh>>;
1214

1315
/**

src/polygon_mesh/mesh_extractor.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ namespace {
6060
auto result = AreaMeshFactory::gridMerge(city_model, options, lod, geo_reference, extents);
6161
// グループごとのノードを追加します。
6262
for (auto& [group_grid_id, mesh] : result) {
63-
auto node = Node("group" + std::to_string(group_grid_id.first), std::move(mesh));
63+
const auto & [group_id, grid_id] = group_grid_id;
64+
auto node = Node("group" + std::to_string(group_id) + "_grid" + std::to_string(grid_id), std::move(mesh));
6465
lod_node.addChildNode(std::move(node));
6566
}
6667
}
@@ -217,9 +218,9 @@ namespace plateau::polygonMesh {
217218
}
218219

219220
/// extentsの幅と奥行きの長さを multiplier 倍にします。
220-
std::vector<geometry::Extent> MeshExtractor::extendExtents(const std::vector<geometry::Extent>& src_extents, float multiplier) {
221-
auto result = std::vector<geometry::Extent>();
222-
221+
std::vector<plateau::geometry::Extent> MeshExtractor::extendExtents(const std::vector<plateau::geometry::Extent>& src_extents, float multiplier) {
222+
auto result = std::vector<plateau::geometry::Extent>();
223+
result.reserve(src_extents.size());
223224
for (const auto& src_extent : src_extents) {
224225
const auto center = src_extent.centerPoint();
225226
const auto prev_min = src_extent.min;

src/polygon_mesh/model.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@ namespace plateau::polygonMesh {
3434
return root_nodes_.at(index);
3535
}
3636

37-
const int Model::getRootNodeIndexByName(const std::string name) const {
38-
int num_children = getRootNodeCount();
39-
for (int i = 0; i < num_children; ++i) {
40-
auto& child_node = getRootNodeAt(i);
37+
const int Model::getRootNodeIndexByName(const std::string & name) const {
38+
size_t num_children = getRootNodeCount();
39+
for (size_t i = 0; i < num_children; ++i) {
40+
const auto & child_node = getRootNodeAt(i);
4141
if (child_node.getName() == name) {
42-
return i;
42+
return static_cast<int>(i);
4343
}
4444
}
4545
return -1;

src/polygon_mesh/node.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,12 @@ namespace plateau::polygonMesh {
121121
return child_nodes_.at(index);
122122
}
123123

124-
const int Node::getChildIndexByName(const std::string name) const {
125-
int num_children = getChildCount();
126-
for (int i = 0; i < num_children; ++i) {
127-
auto& child_node = getChildAt(i);
124+
int Node::getChildIndexByName(const std::string & name) const {
125+
const size_t num_children = getChildCount();
126+
for (size_t i = 0; i < num_children; ++i) {
127+
const auto & child_node = getChildAt(static_cast<unsigned int>(i));
128128
if (child_node.getName() == name) {
129-
return i;
129+
return static_cast<int>(i);
130130
}
131131
}
132132
return -1;

0 commit comments

Comments
 (0)