usdrt::PhysxSchemaPhysxVehicleAPI

Defined in usdrt/scenegraph/usd/physxSchema/physxVehicleAPI.h

Functions

Variables

class PhysxSchemaPhysxVehicleAPI : public usdrt::UsdAPISchemaBase

PhysX vehicle. Has to be applied to a prim with PhysicsRigidBodyAPI applied. Wheels can be added by applying PhysxVehicleWheelAttachmentAPI to a prim that is a descendant of the “vehicle” prim.

Note: if the prim has PhysxRigidBodyAPI applied, it should be configured such that disableGravity is set to true since the vehicle simulation will take gravity into account already. 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.

Public Functions

inline explicit PhysxSchemaPhysxVehicleAPI(const UsdPrim &prim = UsdPrim())

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

inline explicit PhysxSchemaPhysxVehicleAPI(const UsdSchemaBase &schemaObj)

Construct a PhysxSchemaPhysxVehicleAPI on the prim held by schemaObj . Should be preferred over PhysxSchemaPhysxVehicleAPI(schemaObj.GetPrim()), as it preserves SchemaBase state.

inline virtual ~PhysxSchemaPhysxVehicleAPI()

Destructor.

inline operator bool() const

Boolean operator.

Returns

Return true if the contained prim is has this api schema applied using HasAPI, and false otherwise.

inline UsdAttribute GetVehicleEnabledAttr() const

Defines whether the vehicle simulation update loop will run for the vehicle or not.

Note: if set to false, the prim’s rigid body will still get simulated (the PhysicsRigidBodyAPI API schema can be used to turn the body into a kinematic or set velocities to zero at that point).

Note: it is an illegal setup to have a vehicle enabled, while the prim’s rigid body is disabled or kinematic.

Declaration

bool physxVehicle:vehicleEnabled = 1

C++ Type

bool

Usd Type

SdfValueTypeNames->Bool

inline UsdAttribute CreateVehicleEnabledAttr() const

See GetVehicleEnabledAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetSuspensionLineQueryTypeAttr() const

Collision of the wheels with the ground surface is detected through scene queries along the suspension direction. This attribute defines whether a raycast or a sweep should be used as the query type. Raycasts are faster while sweeps can represent the wheel shape better and thus react earlier to ground surface changes.

Declaration

uniform token physxVehicle:suspensionLineQueryType = "raycast"

C++ Type

TfToken

Usd Type

SdfValueTypeNames->Token

Variability

SdfVariabilityUniform

Allowed Values

raycast, sweep

inline UsdAttribute CreateSuspensionLineQueryTypeAttr() const

See GetSuspensionLineQueryTypeAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetSubStepThresholdLongitudinalSpeedAttr() const

Threshold speed that is used to categorize vehicle speed as low speed or high speed for choosing the sub-step count (units: distance / seconds).

Note: if not defined, the value 5.0 will be used. This default value is in meter length scale and will get adjusted if another unit is used.

Declaration

float physxVehicle:subStepThresholdLongitudinalSpeed

C++ Type

float

Usd Type

SdfValueTypeNames->Float

inline UsdAttribute CreateSubStepThresholdLongitudinalSpeedAttr() const

See GetSubStepThresholdLongitudinalSpeedAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetLowForwardSpeedSubStepCountAttr() const

Number of sub-steps performed in the vehicle dynamics update for vehicles that have longitudinal speed lower than subStepThresholdLongitudinalSpeed.

Note: if not defined, the value 3 will be used.

Declaration

int physxVehicle:lowForwardSpeedSubStepCount

C++ Type

int

Usd Type

SdfValueTypeNames->Int

inline UsdAttribute CreateLowForwardSpeedSubStepCountAttr() const

See GetLowForwardSpeedSubStepCountAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetHighForwardSpeedSubStepCountAttr() const

Number of sub-steps performed in the vehicle dynamics update for vehicles that have longitudinal speed greater than subStepThresholdLongitudinalSpeed.

Note: if not defined, the value 1 will be used.

Declaration

int physxVehicle:highForwardSpeedSubStepCount

C++ Type

int

Usd Type

SdfValueTypeNames->Int

inline UsdAttribute CreateHighForwardSpeedSubStepCountAttr() const

See GetHighForwardSpeedSubStepCountAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetMinLongitudinalSlipDenominatorAttr() const

Deprecated. Please use minPassiveLongitudinalSlipDenominator instead.

The minimum denominator used in the longitudinal slip calculation (units: distance / seconds). For low longitudinal velocities, the computation of the longitudinal slip can become unstable. This value defines the minimum velocity to use when computing the longitudinal slip.

