All Classes Files Functions Variables Pages
PhysxSchemaPhysxSDFMeshCollisionAPI Class Reference

PhysX SDF mesh extended parameters. More...

Inherits UsdAPISchemaBase.

Public Member Functions

 PhysxSchemaPhysxSDFMeshCollisionAPI (const UsdPrim &prim=UsdPrim())
 Construct a PhysxSchemaPhysxSDFMeshCollisionAPI on UsdPrim prim . More...
 
 PhysxSchemaPhysxSDFMeshCollisionAPI (const UsdSchemaBase &schemaObj)
 Construct a PhysxSchemaPhysxSDFMeshCollisionAPI on the prim held by schemaObj . More...
 
virtual PHYSXSCHEMA_API ~PhysxSchemaPhysxSDFMeshCollisionAPI ()
 Destructor. More...
 
PHYSXSCHEMA_API UsdAttribute GetSdfResolutionAttr () const
 The spacing of the uniformly sampled SDF is equal to the largest AABB extent of the mesh, divided by the resolution. More...
 
PHYSXSCHEMA_API UsdAttribute CreateSdfResolutionAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 See GetSdfResolutionAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. More...
 
PHYSXSCHEMA_API UsdAttribute GetSdfSubgridResolutionAttr () const
 A positive subgrid resolution enables sparsity on signed-distance-fields (SDF) while a value of 0 leads to the usage of a dense SDF. More...
 
PHYSXSCHEMA_API UsdAttribute CreateSdfSubgridResolutionAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 See GetSdfSubgridResolutionAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. More...
 
PHYSXSCHEMA_API UsdAttribute GetSdfBitsPerSubgridPixelAttr () const
 Values of 8, 16 and 32 bits per subgrid pixel are supported. More...
 
PHYSXSCHEMA_API UsdAttribute CreateSdfBitsPerSubgridPixelAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 See GetSdfBitsPerSubgridPixelAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. More...
 
PHYSXSCHEMA_API UsdAttribute GetSdfNarrowBandThicknessAttr () const
 Size of the narrow band around the mesh surface where high resolution SDF samples are available. More...
 
PHYSXSCHEMA_API UsdAttribute CreateSdfNarrowBandThicknessAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 See GetSdfNarrowBandThicknessAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. More...
 
PHYSXSCHEMA_API UsdAttribute GetSdfMarginAttr () const
 Margin to increase the size of the SDF relative to the bounding box diagonal length of the mesh. More...
 
PHYSXSCHEMA_API UsdAttribute CreateSdfMarginAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 See GetSdfMarginAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. More...
 
PHYSXSCHEMA_API UsdAttribute GetSdfEnableRemeshingAttr () const
 Enables optional remeshing as a preprocessing step before the SDF is computed. More...
 
PHYSXSCHEMA_API UsdAttribute CreateSdfEnableRemeshingAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 See GetSdfEnableRemeshingAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. More...
 
PHYSXSCHEMA_API UsdAttribute GetSdfTriangleCountReductionFactorAttr () const
 Factor that quantifies the percentage of the input triangles to keep. More...
 
PHYSXSCHEMA_API UsdAttribute CreateSdfTriangleCountReductionFactorAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 See GetSdfTriangleCountReductionFactorAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. More...
 

Static Public Member Functions

static PHYSXSCHEMA_API const
TfTokenVector & 
GetSchemaAttributeNames (bool includeInherited=true)
 Return a vector of names of all pre-declared attributes for this schema class and all its ancestor classes. More...
 
static PHYSXSCHEMA_API
PhysxSchemaPhysxSDFMeshCollisionAPI 
Get (const UsdStagePtr &stage, const SdfPath &path)
 Return a PhysxSchemaPhysxSDFMeshCollisionAPI holding the prim adhering to this schema at path on stage. More...
 
static PHYSXSCHEMA_API bool CanApply (const UsdPrim &prim, std::string *whyNot=nullptr)
 Returns true if this single-apply API schema can be applied to the given prim. More...
 
static PHYSXSCHEMA_API
PhysxSchemaPhysxSDFMeshCollisionAPI 
Apply (const UsdPrim &prim)
 Applies this single-apply API schema to the given prim. More...
 

Static Public Attributes

static const UsdSchemaKind schemaKind = UsdSchemaKind::SingleApplyAPI
 Compile time constant representing what kind of schema this class is. More...
 

Protected Member Functions

PHYSXSCHEMA_API UsdSchemaKind _GetSchemaKind () const override
 Returns the kind of schema this class belongs to. More...
 

Friends

class UsdSchemaRegistry
 

Detailed Description

PhysX SDF mesh extended parameters.

For any described attribute Fallback Value or Allowed Values below that are text/tokens, the actual token is published and defined in PhysxSchemaTokens. So to set an attribute to the value "rightHanded", use PhysxSchemaTokens->rightHanded as the value.

