Open 3D Engine AzFramework API Reference  2205.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
Public Types | Public Member Functions | List of all members
Physics::Material Class Referenceabstract

#include <Material.h>

Public Types

enum  CombineMode : AZ::u8 { Average, Minimum, Maximum, Multiply }
 

Public Member Functions

 AZ_CLASS_ALLOCATOR (Material, AZ::SystemAllocator, 0)
 
 AZ_RTTI (Physics::Material, "{44636CEA-46DD-4D4A-B1EF-5ED6DEA7F714}")
 
virtual AZ::Crc32 GetSurfaceType () const =0
 Returns AZ::Crc32 of the surface name.
 
virtual const AZStd::string & GetSurfaceTypeName () const =0
 
virtual void SetSurfaceTypeName (const AZStd::string &surfaceTypeName)=0
 
virtual float GetDynamicFriction () const =0
 
virtual void SetDynamicFriction (float dynamicFriction)=0
 
virtual float GetStaticFriction () const =0
 
virtual void SetStaticFriction (float staticFriction)=0
 
virtual float GetRestitution () const =0
 
virtual void SetRestitution (float restitution)=0
 
virtual CombineMode GetFrictionCombineMode () const =0
 
virtual void SetFrictionCombineMode (CombineMode mode)=0
 
virtual CombineMode GetRestitutionCombineMode () const =0
 
virtual void SetRestitutionCombineMode (CombineMode mode)=0
 
virtual float GetDensity () const =0
 
virtual void SetDensity (float density)=0
 
virtual AZ::Color GetDebugColor () const =0
 
virtual void SetDebugColor (const AZ::Color &debugColor)=0
 
virtual AZ::u32 GetCryEngineSurfaceId () const =0
 
virtual void * GetNativePointer ()=0
 Returns underlying pointer of the native physics type (for example PxMaterial in PhysX).
 

Detailed Description

Physics material

This is the interface to the wrapper around native material type (such as PxMaterial in PhysX gem) that stores extra metadata, like Surface Type name.

Usage example

Create new material using Physics::SystemRequestBus and Physics::MaterialConfiguration:

Physics::MaterialConfiguration materialProperties;
AZStd::shared_ptr<Physics::Material> newMaterial = AZ::Interface<Physics::System>::Get()->CreateMaterial(materialProperties);

Member Enumeration Documentation

◆ CombineMode

enum Physics::Material::CombineMode : AZ::u8
strong

Enumeration that determines how two materials properties are combined when processing collisions.

Member Function Documentation

◆ GetCryEngineSurfaceId()

virtual AZ::u32 Physics::Material::GetCryEngineSurfaceId ( ) const
pure virtual

If the name of this material matches the name of one of the CrySurface types, it will return its CrySurface Id.
If there's no match it will return default CrySurface Id.
CrySurface types are defined in libs/materialeffects/surfacetypes.xml


The documentation for this class was generated from the following file: