Class CPUCollisionProvider
java.lang.Object
org.episteme.natural.physics.classical.mechanics.collision.providers.CPUCollisionProvider
- All Implemented Interfaces:
AlgorithmProvider, CollisionProvider
@AutoService(CollisionProvider.class)
public class CPUCollisionProvider
extends Object
implements CollisionProvider
CPU-based implementation of CollisionProvider.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns a human-readable description of the provider.intdetectSphereCollisions(double[] positions, double[] radii, int n, int[] collisions) intdetectSphereCollisions(float[] positions, float[] radii, int n, int[] collisions) Performs collision detection between spheres.intdetectSphereCollisions(MemorySegment positions, MemorySegment radii, int n, MemorySegment collisions, ValueLayout layout) intdetectSphereCollisions(Real[] positions, Real[] radii, int n, int[] collisions) getName()intReturns the execution priority (higher is better).voidresolveCollisions(double[] positions, double[] velocities, double[] masses, int n, int[] collisions, int numCollisions) voidresolveCollisions(float[] positions, float[] velocities, float[] masses, int n, int[] collisions, int numCollisions) voidresolveCollisions(MemorySegment positions, MemorySegment velocities, MemorySegment masses, int n, MemorySegment collisions, int numCollisions, ValueLayout layout) voidresolveCollisions(Real[] positions, Real[] velocities, Real[] masses, int n, int[] collisions, int numCollisions) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface AlgorithmProvider
getMetadata, isAvailable, score, shutdownMethods inherited from interface CollisionProvider
getAlgorithmType
-
Constructor Details
-
CPUCollisionProvider
public CPUCollisionProvider()
-
-
Method Details
-
detectSphereCollisions
public int detectSphereCollisions(float[] positions, float[] radii, int n, int[] collisions) Description copied from interface:CollisionProviderPerforms collision detection between spheres.- Specified by:
detectSphereCollisionsin interfaceCollisionProvider- Parameters:
positions- Flattened array [x0, y0, z0, x1, y1, z1, ...]radii- Array of radii [r0, r1, ...]n- Number of spherescollisions- Output array for collision pairs [idA, idB, ...]- Returns:
- Number of collisions found
-
detectSphereCollisions
public int detectSphereCollisions(double[] positions, double[] radii, int n, int[] collisions) - Specified by:
detectSphereCollisionsin interfaceCollisionProvider
-
detectSphereCollisions
- Specified by:
detectSphereCollisionsin interfaceCollisionProvider
-
detectSphereCollisions
public int detectSphereCollisions(MemorySegment positions, MemorySegment radii, int n, MemorySegment collisions, ValueLayout layout) - Specified by:
detectSphereCollisionsin interfaceCollisionProvider
-
resolveCollisions
public void resolveCollisions(float[] positions, float[] velocities, float[] masses, int n, int[] collisions, int numCollisions) - Specified by:
resolveCollisionsin interfaceCollisionProvider
-
resolveCollisions
public void resolveCollisions(double[] positions, double[] velocities, double[] masses, int n, int[] collisions, int numCollisions) - Specified by:
resolveCollisionsin interfaceCollisionProvider
-
resolveCollisions
public void resolveCollisions(Real[] positions, Real[] velocities, Real[] masses, int n, int[] collisions, int numCollisions) - Specified by:
resolveCollisionsin interfaceCollisionProvider
-
resolveCollisions
public void resolveCollisions(MemorySegment positions, MemorySegment velocities, MemorySegment masses, int n, MemorySegment collisions, int numCollisions, ValueLayout layout) - Specified by:
resolveCollisionsin interfaceCollisionProvider
-
getName
- Specified by:
getNamein interfaceAlgorithmProvider
-
description
Description copied from interface:AlgorithmProviderReturns a human-readable description of the provider.- Specified by:
descriptionin interfaceAlgorithmProvider
-
getPriority
public int getPriority()Description copied from interface:AlgorithmProviderReturns the execution priority (higher is better).- Specified by:
getPriorityin interfaceAlgorithmProvider
-