Note: will be ignored if minPassiveLongitudinalSlipDenominator is used.

Note: if not defined, the value 4.0 will be used. This default value is in meter length scale and will get adjusted if another unit is used.

Declaration

float physxVehicle:minLongitudinalSlipDenominator

C++ Type

float

Usd Type

SdfValueTypeNames->Float

inline UsdAttribute CreateMinLongitudinalSlipDenominatorAttr() const

See GetMinLongitudinalSlipDenominatorAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetMinPassiveLongitudinalSlipDenominatorAttr() const

The minimum denominator used in the longitudinal slip calculation when a wheel experiences no drive and no brake torque (units: distance / seconds). For low longitudinal velocities, the computation of the longitudinal slip can become unstable. This value defines the minimum velocity to use when computing the longitudinal slip. The value has to be positive.

Note: the default value 0 is not a valid value as such but indicates that the deprecated attribute minLongitudinalSlipDenominator should be used instead.

Note: it is recommended to have minActiveLongitudinalSlipDenominator < minPassiveLongitudinalSlipDenominator.

Declaration

float physxVehicle:minPassiveLongitudinalSlipDenominator = 0

C++ Type

float

Usd Type

SdfValueTypeNames->Float

inline UsdAttribute CreateMinPassiveLongitudinalSlipDenominatorAttr() const

See GetMinPassiveLongitudinalSlipDenominatorAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetMinActiveLongitudinalSlipDenominatorAttr() const

The minimum denominator used in the longitudinal slip calculation when a wheel experiences drive or brake torque (units: distance / seconds). For low longitudinal velocities, the computation of the longitudinal slip can become unstable. This value defines the minimum velocity to use when computing the longitudinal slip. The value has to be positive.

Note: the default value 0 is not a valid value as such but will result in the value 0.1 being used (in meter length scale or the equivalent if another unit is used).

Note: it is recommended to have minActiveLongitudinalSlipDenominator < minPassiveLongitudinalSlipDenominator.

Declaration

float physxVehicle:minActiveLongitudinalSlipDenominator = 0

C++ Type

float

Usd Type

SdfValueTypeNames->Float

inline UsdAttribute CreateMinActiveLongitudinalSlipDenominatorAttr() const

See GetMinActiveLongitudinalSlipDenominatorAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetMinLateralSlipDenominatorAttr() const

The minimum denominator used in the lateral slip calculation (units: distance / seconds). For low longitudinal velocities, the computation of the lateral slip can become unstable. This value defines the minimum longitudinal velocity to use when computing the lateral slip. The value has to be positive.

Note: the default value 0 is not a valid value as such but will result in the value 1.0 being used (in meter length scale or the equivalent if another unit is used).

Note: larger simulation timesteps typically require larger values of minLateralSlipDenominator.

Declaration

float physxVehicle:minLateralSlipDenominator = 0

C++ Type

float

Usd Type

SdfValueTypeNames->Float

inline UsdAttribute CreateMinLateralSlipDenominatorAttr() const

See GetMinLateralSlipDenominatorAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetLongitudinalStickyTireThresholdSpeedAttr() const

The longitudinal sticky tire threshold speed (units: distance / seconds). Has to be greater or equal 0. A tire enters the “sticky tire” regime when its longitudinal speed has been below this threshold for a continuous time specified by longitudinalStickyTireThresholdTime. At low speeds with no significant brake or drive torque, numerical error begins to dominate and it can be difficult to bring the vehicle to rest. A solution to this problem is to recognise that the vehicle is close to rest and to replace the tire forces with velocity constraints that will bring the vehicle to rest. For the purpose of this documentation, this regime is referred to as the “sticky tire” regime.

Note: the default value -1 is not a valid value as such but will result in the value 0.2 being used (in meter length scale or the equivalent if another unit is used).

Declaration

float physxVehicle:longitudinalStickyTireThresholdSpeed = -1

C++ Type

float

Usd Type

SdfValueTypeNames->Float

inline UsdAttribute CreateLongitudinalStickyTireThresholdSpeedAttr() const

See GetLongitudinalStickyTireThresholdSpeedAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetLongitudinalStickyTireThresholdTimeAttr() const

The longitudinal sticky tire threshold time (in seconds). Has to be greater or equal 0. A tire enters the “sticky tire” regime when it has been below the speed specified by longitudinalStickyTireThresholdSpeed for this continuous time. More details on the “sticky tire” regime can be found in the documentation of the longitudinalStickyTireThresholdSpeed attribute.

Declaration

float physxVehicle:longitudinalStickyTireThresholdTime = 1

C++ Type

