Explicitly cast to types to suppress warnings in navmesh tool

This commit is contained in:
Kawe Mazidjatari 2023-04-03 14:49:18 +02:00
parent e9cbe34a95
commit 5551909ac7
2 changed files with 17 additions and 15 deletions

View File

@ -109,7 +109,7 @@ void buildLinkTable(dtNavMesh* mesh, LinkTableData& data)
for (int j = 0; j < pcount; j++) for (int j = 0; j < pcount; j++)
{ {
dtPoly& poly = tile->polys[j]; dtPoly& poly = tile->polys[j];
poly.disjointSetId = -1; poly.disjointSetId = (unsigned short)-1;
} }
} }
//first pass //first pass
@ -136,12 +136,12 @@ void buildLinkTable(dtNavMesh* mesh, LinkTableData& data)
} }
if (nlabels.empty()) if (nlabels.empty())
{ {
poly.disjointSetId = data.insert_new(); poly.disjointSetId = (unsigned short)data.insert_new();
} }
else else
{ {
auto l = *nlabels.begin(); auto l = *nlabels.begin();
poly.disjointSetId = l; poly.disjointSetId = (unsigned short)l;
for (auto nl : nlabels) for (auto nl : nlabels)
data.set_union(l, nl); data.set_union(l, nl);
} }
@ -158,7 +158,7 @@ void buildLinkTable(dtNavMesh* mesh, LinkTableData& data)
{ {
dtPoly& poly = tile->polys[j]; dtPoly& poly = tile->polys[j];
int id = data.find(poly.disjointSetId); int id = data.find(poly.disjointSetId);
poly.disjointSetId = id; poly.disjointSetId = (unsigned short)id;
} }
} }
} }

View File

@ -58,16 +58,18 @@ property uchar blue
element face %zu element face %zu
property list uchar int vertex_index property list uchar int vertex_index
end_header end_header
)",pts.size()/3,tris.size()/3); )", size_t(pts.size()/3), size_t(tris.size()/3));
for (size_t i = 0; i < pts.size(); i+=3) for (size_t i = 0; i < size_t(pts.size()); i+=3)
{ {
auto c = colors[i / 3]; auto c = colors[i / 3];
fprintf(f, "%g %g %g %d %d %d\n", pts[i], pts[i + 1], pts[i + 2], c & 0xff, (c >> 8) & 0xff, (c >> 16) & 0xff); fprintf(f, "%g %g %g %d %d %d\n",
pts[i], pts[i+1], pts[i+2], c & 0xff, (c >> 8) & 0xff, (c >> 16) & 0xff);
} }
for (size_t i = 0; i < tris.size(); i += 3) for (size_t i = 0; i < size_t(tris.size()); i += 3)
{ {
fprintf(f, "3 %d %d %d\n", tris[i], tris[i + 1], tris[i + 2]); fprintf(f, "3 %d %d %d\n",
tris[int(i)], tris[int(i+1)], tris[int(i+2)]);
} }
fclose(f); fclose(f);
@ -78,8 +80,8 @@ float area2(const float* a, const float* b, const float* c)
} }
void convex_hull(std::vector<float>& pts, std::vector<int>& hull) void convex_hull(std::vector<float>& pts, std::vector<int>& hull)
{ {
int pt_count = pts.size() / 3; size_t pt_count = pts.size() / 3;
int cur_pt = 0; size_t cur_pt = 0;
float min_x = pts[0]; float min_x = pts[0];
for(size_t i=0;i<pt_count;i++) for(size_t i=0;i<pt_count;i++)
if (pts[i * 3] < min_x) if (pts[i * 3] < min_x)
@ -89,13 +91,13 @@ void convex_hull(std::vector<float>& pts, std::vector<int>& hull)
} }
int point_on_hull = cur_pt; size_t point_on_hull = cur_pt;
int endpoint = 0; size_t endpoint = 0;
do do
{ {
hull.push_back(point_on_hull); hull.push_back(int(point_on_hull));
endpoint = (point_on_hull + 1) % pt_count; endpoint = (point_on_hull + 1) % pt_count;
for (int i = 0; i < pt_count; i++) for (size_t i = 0; i < pt_count; i++)
{ {
if (area2(&pts[point_on_hull*3], &pts[i*3], &pts[endpoint*3]) > 0) //reverse this comparison for flipped hull direction if (area2(&pts[point_on_hull*3], &pts[i*3], &pts[endpoint*3]) > 0) //reverse this comparison for flipped hull direction
endpoint = i; endpoint = i;