208 agx::ContactMaterial* getContactMaterialOrCreateImplicit(const
agx::Material* material1, const
agx::Material* material2);
214 agx::ContactMaterial* getContactMaterialOrCreateImplicit(const
agxCollide::Geometry* geometry1, const
agxCollide::Geometry* geometry2);
266 friend class SimulationController;
301 bool m_hasMaterialsWithContactReduction;
314 return m_contactMaterialStorage;
#define AGX_DECLARE_POINTER_TYPES(type)
#define AGXSTREAM_DECLARE_SERIALIZABLE(T)
Use this in a Serializable class to add the required methods Important: Use full namespace in the dec...
#define AGXPHYSICS_EXPORT
Data storage for a collection of entity instances of a specified EntityModel.
Internal class for store/restore of MaterialManager.
MaterialManagerSerializer(const MaterialManager *mgr)
const MaterialManager * get() const
agx::Vector< agx::ref_ptr< agx::ContactMaterial > > ContactMaterialVector
ContactMaterialVector m_contactMaterials
const MaterialManager * m_mgr
MaterialManagerSerializer()
void set(MaterialManager *mgr)
Simulation unique manager that handles logics around and parameters in contact materials given two ag...
const MaterialSPairContactMaterialRefTable & getContactMaterials() const
static agx::Model * ClassModel()
agx::ContactMaterialPtrVector getContactMaterialVector() const
This method will create and return new vector with all ContactMaterials.
bool setContactMaterial(agxCollide::LocalGeometryContact *localGeometryContact)
Assigns contact material to a local geometry contact.
bool loadLibraryContactMaterial(const agx::Material *material1, const agx::Material *material2, agx::ContactMaterial *contactMaterial)
Try to load the Library ContactMaterial for the pair (material1, material2) and fill in the settings ...
agx::Material * getMaterial(const agx::String &name)
static void calculateContactMaterial(agx::ContactMaterial *contactMaterial)
Static method to calculate the parameters in a contact material given the two materials assigned to i...
bool remove(agx::ContactMaterial *contactMaterial)
Remove explicit contact material from this manager.
void initializeNewGeometryContacts(const agxCollide::GeometryContactPtrVector &geometryContacts)
For any geometry contact where the contact material is zero, this method performs getOrCreateContactM...
void updateContactMaterials(const agxCollide::GeometryContactPtrVector &geometryContacts)
Updates implicit, dirty, materials that are currently used.
bool remove(agx::Material *material)
Remove material from this manager.
agx::MaterialPtrVector getMaterialVector() const
This method will create and return new vector with all materials.
void clear()
Clears all internal structures.
void store(agxStream::OutputArchive &out) const
Saves necessary internal structures.
virtual ~MaterialManager()
Destructor.
SymmetricMaterialPair getSymmetricPair(const agx::ContactMaterial *contactMaterial) const
agx::Material * getMaterial(const agx::Uuid &uuid)
MaterialManager()
Default constructor.
agx::ContactMaterial * getOrCreateContactMaterial(const agxCollide::GeometryContact *geometryContact)
Not part of the public API.
const agx::ContactMaterial * getContactMaterial(const agx::Material *material1, const agx::Material *material2) const
Returns an implicit or explicit contact material if it exists.
bool hasMaterialsWithContactReduction() const
void restore(const MaterialManagerSerializer &mgr)
Restores necessary internal structures.
bool add(agx::ContactMaterial *contactMaterial)
Add explicit contact material to this manager.
const agx::Material * getMaterial(const agx::String &name) const
agx::ContactMaterial * getOrCreateContactMaterial(const agx::Material *material1, const agx::Material *material2)
Returns or creates an explicit contact material.
const StringMaterialRefTable & getMaterials() const
agxData::EntityStorage * getContactMaterialStorage()
const agx::Material * getDefaultMaterial() const
void resetDirtyMaterials() const
Updates implicit contact materials containing at least one dirty material.
bool add(agx::Material *material)
Add material to this manager.
Simulation is a class that bridges the collision space agxCollide::Space and the dynamic simulation s...
Class for writing serialized data in binary format to a stream.
A component is an object containing other objects, enabling hierarchical structuring.
Inheritance with partial specialization due to bug with ref_ptr containers.
Main material class which acts as a holder of a Surface Material and a Bulk material.
static Material * getDefaultMaterial()
A model is an abstract representation of the class of an agx::Object.
Pointer to a entity instance of type Physics.Material.
AGXPHYSICS_EXPORT agx::Material *& model()
A std::pair, with both elements of the same type, and symmetric so (a, b) == (b, a)
A UUID, or Universally unique identifier, is intended to uniquely identify information in a distribut...
#define DOXYGEN_END_INTERNAL_BLOCK()
#define DOXYGEN_START_INTERNAL_BLOCK()
This namespace consists of a set of classes for handling geometric intersection tests including boole...
The agxSDK namespace contain classes to bridge the collision detection system and the dynamical simul...
agx::HashTable< agx::String, agx::MaterialRef > StringMaterialRefTable
agx::QuadraticProbingHashTable< SymmetricMaterialPair, agx::ContactMaterialRef > MaterialSPairContactMaterialRefTable
agx::SymmetricPair< const agx::Material * > MaterialPair
agx::SymmetricPair< const agx::Material * > SymmetricMaterialPair
This namespace contain classes for streaming classes into archives, ASCII, binary for storage (serial...
The agx namespace contains the dynamics/math part of the AGX Dynamics API.
agx::Vector< const agx::ContactMaterial * > ContactMaterialPtrVector
agx::Vector< const agx::Material * > MaterialPtrVector