Package org.joml.sampling
Class BestCandidateSampling.Sphere
java.lang.Object
org.joml.sampling.BestCandidateSampling.Sphere
- Enclosing class:
BestCandidateSampling
Generates Best Candidate samples on a unit sphere.
References:
- Author:
- Kai Burjack
-
Constructor Summary
ConstructorDescriptionSphere()
Create a new instance ofBestCandidateSampling.Sphere
to configure and generate 'best candidate' sample positions on the unit sphere. -
Method Summary
Modifier and TypeMethodDescriptiongenerate
(float[] xyzs) Generate 'best candidate' sample positions and store the coordinates of all generated samples into the givenxyzs
float array.generate
(FloatBuffer xyzs) Generate 'best candidate' sample positions and store the coordinates of all generated samples into the givenxyzs
FloatBuffer.generate
(Callback3d callback) Generate 'best candidate' sample call the givencallback
for each generated sample.numCandidates
(int numCandidates) Set the number of candidates to try for each generated sample.numSamples
(int numSamples) Set the number of samples to generate.onHemisphere
(boolean onHemisphere) Set whether to generate samples on a hemisphere around the+Z
axis.seed
(long seed) Set the seed to initialize the pseudo-random number generator with.
-
Constructor Details
-
Sphere
public Sphere()Create a new instance ofBestCandidateSampling.Sphere
to configure and generate 'best candidate' sample positions on the unit sphere.
-
-
Method Details
-
generate
Generate 'best candidate' sample positions and store the coordinates of all generated samples into the givenxyzs
float array.This method performs heap allocations, so should be used sparingly.
- Parameters:
xyzs
- will hold the x, y and z coordinates of all samples in the orderXYZXYZXYZ...
. This array must have a length of at leastnumSamples
- Returns:
- this
-
generate
Generate 'best candidate' sample positions and store the coordinates of all generated samples into the givenxyzs
FloatBuffer.The samples will be written starting at the current position of the FloatBuffer. The position of the FloatBuffer will not be modified.
This method performs heap allocations, so should be used sparingly.
- Parameters:
xyzs
- will hold the x, y and z coordinates of all samples in the orderXYZXYZXYZ...
. This FloatBuffer must have at leastnumSamples
remaining elements. The position of the buffer will not be modified by this method- Returns:
- this
-
seed
Set the seed to initialize the pseudo-random number generator with.- Parameters:
seed
- the seed value- Returns:
- this
-
numSamples
Set the number of samples to generate.- Parameters:
numSamples
- the number of samples- Returns:
- this
-
numCandidates
Set the number of candidates to try for each generated sample.- Parameters:
numCandidates
- the number of candidates to try- Returns:
- this
-
onHemisphere
Set whether to generate samples on a hemisphere around the+Z
axis.The default is
false
, which will generate samples on the whole unit sphere.- Parameters:
onHemisphere
- whether to generate samples on the hemisphere- Returns:
- this
-
generate
Generate 'best candidate' sample call the givencallback
for each generated sample.This method performs heap allocations, so should be used sparingly.
- Parameters:
callback
- will be called with the coordinates of each generated sample position- Returns:
- this
-