Remove mjDSBL_PASSIVE, split it into mjDSBL_SPRING and mjDSBL_DAMPING.
PiperOrigin-RevId: 800870384 Change-Id: I273e0ceec090901e2620febb67e57914928e94bb
This commit is contained in:
committed by
Copybara-Service
parent
0eea5d6dbd
commit
b092563cab
@@ -90,6 +90,10 @@ class "MjcSceneAPI" (
|
||||
displayName = "Contact Constraints and Collision Detection Toggle"
|
||||
doc = "Enables collision detection and all standard computations related to contact constraints."
|
||||
)
|
||||
uniform bool mjc:flag:damper = 1 (
|
||||
displayName = "Damper Forces Toggle"
|
||||
doc = "Enables the simulation of joint and tendon dampers."
|
||||
)
|
||||
uniform bool mjc:flag:energy = 0 (
|
||||
displayName = "Energy Computation Toggle"
|
||||
doc = "Enables the computation of potential and kinetic energy (mjData.energy[0,1])."
|
||||
@@ -146,10 +150,6 @@ class "MjcSceneAPI" (
|
||||
displayName = "Contact Override Mechanism Toggle"
|
||||
doc = "Enables the contact override mechanism."
|
||||
)
|
||||
uniform bool mjc:flag:passive = 1 (
|
||||
displayName = "Passive Forces Toggle"
|
||||
doc = "Enables the simulation of joint and tendon spring-dampers, fluid dynamics forces, and custom passive forces."
|
||||
)
|
||||
uniform bool mjc:flag:refsafe = 1 (
|
||||
displayName = "Solver Reference Safety Mechanism Toggle"
|
||||
doc = "Enables a safety mechanism that prevents instabilities due to solref[0] being too small compared to the simulation timestep."
|
||||
@@ -158,6 +158,10 @@ class "MjcSceneAPI" (
|
||||
displayName = "Sensor Computations Toggle"
|
||||
doc = "Enables all computations related to sensors."
|
||||
)
|
||||
uniform bool mjc:flag:spring = 1 (
|
||||
displayName = "Spring Forces Toggle"
|
||||
doc = "Enables the simulation of joint and tendon springs."
|
||||
)
|
||||
uniform bool mjc:flag:warmstart = 1 (
|
||||
displayName = "Solver Warm-Starting Toggle"
|
||||
doc = "Enables warm-starting of the constraint solver, using the solution from the previous time step to initialize the iterative optimization."
|
||||
|
||||
@@ -417,14 +417,25 @@ UsdAttribute MjcPhysicsSceneAPI::CreateContactFlagAttr(
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsSceneAPI::GetPassiveFlagAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcFlagPassive);
|
||||
UsdAttribute MjcPhysicsSceneAPI::GetSpringFlagAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcFlagSpring);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsSceneAPI::CreatePassiveFlagAttr(
|
||||
UsdAttribute MjcPhysicsSceneAPI::CreateSpringFlagAttr(
|
||||
VtValue const& defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcFlagPassive, SdfValueTypeNames->Bool,
|
||||
MjcPhysicsTokens->mjcFlagSpring, SdfValueTypeNames->Bool,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsSceneAPI::GetDamperFlagAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcFlagDamper);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsSceneAPI::CreateDamperFlagAttr(
|
||||
VtValue const& defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcFlagDamper, SdfValueTypeNames->Bool,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
@@ -817,7 +828,8 @@ const TfTokenVector& MjcPhysicsSceneAPI::GetSchemaAttributeNames(
|
||||
MjcPhysicsTokens->mjcFlagFrictionloss,
|
||||
MjcPhysicsTokens->mjcFlagLimit,
|
||||
MjcPhysicsTokens->mjcFlagContact,
|
||||
MjcPhysicsTokens->mjcFlagPassive,
|
||||
MjcPhysicsTokens->mjcFlagSpring,
|
||||
MjcPhysicsTokens->mjcFlagDamper,
|
||||
MjcPhysicsTokens->mjcFlagGravity,
|
||||
MjcPhysicsTokens->mjcFlagClampctrl,
|
||||
MjcPhysicsTokens->mjcFlagWarmstart,
|
||||
|
||||
@@ -366,12 +366,20 @@ class "MjcSceneAPI"
|
||||
doc = """Enables collision detection and all standard computations related to contact constraints."""
|
||||
)
|
||||
|
||||
uniform bool mjc:flag:passive = True (
|
||||
uniform bool mjc:flag:spring = True (
|
||||
customData = {
|
||||
string apiName = "PassiveFlag"
|
||||
string apiName = "SpringFlag"
|
||||
}
|
||||
displayName = "Passive Forces Toggle"
|
||||
doc = """Enables the simulation of joint and tendon spring-dampers, fluid dynamics forces, and custom passive forces."""
|
||||
displayName = "Spring Forces Toggle"
|
||||
doc = """Enables the simulation of joint and tendon springs."""
|
||||
)
|
||||
|
||||
uniform bool mjc:flag:damper = True (
|
||||
customData = {
|
||||
string apiName = "DamperFlag"
|
||||
}
|
||||
displayName = "Damper Forces Toggle"
|
||||
doc = """Enables the simulation of joint and tendon dampers."""
|
||||
)
|
||||
|
||||
uniform bool mjc:flag:gravity = True (
|
||||
|
||||
@@ -79,6 +79,7 @@ MjcPhysicsTokensType::MjcPhysicsTokensType()
|
||||
mjcFlagClampctrl("mjc:flag:clampctrl", TfToken::Immortal),
|
||||
mjcFlagConstraint("mjc:flag:constraint", TfToken::Immortal),
|
||||
mjcFlagContact("mjc:flag:contact", TfToken::Immortal),
|
||||
mjcFlagDamper("mjc:flag:damper", TfToken::Immortal),
|
||||
mjcFlagEnergy("mjc:flag:energy", TfToken::Immortal),
|
||||
mjcFlagEquality("mjc:flag:equality", TfToken::Immortal),
|
||||
mjcFlagEulerdamp("mjc:flag:eulerdamp", TfToken::Immortal),
|
||||
@@ -93,9 +94,9 @@ MjcPhysicsTokensType::MjcPhysicsTokensType()
|
||||
mjcFlagMulticcd("mjc:flag:multiccd", TfToken::Immortal),
|
||||
mjcFlagNativeccd("mjc:flag:nativeccd", TfToken::Immortal),
|
||||
mjcFlagOverride("mjc:flag:override", TfToken::Immortal),
|
||||
mjcFlagPassive("mjc:flag:passive", TfToken::Immortal),
|
||||
mjcFlagRefsafe("mjc:flag:refsafe", TfToken::Immortal),
|
||||
mjcFlagSensor("mjc:flag:sensor", TfToken::Immortal),
|
||||
mjcFlagSpring("mjc:flag:spring", TfToken::Immortal),
|
||||
mjcFlagWarmstart("mjc:flag:warmstart", TfToken::Immortal),
|
||||
mjcForceLimited("mjc:forceLimited", TfToken::Immortal),
|
||||
mjcForceRangeMax("mjc:forceRange:max", TfToken::Immortal),
|
||||
@@ -242,6 +243,7 @@ MjcPhysicsTokensType::MjcPhysicsTokensType()
|
||||
mjcFlagClampctrl,
|
||||
mjcFlagConstraint,
|
||||
mjcFlagContact,
|
||||
mjcFlagDamper,
|
||||
mjcFlagEnergy,
|
||||
mjcFlagEquality,
|
||||
mjcFlagEulerdamp,
|
||||
@@ -256,9 +258,9 @@ MjcPhysicsTokensType::MjcPhysicsTokensType()
|
||||
mjcFlagMulticcd,
|
||||
mjcFlagNativeccd,
|
||||
mjcFlagOverride,
|
||||
mjcFlagPassive,
|
||||
mjcFlagRefsafe,
|
||||
mjcFlagSensor,
|
||||
mjcFlagSpring,
|
||||
mjcFlagWarmstart,
|
||||
mjcForceLimited,
|
||||
mjcForceRangeMax,
|
||||
|
||||
@@ -657,7 +657,8 @@ class ModelWriter {
|
||||
{MjcPhysicsTokens->mjcFlagFrictionloss, mjDSBL_FRICTIONLOSS},
|
||||
{MjcPhysicsTokens->mjcFlagLimit, mjDSBL_LIMIT},
|
||||
{MjcPhysicsTokens->mjcFlagContact, mjDSBL_CONTACT},
|
||||
{MjcPhysicsTokens->mjcFlagPassive, mjDSBL_PASSIVE},
|
||||
{MjcPhysicsTokens->mjcFlagSpring, mjDSBL_SPRING},
|
||||
{MjcPhysicsTokens->mjcFlagDamper, mjDSBL_DAMPER},
|
||||
{MjcPhysicsTokens->mjcFlagGravity, mjDSBL_GRAVITY},
|
||||
{MjcPhysicsTokens->mjcFlagClampctrl, mjDSBL_CLAMPCTRL},
|
||||
{MjcPhysicsTokens->mjcFlagWarmstart, mjDSBL_WARMSTART},
|
||||
|
||||
@@ -569,9 +569,13 @@ void ParseUsdPhysicsScene(mjSpec* spec,
|
||||
mjc_physics_scene.GetContactFlagAttr().Get(&contact_flag);
|
||||
spec->option.disableflags |= (!contact_flag ? mjDSBL_CONTACT : 0);
|
||||
|
||||
bool passive_flag;
|
||||
mjc_physics_scene.GetPassiveFlagAttr().Get(&passive_flag);
|
||||
spec->option.disableflags |= (!passive_flag ? mjDSBL_PASSIVE : 0);
|
||||
bool spring_flag;
|
||||
mjc_physics_scene.GetSpringFlagAttr().Get(&spring_flag);
|
||||
spec->option.disableflags |= (!spring_flag ? mjDSBL_SPRING : 0);
|
||||
|
||||
bool damper_flag;
|
||||
mjc_physics_scene.GetDamperFlagAttr().Get(&damper_flag);
|
||||
spec->option.disableflags |= (!damper_flag ? mjDSBL_DAMPER : 0);
|
||||
|
||||
bool gravity_flag;
|
||||
mjc_physics_scene.GetGravityFlagAttr().Get(&gravity_flag);
|
||||
|
||||
Reference in New Issue
Block a user