Definition at line 62 of file physxSDFMeshCollisionAPI.h.

Constructor & Destructor Documentation

PhysxSchemaPhysxSDFMeshCollisionAPI ( const UsdPrim &  prim = UsdPrim())
inlineexplicit

Construct a PhysxSchemaPhysxSDFMeshCollisionAPI on UsdPrim prim .

Equivalent to PhysxSchemaPhysxSDFMeshCollisionAPI::Get(prim.GetStage(), prim.GetPath()) for a valid prim, but will not immediately throw an error for an invalid prim

Definition at line 74 of file physxSDFMeshCollisionAPI.h.

PhysxSchemaPhysxSDFMeshCollisionAPI ( const UsdSchemaBase &  schemaObj)
inlineexplicit

Construct a PhysxSchemaPhysxSDFMeshCollisionAPI on the prim held by schemaObj .

Should be preferred over PhysxSchemaPhysxSDFMeshCollisionAPI(schemaObj.GetPrim()), as it preserves SchemaBase state.

Definition at line 82 of file physxSDFMeshCollisionAPI.h.

virtual PHYSXSCHEMA_API ~PhysxSchemaPhysxSDFMeshCollisionAPI ( )
virtual

Destructor.

Member Function Documentation

PHYSXSCHEMA_API UsdSchemaKind _GetSchemaKind ( ) const
overrideprotected

Returns the kind of schema this class belongs to.

See Also
UsdSchemaKind
static PHYSXSCHEMA_API PhysxSchemaPhysxSDFMeshCollisionAPI Apply ( const UsdPrim &  prim)
static

Applies this single-apply API schema to the given prim.

This information is stored by adding "PhysxSDFMeshCollisionAPI" to the token-valued, listOp metadata apiSchemas on the prim.

Returns
A valid PhysxSchemaPhysxSDFMeshCollisionAPI object is returned upon success. An invalid (or empty) PhysxSchemaPhysxSDFMeshCollisionAPI object is returned upon failure. See UsdPrim::ApplyAPI() for conditions resulting in failure.
See Also
UsdPrim::GetAppliedSchemas()
UsdPrim::HasAPI()
UsdPrim::CanApplyAPI()
UsdPrim::ApplyAPI()
UsdPrim::RemoveAPI()
static PHYSXSCHEMA_API bool CanApply ( const UsdPrim &  prim,
std::string *  whyNot = nullptr 
)
static

Returns true if this single-apply API schema can be applied to the given prim.

If this schema can not be a applied to the prim, this returns false and, if provided, populates whyNot with the reason it can not be applied.

Note that if CanApply returns false, that does not necessarily imply that calling Apply will fail. Callers are expected to call CanApply before calling Apply if they want to ensure that it is valid to apply a schema.