float

Usd Type

SdfValueTypeNames->Float

inline UsdAttribute CreateLongitudinalStickyTireThresholdTimeAttr() const

See GetLongitudinalStickyTireThresholdTimeAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetLongitudinalStickyTireDampingAttr() const

The longitudinal sticky tire damping (per seconds). Has to be greater or equal 0. Describes the rate at which the velocity constraint approaches zero when entering the “sticky tire” regime. More details on the “sticky tire” regime can be found in the documentation of the longitudinalStickyTireThresholdSpeed attribute.

Note: larger values of damping lead to faster approaches to zero. Since the damping behaves like a stiffness with respect to the velocity, too large a value can lead to instabilities.

Declaration

float physxVehicle:longitudinalStickyTireDamping = 200

C++ Type

float

Usd Type

SdfValueTypeNames->Float

inline UsdAttribute CreateLongitudinalStickyTireDampingAttr() const

See GetLongitudinalStickyTireDampingAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetLateralStickyTireThresholdSpeedAttr() const

The lateral sticky tire threshold speed (units: distance / seconds). See documentation about longitudinalStickyTireThresholdSpeed as it is the same concept. Note that the lateral part can only enter the “sticky tire” regime if the longitudinal speed is below longitudinalStickyTireThresholdSpeed.

Note: the default value -1 is not a valid value as such but will result in the value 0.2 being used (in meter length scale or the equivalent if another unit is used).

Declaration

float physxVehicle:lateralStickyTireThresholdSpeed = -1

C++ Type

float

Usd Type

SdfValueTypeNames->Float

inline UsdAttribute CreateLateralStickyTireThresholdSpeedAttr() const

See GetLateralStickyTireThresholdSpeedAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetLateralStickyTireThresholdTimeAttr() const

The lateral sticky tire threshold time (in seconds). See documentation about longitudinalStickyTireThresholdTime as it is the same concept.

Declaration

float physxVehicle:lateralStickyTireThresholdTime = 1

C++ Type

float

Usd Type

SdfValueTypeNames->Float

inline UsdAttribute CreateLateralStickyTireThresholdTimeAttr() const

See GetLateralStickyTireThresholdTimeAttr(), and also Create vs Get Property Methods 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.

inline UsdAttribute GetLateralStickyTireDampingAttr() const

The lateral sticky tire damping (per seconds). See documentation about longitudinalStickyTireDamping as it is the same concept.

Note: larger values of damping lead to faster approaches to zero. Since the damping behaves like a stiffness with respect to the velocity, too large a value can lead to instabilities.

Declaration

float physxVehicle:lateralStickyTireDamping = 20

C++ Type

float

Usd Type

SdfValueTypeNames->Float

inline UsdAttribute CreateLateralStickyTireDampingAttr() const

See GetLateralStickyTireDampingAttr(), and also Create vs Get Property Methods 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.

inline UsdRelationship GetDriveRel() const

A relationship to a PhysxVehicleDriveBasicAPI or PhysxVehicleDriveStandardAPI prim that describes the drive model. If none is specified, it is up to the user to apply torque to the wheels. It is also possible to apply PhysxVehicleDriveBasicAPI or PhysxVehicleDriveStandardAPI to the prim directly. In that case the relationship must not be defined.

inline UsdRelationship CreateDriveRel() const

See GetDriveRel(), and also Create vs Get Property Methods for when to use Get vs Create.

UsdPrim GetPrim() const

Return this schema object’s held prim.

SdfPath GetPath() const

Return the SdfPath to this schema object’s held prim.

Public Static Functions

static inline PhysxSchemaPhysxVehicleAPI Apply(const UsdPrim &prim)

Applies this single-apply API schema to the given prim. This information is stored by adding “PhysxVehicleAPI” to the token-valued, listOp metadata apiSchemas on the prim.

See also

UsdPrim::GetAppliedSchemas()

See also

UsdPrim::HasAPI()

See also

UsdPrim::ApplyAPI()

See also

UsdPrim::RemoveAPI()

Returns

A valid PhysxSchemaPhysxVehicleAPI object is returned upon success. An invalid (or empty) PhysxSchemaPhysxVehicleAPI object is returned upon failure. See UsdPrim::ApplyAPI() for conditions resulting in failure.

Public Static Attributes

static const UsdSchemaType schemaType = UsdSchemaType::SingleApplyAPI

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

See also

UsdSchemaType

Protected Functions

inline const TfToken &_GetInstanceName() const

Returns the instance name of the API schema object belonging to a multiple-apply API schema.

The returned instance name will be empty for non-applied and single-apply API schemas.