Переглянути джерело

Fix `SoftBody3D` for double-precision builds

Mikael Hermansson 1 рік тому
батько
коміт
701ecd3a0d
1 змінених файлів з 4 додано та 1 видалено
  1. 4 1
      scene/3d/soft_body_3d.cpp

+ 4 - 1
scene/3d/soft_body_3d.cpp

@@ -82,7 +82,10 @@ void SoftBodyRenderingServerHandler::commit_changes() {
 }
 
 void SoftBodyRenderingServerHandler::set_vertex(int p_vertex_id, const Vector3 &p_vertex) {
-	memcpy(&write_buffer[p_vertex_id * stride + offset_vertices], &p_vertex, sizeof(Vector3));
+	float *vertex_buffer = reinterpret_cast<float *>(write_buffer + p_vertex_id * stride + offset_vertices);
+	*vertex_buffer++ = (float)p_vertex.x;
+	*vertex_buffer++ = (float)p_vertex.y;
+	*vertex_buffer++ = (float)p_vertex.z;
 }
 
 void SoftBodyRenderingServerHandler::set_normal(int p_vertex_id, const Vector3 &p_normal) {