Browse Source

Merge pull request #47345 from nekomatata/heightmap-draw-triangles

Draw triangles for HeightMapShape debug collision
Rémi Verschelde 4 năm trước cách đây
mục cha
commit
c36807994d

+ 6 - 1
scene/resources/height_map_shape_3d.cpp

@@ -44,7 +44,7 @@ Vector<Vector3> HeightMapShape3D::get_debug_mesh_lines() const {
 		const float *r = map_data.ptr();
 		const float *r = map_data.ptr();
 
 
 		// reserve some memory for our points..
 		// reserve some memory for our points..
-		points.resize(((map_width - 1) * map_depth * 2) + (map_width * (map_depth - 1) * 2));
+		points.resize(((map_width - 1) * map_depth * 2) + (map_width * (map_depth - 1) * 2) + ((map_width - 1) * (map_depth - 1) * 2));
 
 
 		// now set our points
 		// now set our points
 		int r_offset = 0;
 		int r_offset = 0;
@@ -65,6 +65,11 @@ Vector<Vector3> HeightMapShape3D::get_debug_mesh_lines() const {
 					points.write[w_offset++] = Vector3(height.x, r[r_offset + map_width - 1], height.z + 1.0);
 					points.write[w_offset++] = Vector3(height.x, r[r_offset + map_width - 1], height.z + 1.0);
 				}
 				}
 
 
+				if ((w != map_width - 1) && (d != map_depth - 1)) {
+					points.write[w_offset++] = Vector3(height.x + 1.0, r[r_offset], height.z);
+					points.write[w_offset++] = Vector3(height.x, r[r_offset + map_width - 1], height.z + 1.0);
+				}
+
 				height.x += 1.0;
 				height.x += 1.0;
 			}
 			}