Optimize ViewportRubberBandSelector

#3151
This commit is contained in:
Wojtek Figat
2025-03-11 13:05:15 +01:00
parent 273b366f44
commit a54299a560
7 changed files with 208 additions and 122 deletions

View File

@@ -634,13 +634,15 @@ namespace FlaxEngine
return result;
}
#if FLAX_EDITOR
/// <summary>
/// Gets the collision proxy points for the mesh.
/// </summary>
/// <returns>The triangle points in the collision proxy.</returns>
internal Float3[] GetCollisionProxyPoints()
internal Vector3[] GetCollisionProxyPoints()
{
return Internal_GetCollisionProxyPoints(__unmanagedPtr, out _);
}
#endif
}
}

View File

@@ -847,13 +847,16 @@ MArray* Mesh::DownloadBuffer(bool forceGpu, MTypeObject* resultType, int32 typeI
return result;
}
Array<Float3> Mesh::GetCollisionProxyPoints() const
#if USE_EDITOR
Array<Vector3> Mesh::GetCollisionProxyPoints() const
{
PROFILE_CPU();
Array<Vector3> result;
#if USE_PRECISE_MESH_INTERSECTS
for (int i = 0; i < _collisionProxy.Triangles.Count(); ++i)
for (int32 i = 0; i < _collisionProxy.Triangles.Count(); i++)
{
auto triangle = _collisionProxy.Triangles[i];
auto triangle = _collisionProxy.Triangles.Get()[i];
result.Add(triangle.V0);
result.Add(triangle.V1);
result.Add(triangle.V2);
@@ -863,3 +866,5 @@ Array<Float3> Mesh::GetCollisionProxyPoints() const
}
#endif
#endif

View File

@@ -320,6 +320,8 @@ private:
API_FUNCTION(NoProxy) bool UpdateTrianglesUInt(int32 triangleCount, const MArray* trianglesObj);
API_FUNCTION(NoProxy) bool UpdateTrianglesUShort(int32 triangleCount, const MArray* trianglesObj);
API_FUNCTION(NoProxy) MArray* DownloadBuffer(bool forceGpu, MTypeObject* resultType, int32 typeI);
API_FUNCTION(NoProxy) Array<Float3> GetCollisionProxyPoints() const;
#if USE_EDITOR
API_FUNCTION(NoProxy) Array<Vector3> GetCollisionProxyPoints() const;
#endif
#endif
};