Interface NativeCollisionProvider

All Superinterfaces:
AlgorithmProvider, CollisionProvider
All Known Implementing Classes:
GenesisBackend, NativeBulletBackend, NativeCollisionBackend, NativeJBulletBackend, ODEBackend

public interface NativeCollisionProvider extends CollisionProvider
Native implementation of CollisionProvider using FFM (Project Panama). Optimized for hardware-accelerated collision detection.
  • Method Details

    • detectSphereCollisions

      default int detectSphereCollisions(MemorySegment positions, MemorySegment radii, int n, MemorySegment collisions, ValueLayout layout)
      Performs collision detection between spheres using MemorySegments.
      Specified by:
      detectSphereCollisions in interface CollisionProvider
    • resolveCollisions

      default void resolveCollisions(MemorySegment positions, MemorySegment velocities, MemorySegment masses, int n, MemorySegment collisions, int numCollisions, ValueLayout layout)
      Resolves collisions using MemorySegments.
      Specified by:
      resolveCollisions in interface CollisionProvider
    • detectSphereCollisions

      default int detectSphereCollisions(float[] positions, float[] radii, int n, int[] collisions)
      Description copied from interface: CollisionProvider
      Performs collision detection between spheres.
      Specified by:
      detectSphereCollisions in interface CollisionProvider
      Parameters:
      positions - Flattened array [x0, y0, z0, x1, y1, z1, ...]
      radii - Array of radii [r0, r1, ...]
      n - Number of spheres
      collisions - Output array for collision pairs [idA, idB, ...]
      Returns:
      Number of collisions found
    • detectSphereCollisions

      default int detectSphereCollisions(double[] positions, double[] radii, int n, int[] collisions)
      Specified by:
      detectSphereCollisions in interface CollisionProvider
    • resolveCollisions

      default void resolveCollisions(float[] positions, float[] velocities, float[] masses, int n, int[] collisions, int numCollisions)
      Specified by:
      resolveCollisions in interface CollisionProvider
    • resolveCollisions

      default void resolveCollisions(double[] positions, double[] velocities, double[] masses, int n, int[] collisions, int numCollisions)
      Specified by:
      resolveCollisions in interface CollisionProvider
    • isLoaded

      boolean isLoaded()
      Returns true if the native library is loaded and operational.