See Also
UsdPrim::GetAppliedSchemas()
UsdPrim::HasAPI()
UsdPrim::CanApplyAPI()
UsdPrim::ApplyAPI()
UsdPrim::RemoveAPI()
PHYSXSCHEMA_API UsdAttribute CreateSdfBitsPerSubgridPixelAttr ( VtValue const &  defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetSdfBitsPerSubgridPixelAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create.

If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

PHYSXSCHEMA_API UsdAttribute CreateSdfEnableRemeshingAttr ( VtValue const &  defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetSdfEnableRemeshingAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create.

If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

PHYSXSCHEMA_API UsdAttribute CreateSdfMarginAttr ( VtValue const &  defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetSdfMarginAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create.

If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

PHYSXSCHEMA_API UsdAttribute CreateSdfNarrowBandThicknessAttr ( VtValue const &  defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetSdfNarrowBandThicknessAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create.

If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

PHYSXSCHEMA_API UsdAttribute CreateSdfResolutionAttr ( VtValue const &  defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetSdfResolutionAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create.

If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

PHYSXSCHEMA_API UsdAttribute CreateSdfSubgridResolutionAttr ( VtValue const &  defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetSdfSubgridResolutionAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create.

If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

PHYSXSCHEMA_API UsdAttribute CreateSdfTriangleCountReductionFactorAttr ( VtValue const &  defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetSdfTriangleCountReductionFactorAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create.

If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

static PHYSXSCHEMA_API PhysxSchemaPhysxSDFMeshCollisionAPI Get ( const UsdStagePtr &  stage,
const SdfPath &  path 
)
static

Return a PhysxSchemaPhysxSDFMeshCollisionAPI holding the prim adhering to this schema at path on stage.

If no prim exists at path on stage, or if the prim at that path does not adhere to this schema, return an invalid schema object. This is shorthand for the following:

* PhysxSchemaPhysxSDFMeshCollisionAPI(stage->GetPrimAtPath(path));
*
static PHYSXSCHEMA_API const TfTokenVector& GetSchemaAttributeNames ( bool  includeInherited = true)
static

Return a vector of names of all pre-declared attributes for this schema class and all its ancestor classes.

Does not include attributes that may be authored by custom/extended methods of the schemas involved.

PHYSXSCHEMA_API UsdAttribute GetSdfBitsPerSubgridPixelAttr ( ) const

Values of 8, 16 and 32 bits per subgrid pixel are supported.

Dense SDFs always use 32 bits per pixel. The less bits per pixel, the smaller the resulting SDF but also the less precise. The SDF's memory consumption scales proportionally with the number of bits per subgrid pixel.

Declaration uniform token physxSDFMeshCollision:sdfBitsPerSubgridPixel = "BitsPerPixel16"
C++ Type TfToken
Usd Type SdfValueTypeNames->Token
Variability SdfVariabilityUniform
Allowed Values BitsPerPixel8, BitsPerPixel16, BitsPerPixel32
PHYSXSCHEMA_API UsdAttribute GetSdfEnableRemeshingAttr ( ) const

Enables optional remeshing as a preprocessing step before the SDF is computed.

Remeshing can help generate valid SDF data even if the input mesh has bad properties like inconsistent winding or self-intersections. The SDF distances (and therefore the collisions) will be slightly less accurate when remeshing is enabled.

Declaration uniform bool physxSDFMeshCollision:sdfEnableRemeshing = 0
C++ Type bool
Usd Type SdfValueTypeNames->Bool
Variability SdfVariabilityUniform
PHYSXSCHEMA_API UsdAttribute GetSdfMarginAttr ( ) const

Margin to increase the size of the SDF relative to the bounding box diagonal length of the mesh.

A sdf margin value of 0.01 means the sdf boundary will be enlarged in any direction by 1% of the mesh's bounding box diagonal length. Representing the margin relative to the bounding box diagonal length ensures that it is scale independent. Margins allow for precise distance queries in a region slightly outside of the mesh's bounding box. Range: [0, inf) Units: dimensionless

Declaration uniform float physxSDFMeshCollision:sdfMargin = 0.01
C++ Type float
Usd Type SdfValueTypeNames->Float
Variability SdfVariabilityUniform
PHYSXSCHEMA_API UsdAttribute GetSdfNarrowBandThicknessAttr ( ) const

Size of the narrow band around the mesh surface where high resolution SDF samples are available.

Outside of the narrow band, only low resolution samples are stored. Representing the narrow band thickness as a fraction of the mesh's bounding box diagonal length ensures that it is scale independent. A value of 0.01 is usually large enough. The smaller the narrow band thickness, the smaller the memory consumption of the sparse SDF. Range: [0, 1] Units: dimensionless

Declaration uniform float physxSDFMeshCollision:sdfNarrowBandThickness = 0.01
C++ Type float
Usd Type SdfValueTypeNames->Float
Variability SdfVariabilityUniform
PHYSXSCHEMA_API UsdAttribute GetSdfResolutionAttr ( ) const

The spacing of the uniformly sampled SDF is equal to the largest AABB extent of the mesh, divided by the resolution.

Choose the lowest possible resolution that provides acceptable performance; very high resolution results in large memory consumption, and slower cooking and simulation performance. Range: (1, inf)

Declaration uniform int physxSDFMeshCollision:sdfResolution = 256
C++ Type int
Usd Type SdfValueTypeNames->Int
Variability SdfVariabilityUniform
PHYSXSCHEMA_API UsdAttribute GetSdfSubgridResolutionAttr ( ) const

A positive subgrid resolution enables sparsity on signed-distance-fields (SDF) while a value of 0 leads to the usage of a dense SDF.

A value in the range of 4 to 8 is a reasonable compromise between block size and the overhead introduced by block addressing. The smaller a block, the more memory is spent on the address table. The bigger a block, the less precisely the sparse SDF can adapt to the mesh's surface. In most cases sparsity reduces the memory consumption of a SDF significantly. Range: [0, inf)

Declaration uniform int physxSDFMeshCollision:sdfSubgridResolution = 6
C++ Type int
Usd Type SdfValueTypeNames->Int
Variability SdfVariabilityUniform
PHYSXSCHEMA_API UsdAttribute GetSdfTriangleCountReductionFactorAttr ( ) const

Factor that quantifies the percentage of the input triangles to keep.

1 means the input triangle mesh does not get modified. 0.5 would mean that the triangle count gets reduced to half the amount of the original mesh such that the collider needs to process less data. This helps to speed up collision detection at the cost of a small geometric error. Range: [0, 1] Units: dimensionless

Declaration uniform float physxSDFMeshCollision:sdfTriangleCountReductionFactor = 1
C++ Type float
Usd Type SdfValueTypeNames->Float
Variability SdfVariabilityUniform

Member Data Documentation

const UsdSchemaKind schemaKind = UsdSchemaKind::SingleApplyAPI
static

Compile time constant representing what kind of schema this class is.

See Also
UsdSchemaKind

Definition at line 68 of file physxSDFMeshCollisionAPI.h.


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