29#ifndef PX_SAMPLING_EXT_H
30#define PX_SAMPLING_EXT_H
35#include "foundation/PxArray.h"
36#include "geometry/PxGeometry.h"
37#include "foundation/PxUserAllocated.h"
38#include "geometry/PxSimpleTriangleMesh.h"
65 const PxBounds3* axisAlignedBox = NULL,
const PxQuat* boxOrientation = NULL, PxU32 maxNumSamples = 0, PxU32 numSampleAttemptsAroundPoint = 30);
81 const PxBounds3* axisAlignedBox = NULL,
const PxQuat* boxOrientation = NULL, PxU32 maxNumSamples = 0, PxU32 numSampleAttemptsAroundPoint = 30);
137PxPoissonSampler*
PxCreateShapeSampler(
const PxGeometry& geometry,
const PxTransform& transform,
const PxBounds3& worldBounds, PxReal initialSamplingRadius, PxI32 numSampleAttemptsAroundPoint = 30);
174PxTriangleMeshPoissonSampler*
PxCreateTriangleMeshSampler(
const PxU32* triangles, PxU32 numTriangles,
const PxVec3* vertices, PxU32 numVertices, PxReal initialSamplingRadius, PxI32 numSampleAttemptsAroundPoint = 30);
Class representing 3D range or axis aligned bounding box.
Definition PxBounds3.h:58
A geometry object.
Definition PxGeometry.h:79
Sampler to generate Poisson Samples locally on a triangle mesh or a shape. For every local addition o...
Definition PxSamplingExt.h:88
virtual void addSamplesInBox(const PxBounds3 &axisAlignedBox, const PxQuat &boxOrientation, bool createVolumeSamples=false)=0
virtual const PxArray< PxVec3 > & getSamples() const =0
virtual void addSamples(const PxArray< PxVec3 > &samples)=0
virtual void addSamplesInSphere(const PxVec3 &sphereCenter, PxReal sphereRadius, bool createVolumeSamples=false)=0
virtual PxU32 removeSamples(const PxArray< PxVec3 > &samples)=0
virtual void setSamplingRadius(PxReal samplingRadius)=0
This is a quaternion class. For more information on quaternion mathematics consult a mathematics sour...
Definition PxQuat.h:50
utility functions to sample vertices on or inside a triangle mesh or other geometries
Definition PxSamplingExt.h:49
static void poissonSample(const PxSimpleTriangleMesh &mesh, PxReal r, PxArray< PxVec3 > &result, PxReal rVolume=0.0f, PxArray< PxI32 > *triangleIds=NULL, PxArray< PxVec3 > *barycentricCoordinates=NULL, const PxBounds3 *axisAlignedBox=NULL, const PxQuat *boxOrientation=NULL, PxU32 maxNumSamples=0, PxU32 numSampleAttemptsAroundPoint=30)
Definition ExtSampling.cpp:1383
A structure describing a triangle mesh.
Definition PxSimpleTriangleMesh.h:83
Sampler to generate Poisson Samples on a triangle mesh.
Definition PxSamplingExt.h:144
virtual const PxArray< PxI32 > & getSampleTriangleIds() const =0
virtual const PxArray< PxVec3 > & getSampleBarycentrics() const =0
virtual bool isPointInTriangleMesh(const PxVec3 &p)=0
Definition PxUserAllocated.h:43
3 Element vector class.
Definition PxVec3.h:50
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
PxPoissonSampler * PxCreateShapeSampler(const PxGeometry &geometry, const PxTransform &transform, const PxBounds3 &worldBounds, PxReal initialSamplingRadius, PxI32 numSampleAttemptsAroundPoint=30)
Definition ExtSampling.cpp:527
PxTriangleMeshPoissonSampler * PxCreateTriangleMeshSampler(const PxU32 *triangles, PxU32 numTriangles, const PxVec3 *vertices, PxU32 numVertices, PxReal initialSamplingRadius, PxI32 numSampleAttemptsAroundPoint=30)
Definition ExtSampling.cpp:532