diff --git a/radiant/winding.cpp b/radiant/winding.cpp index f35d53c6..4ae5259d 100644 --- a/radiant/winding.cpp +++ b/radiant/winding.cpp @@ -368,10 +368,10 @@ void Winding_Centroid( const Winding& winding, const Plane3& plane, Vector3& cen const indexremap_t remap = indexremap_for_projectionaxis( axis ); for ( std::size_t i = winding.numpoints - 1, j = 0; j < winding.numpoints; i = j, ++j ) { - const double ai = winding[i].vertex[remap.x] * winding[j].vertex[remap.y] - winding[j].vertex[remap.x] * winding[i].vertex[remap.y]; + const double ai = static_cast( winding[i].vertex[remap.x] ) * winding[j].vertex[remap.y] - static_cast( winding[j].vertex[remap.x] ) * winding[i].vertex[remap.y]; area2 += ai; - x_sum += ( winding[j].vertex[remap.x] + winding[i].vertex[remap.x] ) * ai; - y_sum += ( winding[j].vertex[remap.y] + winding[i].vertex[remap.y] ) * ai; + x_sum += ( static_cast( winding[j].vertex[remap.x] ) + winding[i].vertex[remap.x] ) * ai; + y_sum += ( static_cast( winding[j].vertex[remap.y] ) + winding[i].vertex[remap.y] ) * ai; } centroid[remap.x] = static_cast( x_sum / ( 3 * area2 ) );