Rename MjcTransmission to MjcActuator in mjcPhysics schema.
PiperOrigin-RevId: 782352356 Change-Id: I4b74e3131b0fed925c506742c22038231f848909
This commit is contained in:
committed by
Copybara-Service
parent
3473e4e451
commit
11e695b4c2
@@ -172,6 +172,7 @@ target_include_directories(${MJCF_PLUGIN_TARGET_NAME} PRIVATE
|
||||
|
||||
add_library(${MJC_PHYSICS_PLUGIN_TARGET_NAME} SHARED)
|
||||
target_sources(${MJC_PHYSICS_PLUGIN_TARGET_NAME} PRIVATE
|
||||
mjcPhysics/actuator.cpp
|
||||
mjcPhysics/collisionAPI.cpp
|
||||
mjcPhysics/jointAPI.cpp
|
||||
mjcPhysics/keyframe.cpp
|
||||
@@ -179,7 +180,6 @@ target_sources(${MJC_PHYSICS_PLUGIN_TARGET_NAME} PRIVATE
|
||||
mjcPhysics/sceneAPI.cpp
|
||||
mjcPhysics/siteAPI.cpp
|
||||
mjcPhysics/tokens.cpp
|
||||
mjcPhysics/transmission.cpp
|
||||
)
|
||||
set_target_properties(${MJC_PHYSICS_PLUGIN_TARGET_NAME} PROPERTIES
|
||||
OUTPUT_NAME ${MJC_PHYSICS_PLUGIN_TARGET_NAME}
|
||||
|
||||
+76
-76
@@ -12,7 +12,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#include <mujoco/experimental/usd/mjcPhysics/transmission.h>
|
||||
#include <mujoco/experimental/usd/mjcPhysics/actuator.h>
|
||||
|
||||
#include <pxr/usd/sdf/assetPath.h>
|
||||
#include <pxr/usd/sdf/types.h>
|
||||
@@ -23,338 +23,338 @@ PXR_NAMESPACE_OPEN_SCOPE
|
||||
|
||||
// Register the schema with the TfType system.
|
||||
TF_REGISTRY_FUNCTION(TfType) {
|
||||
TfType::Define<MjcPhysicsTransmission, TfType::Bases<UsdTyped> >();
|
||||
TfType::Define<MjcPhysicsActuator, TfType::Bases<UsdTyped> >();
|
||||
|
||||
// Register the usd prim typename as an alias under UsdSchemaBase. This
|
||||
// enables one to call
|
||||
// TfType::Find<UsdSchemaBase>().FindDerivedByName("MjcTransmission")
|
||||
// to find TfType<MjcPhysicsTransmission>, which is how IsA queries are
|
||||
// TfType::Find<UsdSchemaBase>().FindDerivedByName("MjcActuator")
|
||||
// to find TfType<MjcPhysicsActuator>, which is how IsA queries are
|
||||
// answered.
|
||||
TfType::AddAlias<UsdSchemaBase, MjcPhysicsTransmission>("MjcTransmission");
|
||||
TfType::AddAlias<UsdSchemaBase, MjcPhysicsActuator>("MjcActuator");
|
||||
}
|
||||
|
||||
/* virtual */
|
||||
MjcPhysicsTransmission::~MjcPhysicsTransmission() {}
|
||||
MjcPhysicsActuator::~MjcPhysicsActuator() {}
|
||||
|
||||
/* static */
|
||||
MjcPhysicsTransmission MjcPhysicsTransmission::Get(const UsdStagePtr &stage,
|
||||
const SdfPath &path) {
|
||||
MjcPhysicsActuator MjcPhysicsActuator::Get(const UsdStagePtr &stage,
|
||||
const SdfPath &path) {
|
||||
if (!stage) {
|
||||
TF_CODING_ERROR("Invalid stage");
|
||||
return MjcPhysicsTransmission();
|
||||
return MjcPhysicsActuator();
|
||||
}
|
||||
return MjcPhysicsTransmission(stage->GetPrimAtPath(path));
|
||||
return MjcPhysicsActuator(stage->GetPrimAtPath(path));
|
||||
}
|
||||
|
||||
/* static */
|
||||
MjcPhysicsTransmission MjcPhysicsTransmission::Define(const UsdStagePtr &stage,
|
||||
const SdfPath &path) {
|
||||
static TfToken usdPrimTypeName("MjcTransmission");
|
||||
MjcPhysicsActuator MjcPhysicsActuator::Define(const UsdStagePtr &stage,
|
||||
const SdfPath &path) {
|
||||
static TfToken usdPrimTypeName("MjcActuator");
|
||||
if (!stage) {
|
||||
TF_CODING_ERROR("Invalid stage");
|
||||
return MjcPhysicsTransmission();
|
||||
return MjcPhysicsActuator();
|
||||
}
|
||||
return MjcPhysicsTransmission(stage->DefinePrim(path, usdPrimTypeName));
|
||||
return MjcPhysicsActuator(stage->DefinePrim(path, usdPrimTypeName));
|
||||
}
|
||||
|
||||
/* virtual */
|
||||
UsdSchemaKind MjcPhysicsTransmission::_GetSchemaKind() const {
|
||||
return MjcPhysicsTransmission::schemaKind;
|
||||
UsdSchemaKind MjcPhysicsActuator::_GetSchemaKind() const {
|
||||
return MjcPhysicsActuator::schemaKind;
|
||||
}
|
||||
|
||||
/* static */
|
||||
const TfType &MjcPhysicsTransmission::_GetStaticTfType() {
|
||||
static TfType tfType = TfType::Find<MjcPhysicsTransmission>();
|
||||
const TfType &MjcPhysicsActuator::_GetStaticTfType() {
|
||||
static TfType tfType = TfType::Find<MjcPhysicsActuator>();
|
||||
return tfType;
|
||||
}
|
||||
|
||||
/* static */
|
||||
bool MjcPhysicsTransmission::_IsTypedSchema() {
|
||||
bool MjcPhysicsActuator::_IsTypedSchema() {
|
||||
static bool isTyped = _GetStaticTfType().IsA<UsdTyped>();
|
||||
return isTyped;
|
||||
}
|
||||
|
||||
/* virtual */
|
||||
const TfType &MjcPhysicsTransmission::_GetTfType() const {
|
||||
const TfType &MjcPhysicsActuator::_GetTfType() const {
|
||||
return _GetStaticTfType();
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetGroupAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetGroupAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcGroup);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateGroupAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
UsdAttribute MjcPhysicsActuator::CreateGroupAttr(VtValue const &defaultValue,
|
||||
bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcGroup, SdfValueTypeNames->Int,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcCtrlLimitedAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcCtrlLimitedAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcCtrlLimited);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcCtrlLimitedAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcCtrlLimitedAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcCtrlLimited, SdfValueTypeNames->Token,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcForceLimitedAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcForceLimitedAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcForceLimited);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcForceLimitedAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcForceLimitedAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcForceLimited, SdfValueTypeNames->Token,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcActLimitedAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcActLimitedAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcActLimited);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcActLimitedAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcActLimitedAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcActLimited, SdfValueTypeNames->Token,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcCtrlRangeMinAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcCtrlRangeMinAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcCtrlRangeMin);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcCtrlRangeMinAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcCtrlRangeMinAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcCtrlRangeMin, SdfValueTypeNames->Double,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcCtrlRangeMaxAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcCtrlRangeMaxAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcCtrlRangeMax);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcCtrlRangeMaxAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcCtrlRangeMaxAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcCtrlRangeMax, SdfValueTypeNames->Double,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcForceRangeMinAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcForceRangeMinAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcForceRangeMin);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcForceRangeMinAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcForceRangeMinAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcForceRangeMin, SdfValueTypeNames->Double,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcForceRangeMaxAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcForceRangeMaxAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcForceRangeMax);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcForceRangeMaxAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcForceRangeMaxAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcForceRangeMax, SdfValueTypeNames->Double,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcActRangeMinAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcActRangeMinAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcActRangeMin);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcActRangeMinAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcActRangeMinAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcActRangeMin, SdfValueTypeNames->Double,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcActRangeMaxAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcActRangeMaxAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcActRangeMax);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcActRangeMaxAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcActRangeMaxAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcActRangeMax, SdfValueTypeNames->Double,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcLengthRangeMinAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcLengthRangeMinAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcLengthRangeMin);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcLengthRangeMinAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcLengthRangeMinAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcLengthRangeMin, SdfValueTypeNames->Double,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcLengthRangeMaxAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcLengthRangeMaxAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcLengthRangeMax);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcLengthRangeMaxAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcLengthRangeMaxAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcLengthRangeMax, SdfValueTypeNames->Double,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcGearAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcGearAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcGear);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcGearAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcGearAttr(VtValue const &defaultValue,
|
||||
bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcGear, SdfValueTypeNames->DoubleArray,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcCrankLengthAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcCrankLengthAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcCrankLength);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcCrankLengthAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcCrankLengthAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcCrankLength, SdfValueTypeNames->Double,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcJointInParentAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcJointInParentAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcJointInParent);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcJointInParentAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcJointInParentAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcJointInParent, SdfValueTypeNames->Bool,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcActDimAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcActDimAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcActDim);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcActDimAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcActDimAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcActDim, SdfValueTypeNames->Int,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcDynTypeAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcDynTypeAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcDynType);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcDynTypeAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcDynTypeAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcDynType, SdfValueTypeNames->Token,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcGainTypeAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcGainTypeAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcGainType);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcGainTypeAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcGainTypeAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcGainType, SdfValueTypeNames->Token,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcBiasTypeAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcBiasTypeAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcBiasType);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcBiasTypeAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcBiasTypeAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcBiasType, SdfValueTypeNames->Token,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcDynPrmAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcDynPrmAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcDynPrm);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcDynPrmAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcDynPrmAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcDynPrm, SdfValueTypeNames->DoubleArray,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcGainPrmAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcGainPrmAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcGainPrm);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcGainPrmAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcGainPrmAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcGainPrm, SdfValueTypeNames->DoubleArray,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcBiasPrmAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcBiasPrmAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcBiasPrm);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcBiasPrmAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcBiasPrmAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcBiasPrm, SdfValueTypeNames->DoubleArray,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::GetMjcActEarlyAttr() const {
|
||||
UsdAttribute MjcPhysicsActuator::GetMjcActEarlyAttr() const {
|
||||
return GetPrim().GetAttribute(MjcPhysicsTokens->mjcActEarly);
|
||||
}
|
||||
|
||||
UsdAttribute MjcPhysicsTransmission::CreateMjcActEarlyAttr(
|
||||
UsdAttribute MjcPhysicsActuator::CreateMjcActEarlyAttr(
|
||||
VtValue const &defaultValue, bool writeSparsely) const {
|
||||
return UsdSchemaBase::_CreateAttr(
|
||||
MjcPhysicsTokens->mjcActEarly, SdfValueTypeNames->Bool,
|
||||
/* custom = */ false, SdfVariabilityUniform, defaultValue, writeSparsely);
|
||||
}
|
||||
|
||||
UsdRelationship MjcPhysicsTransmission::GetMjcTargetRel() const {
|
||||
UsdRelationship MjcPhysicsActuator::GetMjcTargetRel() const {
|
||||
return GetPrim().GetRelationship(MjcPhysicsTokens->mjcTarget);
|
||||
}
|
||||
|
||||
UsdRelationship MjcPhysicsTransmission::CreateMjcTargetRel() const {
|
||||
UsdRelationship MjcPhysicsActuator::CreateMjcTargetRel() const {
|
||||
return GetPrim().CreateRelationship(MjcPhysicsTokens->mjcTarget,
|
||||
/* custom = */ false);
|
||||
}
|
||||
|
||||
UsdRelationship MjcPhysicsTransmission::GetMjcRefSiteRel() const {
|
||||
UsdRelationship MjcPhysicsActuator::GetMjcRefSiteRel() const {
|
||||
return GetPrim().GetRelationship(MjcPhysicsTokens->mjcRefSite);
|
||||
}
|
||||
|
||||
UsdRelationship MjcPhysicsTransmission::CreateMjcRefSiteRel() const {
|
||||
UsdRelationship MjcPhysicsActuator::CreateMjcRefSiteRel() const {
|
||||
return GetPrim().CreateRelationship(MjcPhysicsTokens->mjcRefSite,
|
||||
/* custom = */ false);
|
||||
}
|
||||
|
||||
UsdRelationship MjcPhysicsTransmission::GetMjcSliderSiteRel() const {
|
||||
UsdRelationship MjcPhysicsActuator::GetMjcSliderSiteRel() const {
|
||||
return GetPrim().GetRelationship(MjcPhysicsTokens->mjcSliderSite);
|
||||
}
|
||||
|
||||
UsdRelationship MjcPhysicsTransmission::CreateMjcSliderSiteRel() const {
|
||||
UsdRelationship MjcPhysicsActuator::CreateMjcSliderSiteRel() const {
|
||||
return GetPrim().CreateRelationship(MjcPhysicsTokens->mjcSliderSite,
|
||||
/* custom = */ false);
|
||||
}
|
||||
@@ -371,7 +371,7 @@ static inline TfTokenVector _ConcatenateAttributeNames(
|
||||
} // namespace
|
||||
|
||||
/*static*/
|
||||
const TfTokenVector &MjcPhysicsTransmission::GetSchemaAttributeNames(
|
||||
const TfTokenVector &MjcPhysicsActuator::GetSchemaAttributeNames(
|
||||
bool includeInherited) {
|
||||
static TfTokenVector localNames = {
|
||||
MjcPhysicsTokens->mjcGroup, MjcPhysicsTokens->mjcCtrlLimited,
|
||||
@@ -259,7 +259,7 @@ class "MjcMeshCollisionAPI" (
|
||||
)
|
||||
}
|
||||
|
||||
class MjcTransmission "MjcTransmission" (
|
||||
class MjcActuator "MjcActuator" (
|
||||
doc = "Known as actuator in MuJoCo, this prim represents force transmission to joints, bodies, or sites."
|
||||
)
|
||||
{
|
||||
|
||||
@@ -3,6 +3,16 @@
|
||||
{
|
||||
"Info": {
|
||||
"Types": {
|
||||
"MjcPhysicsActuator": {
|
||||
"alias": {
|
||||
"UsdSchemaBase": "MjcActuator"
|
||||
},
|
||||
"autoGenerated": true,
|
||||
"bases": [
|
||||
"UsdTyped"
|
||||
],
|
||||
"schemaKind": "concreteTyped"
|
||||
},
|
||||
"MjcPhysicsCollisionAPI": {
|
||||
"alias": {
|
||||
"UsdSchemaBase": "MjcCollisionAPI"
|
||||
@@ -62,16 +72,6 @@
|
||||
"UsdAPISchemaBase"
|
||||
],
|
||||
"schemaKind": "singleApplyAPI"
|
||||
},
|
||||
"MjcPhysicsTransmission": {
|
||||
"alias": {
|
||||
"UsdSchemaBase": "MjcTransmission"
|
||||
},
|
||||
"autoGenerated": true,
|
||||
"bases": [
|
||||
"UsdTyped"
|
||||
],
|
||||
"schemaKind": "concreteTyped"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -584,10 +584,10 @@ class "MjcMeshCollisionAPI"
|
||||
)
|
||||
}
|
||||
|
||||
class MjcTransmission "MjcTransmission"
|
||||
class MjcActuator "MjcActuator"
|
||||
(
|
||||
customData = {
|
||||
string className = "Transmission"
|
||||
string className = "Actuator"
|
||||
}
|
||||
doc = """Known as actuator in MuJoCo, this prim represents force transmission to joints, bodies, or sites."""
|
||||
|
||||
|
||||
@@ -146,14 +146,13 @@ MjcPhysicsTokensType::MjcPhysicsTokensType()
|
||||
sparse("sparse", TfToken::Immortal),
|
||||
true_("true", TfToken::Immortal),
|
||||
user("user", TfToken::Immortal),
|
||||
MjcActuator("MjcActuator", TfToken::Immortal),
|
||||
MjcCollisionAPI("MjcCollisionAPI", TfToken::Immortal),
|
||||
MjcImageableAPI("MjcImageableAPI", TfToken::Immortal),
|
||||
MjcJointAPI("MjcJointAPI", TfToken::Immortal),
|
||||
MjcKeyframe("MjcKeyframe", TfToken::Immortal),
|
||||
MjcMeshCollisionAPI("MjcMeshCollisionAPI", TfToken::Immortal),
|
||||
MjcSceneAPI("MjcSceneAPI", TfToken::Immortal),
|
||||
MjcSiteAPI("MjcSiteAPI", TfToken::Immortal),
|
||||
MjcTransmission("MjcTransmission", TfToken::Immortal),
|
||||
allTokens({affine,
|
||||
auto_,
|
||||
cg,
|
||||
@@ -280,14 +279,13 @@ MjcPhysicsTokensType::MjcPhysicsTokensType()
|
||||
sparse,
|
||||
true_,
|
||||
user,
|
||||
MjcActuator,
|
||||
MjcCollisionAPI,
|
||||
MjcImageableAPI,
|
||||
MjcJointAPI,
|
||||
MjcKeyframe,
|
||||
MjcMeshCollisionAPI,
|
||||
MjcSceneAPI,
|
||||
MjcSiteAPI,
|
||||
MjcTransmission}) {}
|
||||
MjcSiteAPI}) {}
|
||||
|
||||
TfStaticData<MjcPhysicsTokensType> MjcPhysicsTokens;
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ TF_DEFINE_PRIVATE_TOKENS(kTokens,
|
||||
((materialsScope, "Materials"))
|
||||
((previewSurface, "PreviewSurface"))
|
||||
((keyframesScope, "Keyframes"))
|
||||
((transmissionsScope, "Transmissions"))
|
||||
((actuatorsScope, "Actuators"))
|
||||
((keyframe, "Keyframe"))
|
||||
((surface, "PreviewSurface"))
|
||||
((world, "World"))
|
||||
@@ -211,7 +211,7 @@ class ModelWriter {
|
||||
WriteMaterials();
|
||||
WriteBodies();
|
||||
if (write_physics_) {
|
||||
WriteTransmissions();
|
||||
WriteActuators();
|
||||
}
|
||||
WriteKeyframes();
|
||||
}
|
||||
@@ -1051,13 +1051,13 @@ class ModelWriter {
|
||||
}
|
||||
}
|
||||
|
||||
void WriteTransmission(mjsActuator *actuator,
|
||||
void WriteActuator(mjsActuator *actuator,
|
||||
const pxr::SdfPath &parent_path) {
|
||||
pxr::TfToken valid_name = GetValidPrimName(*mjs_getName(actuator->element));
|
||||
pxr::SdfPath transmission_path = parent_path.AppendChild(valid_name);
|
||||
if (!data_->HasSpec(transmission_path)) {
|
||||
pxr::SdfPath actuator_path = parent_path.AppendChild(valid_name);
|
||||
if (!data_->HasSpec(actuator_path)) {
|
||||
CreatePrimSpec(data_, parent_path, valid_name,
|
||||
pxr::MjcPhysicsTokens->MjcTransmission);
|
||||
pxr::MjcPhysicsTokens->MjcActuator);
|
||||
}
|
||||
|
||||
pxr::SdfPath target_path;
|
||||
@@ -1078,18 +1078,18 @@ class ModelWriter {
|
||||
return;
|
||||
}
|
||||
|
||||
CreateRelationshipSpec(data_, transmission_path,
|
||||
CreateRelationshipSpec(data_, actuator_path,
|
||||
MjcPhysicsTokens->mjcTarget, target_path,
|
||||
pxr::SdfVariabilityUniform);
|
||||
|
||||
WriteUniformAttribute(transmission_path, pxr::SdfValueTypeNames->Int,
|
||||
WriteUniformAttribute(actuator_path, pxr::SdfValueTypeNames->Int,
|
||||
MjcPhysicsTokens->mjcGroup, actuator->group);
|
||||
|
||||
if (!actuator->refsite->empty()) {
|
||||
int refsite_id =
|
||||
mj_name2id(model_, mjOBJ_SITE, actuator->refsite->c_str());
|
||||
pxr::SdfPath refsite_path = site_paths_[refsite_id];
|
||||
CreateRelationshipSpec(data_, transmission_path,
|
||||
CreateRelationshipSpec(data_, actuator_path,
|
||||
MjcPhysicsTokens->mjcRefSite, refsite_path,
|
||||
pxr::SdfVariabilityUniform);
|
||||
}
|
||||
@@ -1098,7 +1098,7 @@ class ModelWriter {
|
||||
int slidersite_id =
|
||||
mj_name2id(model_, mjOBJ_SITE, actuator->slidersite->c_str());
|
||||
pxr::SdfPath slidersite_path = site_paths_[slidersite_id];
|
||||
CreateRelationshipSpec(data_, transmission_path,
|
||||
CreateRelationshipSpec(data_, actuator_path,
|
||||
MjcPhysicsTokens->mjcSliderSite, slidersite_path,
|
||||
pxr::SdfVariabilityUniform);
|
||||
}
|
||||
@@ -1115,7 +1115,7 @@ class ModelWriter {
|
||||
} else if (value == mjLIMITED_FALSE) {
|
||||
limited_token = pxr::MjcPhysicsTokens->false_;
|
||||
}
|
||||
WriteUniformAttribute(transmission_path, pxr::SdfValueTypeNames->Token,
|
||||
WriteUniformAttribute(actuator_path, pxr::SdfValueTypeNames->Token,
|
||||
token, limited_token);
|
||||
}
|
||||
|
||||
@@ -1132,18 +1132,18 @@ class ModelWriter {
|
||||
{MjcPhysicsTokens->mjcCrankLength, actuator->cranklength},
|
||||
};
|
||||
for (const auto &[token, value] : actuator_double_attributes) {
|
||||
WriteUniformAttribute(transmission_path, pxr::SdfValueTypeNames->Double,
|
||||
WriteUniformAttribute(actuator_path, pxr::SdfValueTypeNames->Double,
|
||||
token, value);
|
||||
}
|
||||
|
||||
WriteUniformAttribute(transmission_path, pxr::SdfValueTypeNames->Int,
|
||||
WriteUniformAttribute(actuator_path, pxr::SdfValueTypeNames->Int,
|
||||
MjcPhysicsTokens->mjcActDim, actuator->actdim);
|
||||
WriteUniformAttribute(transmission_path, pxr::SdfValueTypeNames->Bool,
|
||||
WriteUniformAttribute(actuator_path, pxr::SdfValueTypeNames->Bool,
|
||||
MjcPhysicsTokens->mjcActEarly,
|
||||
(bool)actuator->actearly);
|
||||
|
||||
WriteUniformAttribute(
|
||||
transmission_path, pxr::SdfValueTypeNames->DoubleArray,
|
||||
actuator_path, pxr::SdfValueTypeNames->DoubleArray,
|
||||
MjcPhysicsTokens->mjcGear,
|
||||
pxr::VtDoubleArray(actuator->gear, actuator->gear + 6));
|
||||
|
||||
@@ -1161,10 +1161,10 @@ class ModelWriter {
|
||||
} else if (actuator->dyntype == mjtDyn::mjDYN_USER) {
|
||||
dyn_type = MjcPhysicsTokens->user;
|
||||
}
|
||||
WriteUniformAttribute(transmission_path, pxr::SdfValueTypeNames->Token,
|
||||
WriteUniformAttribute(actuator_path, pxr::SdfValueTypeNames->Token,
|
||||
MjcPhysicsTokens->mjcDynType, dyn_type);
|
||||
WriteUniformAttribute(
|
||||
transmission_path, pxr::SdfValueTypeNames->DoubleArray,
|
||||
actuator_path, pxr::SdfValueTypeNames->DoubleArray,
|
||||
MjcPhysicsTokens->mjcDynPrm,
|
||||
pxr::VtDoubleArray(actuator->dynprm, actuator->dynprm + 10));
|
||||
|
||||
@@ -1178,10 +1178,10 @@ class ModelWriter {
|
||||
} else if (actuator->gaintype == mjtGain::mjGAIN_USER) {
|
||||
gain_type = MjcPhysicsTokens->user;
|
||||
}
|
||||
WriteUniformAttribute(transmission_path, pxr::SdfValueTypeNames->Token,
|
||||
WriteUniformAttribute(actuator_path, pxr::SdfValueTypeNames->Token,
|
||||
MjcPhysicsTokens->mjcGainType, gain_type);
|
||||
WriteUniformAttribute(
|
||||
transmission_path, pxr::SdfValueTypeNames->DoubleArray,
|
||||
actuator_path, pxr::SdfValueTypeNames->DoubleArray,
|
||||
MjcPhysicsTokens->mjcGainPrm,
|
||||
pxr::VtDoubleArray(actuator->gainprm, actuator->gainprm + 10));
|
||||
|
||||
@@ -1195,22 +1195,22 @@ class ModelWriter {
|
||||
} else if (actuator->biastype == mjtBias::mjBIAS_USER) {
|
||||
bias_type = MjcPhysicsTokens->user;
|
||||
}
|
||||
WriteUniformAttribute(transmission_path, pxr::SdfValueTypeNames->Token,
|
||||
WriteUniformAttribute(actuator_path, pxr::SdfValueTypeNames->Token,
|
||||
MjcPhysicsTokens->mjcBiasType, bias_type);
|
||||
WriteUniformAttribute(
|
||||
transmission_path, pxr::SdfValueTypeNames->DoubleArray,
|
||||
actuator_path, pxr::SdfValueTypeNames->DoubleArray,
|
||||
MjcPhysicsTokens->mjcBiasPrm,
|
||||
pxr::VtDoubleArray(actuator->biasprm, actuator->biasprm + 10));
|
||||
}
|
||||
|
||||
void WriteTransmissions() {
|
||||
void WriteActuators() {
|
||||
pxr::SdfPath scope_path =
|
||||
CreatePrimSpec(data_, body_paths_[kWorldIndex],
|
||||
kTokens->transmissionsScope, pxr::UsdGeomTokens->Scope);
|
||||
kTokens->actuatorsScope, pxr::UsdGeomTokens->Scope);
|
||||
mjsActuator *actuator =
|
||||
mjs_asActuator(mjs_firstElement(spec_, mjOBJ_ACTUATOR));
|
||||
while (actuator) {
|
||||
WriteTransmission(actuator, scope_path);
|
||||
WriteActuator(actuator, scope_path);
|
||||
actuator = mjs_asActuator(mjs_nextElement(spec_, actuator->element));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include <mujoco/experimental/usd/mjcPhysics/actuator.h>
|
||||
#include <mujoco/experimental/usd/mjcPhysics/collisionAPI.h>
|
||||
#include <mujoco/experimental/usd/mjcPhysics/jointAPI.h>
|
||||
#include <mujoco/experimental/usd/mjcPhysics/keyframe.h>
|
||||
@@ -28,7 +29,6 @@
|
||||
#include <mujoco/experimental/usd/mjcPhysics/sceneAPI.h>
|
||||
#include <mujoco/experimental/usd/mjcPhysics/siteAPI.h>
|
||||
#include <mujoco/experimental/usd/mjcPhysics/tokens.h>
|
||||
#include <mujoco/experimental/usd/mjcPhysics/transmission.h>
|
||||
#include <mujoco/experimental/usd/usd.h>
|
||||
#include <mujoco/experimental/usd/utils.h>
|
||||
#include <mujoco/mujoco.h>
|
||||
@@ -600,8 +600,8 @@ void ParseMjcPhysicsMeshCollisionAPI(
|
||||
}
|
||||
}
|
||||
|
||||
void ParseMjcPhysicsTransmission(mjSpec* spec,
|
||||
const pxr::MjcPhysicsTransmission& tran) {
|
||||
void ParseMjcPhysicsActuator(mjSpec* spec,
|
||||
const pxr::MjcPhysicsActuator& tran) {
|
||||
pxr::UsdPrim prim = tran.GetPrim();
|
||||
mjsActuator* mj_act = mjs_addActuator(spec, nullptr);
|
||||
mjs_setName(mj_act->element, prim.GetPath().GetAsString().c_str());
|
||||
@@ -614,12 +614,12 @@ void ParseMjcPhysicsTransmission(mjSpec* spec,
|
||||
pxr::SdfPathVector targets;
|
||||
tran.GetMjcTargetRel().GetTargets(&targets);
|
||||
if (targets.empty()) {
|
||||
mju_warning("Transmission %s has no target, skipping.",
|
||||
mju_warning("Actuator %s has no target, skipping.",
|
||||
prim.GetPath().GetAsString().c_str());
|
||||
return;
|
||||
}
|
||||
if (targets.size() > 1) {
|
||||
mju_warning("Transmission has more than one target, using the first.");
|
||||
mju_warning("Actuator has more than one target, using the first.");
|
||||
}
|
||||
mjs_setString(mj_act->target, targets[0].GetAsString().c_str());
|
||||
|
||||
@@ -632,7 +632,7 @@ void ParseMjcPhysicsTransmission(mjSpec* spec,
|
||||
} else if (target_prim.HasAPI<pxr::MjcPhysicsSiteAPI>()) {
|
||||
mj_act->trntype = slider_crank ? mjTRN_SLIDERCRANK : mjTRN_SITE;
|
||||
} else {
|
||||
mju_warning("Transmission %s has an invalid target type, skipping.",
|
||||
mju_warning("Actuator %s has an invalid target type, skipping.",
|
||||
prim.GetPath().GetAsString().c_str());
|
||||
return;
|
||||
}
|
||||
@@ -1456,8 +1456,8 @@ mjSpec* mj_parseUSDStage(const pxr::UsdStageRefPtr stage) {
|
||||
ParseMjcPhysicsKeyframe(spec, pxr::MjcPhysicsKeyframe(prim));
|
||||
|
||||
it.PruneChildren();
|
||||
} else if (prim.IsA<pxr::MjcPhysicsTransmission>()) {
|
||||
ParseMjcPhysicsTransmission(spec, pxr::MjcPhysicsTransmission(prim));
|
||||
} else if (prim.IsA<pxr::MjcPhysicsActuator>()) {
|
||||
ParseMjcPhysicsActuator(spec, pxr::MjcPhysicsActuator(prim));
|
||||
|
||||
it.PruneChildren();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user