29#ifndef NP_PBD_MATERIAL_H
30#define NP_PBD_MATERIAL_H
32#include "common/PxSerialFramework.h"
33#include "foundation/PxUserAllocated.h"
34#include "foundation/PxUtilities.h"
35#include "CmRefCountable.h"
36#include "PxsPBDMaterialCore.h"
37#include "PxPBDMaterial.h"
61 void preExportDataReset() { Cm::RefCountable_preExportDataReset(*
this); }
126 for (PxU32 i = 0; i < materialCount; i++)
127 materialIndices[i] =
static_cast<NpPBDMaterial*
>(materials[i])->mMaterial.mMaterialIndex;
130#if PX_ENABLE_FEATURES_UNDER_CONSTRUCTION
142 virtual void resolveReferences(PxDeserializationContext&
context);
143 static NpCustomMaterial* createObject(PxU8*& address, PxDeserializationContext&
context);
144 static void getBinaryMetaData(PxOutputStream& stream);
147 virtual void onRefCountZero();
150 void preExportDataReset() { Cm::RefCountable_preExportDataReset(*
this); }
151 void exportExtraData(PxSerializationContext&) {}
152 void importExtraData(PxDeserializationContext&) {}
153 virtual void requiresObjects(PxProcessPxBaseCallback&) {}
155 NpCustomMaterial(
const PxsCustomMaterialCore& desc);
156 virtual ~NpCustomMaterial();
158 virtual void release();
161 virtual void acquireReference();
162 virtual PxU32 getReferenceCount()
const;
166 virtual void setFriction(PxReal friction)
PX_OVERRIDE;
168 virtual
void setDamping(PxReal damping)
PX_OVERRIDE;
170 virtual
void setAdhesion(PxReal adhesion)
PX_OVERRIDE;
172 virtual
void setGravityScale(PxReal scale)
PX_OVERRIDE;
173 virtual PxReal getGravityScale() const
PX_OVERRIDE;
174 virtual
void setAdhesionRadiusScale(PxReal scale)
PX_OVERRIDE;
175 virtual PxReal getAdhesionRadiusScale() const
PX_OVERRIDE;
178 PX_FORCE_INLINE static
void getMaterialIndices(NpCustomMaterial*const* materials, PxU16* materialIndices, PxU32 materialCount);
186 PxsCustomMaterialCore mMaterial;
189 PX_FORCE_INLINE void NpCustomMaterial::getMaterialIndices(NpCustomMaterial*const* materials, PxU16* materialIndices, PxU32 materialCount)
191 for (PxU32 i = 0; i < materialCount; i++)
192 materialIndices[i] =
static_cast<NpCustomMaterial*
>(materials[i])->mMaterial.mMaterialIndex;
Definition NpPBDMaterial.h:47
virtual PxReal getVorticityConfinement() const PX_OVERRIDE
Retrieves the vorticity confinement coefficient.
virtual PxReal getLift() const PX_OVERRIDE
Retrieves the lift coefficient.
virtual void setCohesion(PxReal cohesion) PX_OVERRIDE
Sets material cohesion coefficient.
virtual PxReal getAdhesion() const PX_OVERRIDE
Retrieves the adhesion term.
virtual void setVorticityConfinement(PxReal vorticityConfinement) PX_OVERRIDE
Sets material vorticity confinement coefficient.
virtual void setDamping(PxReal damping) PX_OVERRIDE
Sets velocity damping term.
virtual void setViscosity(PxReal viscosity) PX_OVERRIDE
Sets viscosity.
virtual PxReal getParticleAdhesionScale() const PX_OVERRIDE
Retrieves the particle adhesion scale value.
virtual PxReal getFriction() const PX_OVERRIDE
Retrieves the friction value.
virtual void setSurfaceTension(PxReal surfaceTension) PX_OVERRIDE
Sets material surface tension coefficient.
virtual void setParticleFrictionScale(PxReal scale) PX_OVERRIDE
Sets material particle friction scale. This allows the application to scale up/down the frictional ef...
virtual PxReal getParticleFrictionScale() const PX_OVERRIDE
Retrieves the particle friction scale.
virtual PxU32 getReferenceCount() const PX_OVERRIDE
Returns the reference count of the object.
virtual void setLift(PxReal lift) PX_OVERRIDE
Sets material lift coefficient.
virtual void setGravityScale(PxReal scale) PX_OVERRIDE
Sets gravity scale term.
virtual void setDrag(PxReal drag) PX_OVERRIDE
Sets material drag coefficient.
virtual PxReal getAdhesionRadiusScale() const PX_OVERRIDE
Retrieves the adhesion radius scale.
virtual void setParticleAdhesionScale(PxReal adhesion) PX_OVERRIDE
Sets material particle adhesion scale value. This is the adhesive value between particles defined as ...
virtual void setCFLCoefficient(PxReal coefficient) PX_OVERRIDE
Sets the CFL coefficient.
virtual PxReal getCohesion() const PX_OVERRIDE
Retrieves the cohesion coefficient.
virtual PxReal getSurfaceTension() const PX_OVERRIDE
Retrieves the surface tension coefficient.
virtual void setAdhesionRadiusScale(PxReal scale) PX_OVERRIDE
Sets material adhesion radius scale. This is multiplied by the particle rest offset to compute the fa...
virtual PxReal getDrag() const PX_OVERRIDE
Retrieves the drag coefficient.
virtual void setAdhesion(PxReal adhesion) PX_OVERRIDE
Sets adhesion term.
virtual PxReal getGravityScale() const PX_OVERRIDE
Retrieves the gravity scale term.
virtual void release() PX_OVERRIDE
Decrements the reference count of the object and releases it if the new reference count is zero.
virtual void acquireReference() PX_OVERRIDE
Acquires a counted reference to this object.
virtual void setFriction(PxReal friction) PX_OVERRIDE
Sets friction.
virtual PxReal getCFLCoefficient() const PX_OVERRIDE
Retrieves the CFL coefficient.
virtual PxReal getViscosity() const PX_OVERRIDE
Retrieves the viscosity value.
virtual PxReal getDamping() const PX_OVERRIDE
Retrieves the velocity damping term.
Definition PxPBDMaterial.h:215
Binary deserialization context class.
Definition PxSerialFramework.h:174
Output stream class for I/O.
Definition PxIO.h:114
Material class to represent a set of PBD particle material properties.
Definition PxPBDMaterial.h:49
Callback class used to process PxBase objects.
Definition PxSerialFramework.h:81
Binary serialization context class.
Definition PxSerialFramework.h:99
Definition PxUserAllocated.h:43
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
#define PX_OVERRIDE
Definition PxPreprocessor.h:375
#define PX_INLINE
Definition PxPreprocessor.h:320
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39