chrono::utils::PDSampler< T > Class Template Reference
Description
template<typename T = double>
class chrono::utils::PDSampler< T >
Sampler for 3D domains (box, sphere, or cylinder) using Poisson Disk Sampling.
The sampler produces a set of points uniformly distributed in the specified domain such that no two points are closer than a specified distance.
2D domains can also be sampled (rectangle or circle), by setting the size of the domain in the z direction to 0.
Based on "Fast Poisson Disk Sampling in Arbitrary Dimensions" by Robert Bridson
http://people.cs.ubc.ca/~rbridson/docs/bridson-siggraph07-poissondisk.pdf
#include <ChUtilsSamplers.h>
Inheritance diagram for chrono::utils::PDSampler< T >:
Collaboration diagram for chrono::utils::PDSampler< T >:
Public Types | |
typedef Types< T >::PointVector | PointVector |
typedef Types< T >::PointList | PointList |
typedef Sampler< T >::VolumeType | VolumeType |
Public Types inherited from chrono::utils::Sampler< T > | |
typedef Types< T >::PointVector | PointVector |
Public Member Functions | |
PDSampler (T separation, int pointsPerIteration=m_ppi_default) | |
Construct a Poisson Disk sampler with specified minimum distance. | |
Public Member Functions inherited from chrono::utils::Sampler< T > | |
PointVector | SampleBox (const ChVector< T > ¢er, const ChVector< T > &halfDim) |
Return points sampled from the specified box volume. | |
PointVector | SampleSphere (const ChVector< T > ¢er, T radius) |
Return points sampled from the specified spherical volume. | |
PointVector | SampleCylinderX (const ChVector< T > ¢er, T radius, T halfHeight) |
Return points sampled from the specified X-aligned cylindrical volume. | |
PointVector | SampleCylinderY (const ChVector< T > ¢er, T radius, T halfHeight) |
Return points sampled from the specified Y-aligned cylindrical volume. | |
PointVector | SampleCylinderZ (const ChVector< T > ¢er, T radius, T halfHeight) |
Return points sampled from the specified Z-aligned cylindrical volume. | |
virtual double | GetSeparation () const |
Get the current value of the minimum separation. | |
virtual void | SetSeparation (double separation) |
Change the minimum separation for subsequent calls to Sample. | |
Additional Inherited Members | |
Protected Types inherited from chrono::utils::Sampler< T > | |
enum | VolumeType { BOX, SPHERE, CYLINDER_X, CYLINDER_Y, CYLINDER_Z } |
Protected Member Functions inherited from chrono::utils::Sampler< T > | |
Sampler (T separation) | |
bool | accept (VolumeType t, const ChVector< T > &p) const |
Utility function to check if a point is inside the sampling volume. | |
Protected Attributes inherited from chrono::utils::Sampler< T > | |
T | m_separation |
inter-particle separation | |
ChVector< T > | m_center |
center of the sampling volume | |
ChVector< T > | m_size |
half dimensions of the bounding box of the sampling volume | |
The documentation for this class was generated from the following file:
- /builds/uwsbel/chrono/src/chrono/utils/ChUtilsSamplers.h