本文整理汇总了C++中UsdStagePtr::OverridePrim方法的典型用法代码示例。如果您正苦于以下问题:C++ UsdStagePtr::OverridePrim方法的具体用法?C++ UsdStagePtr::OverridePrim怎么用?C++ UsdStagePtr::OverridePrim使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UsdStagePtr
的用法示例。
在下文中一共展示了UsdStagePtr::OverridePrim方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: bool
bool GusdXformWrapper::
initUsdPrim(const UsdStagePtr& stage,
const SdfPath& path,
bool asOverride)
{
bool newPrim = true;
if( asOverride ) {
UsdPrim existing = stage->GetPrimAtPath( path );
if( existing ) {
// Note that we are creating a Xformable rather than a Xform.
// If we are writing an overlay and the ROP sees a geometry packed prim,
// we want to write just the xform. In that case we can use a xform
// wrapper to write the xform on any prim type.
m_usdXformForWrite = UsdGeomXformable(stage->OverridePrim( path ));
newPrim = false;
}
else {
m_usdXformForWrite = UsdGeomXform::Define( stage, path );
// Make sure our ancestors have proper types.
UsdPrim p = m_usdXformForWrite.GetPrim().GetParent();
while( p && p.GetTypeName().IsEmpty() ) {
UsdGeomXform::Define( stage, p.GetPath() );
p = p.GetParent();
}
}
}
else {
m_usdXformForWrite = UsdGeomXform::Define( stage, path );
}
if( !m_usdXformForWrite || !m_usdXformForWrite.GetPrim().IsValid() ) {
TF_WARN( "Unable to create %s xform '%s'.", newPrim ? "new" : "override", path.GetText() );
}
return bool(m_usdXformForWrite);
}
示例2: bool
bool GusdScopeWrapper::
initUsdPrim(const UsdStagePtr& stage,
const SdfPath& path,
bool asOverride)
{
bool newPrim = true;
if( asOverride ) {
UsdPrim existing = stage->GetPrimAtPath( path );
if( existing ) {
// Note that we are creating a Xformable rather than a Xform.
// If we are writing an overlay and the ROP sees a geometry packed prim,
// we want to write just the xform. In that case we can use a xform
// wrapper to write the xform on any prim type.
m_usdScopeForWrite = UsdGeomScope(stage->OverridePrim( path ));
newPrim = false;
}
else {
m_usdScopeForWrite = UsdGeomScope::Define( stage, path );
}
}
else {
m_usdScopeForWrite = UsdGeomScope::Define( stage, path );
}
if( !m_usdScopeForWrite || !m_usdScopeForWrite.GetPrim().IsValid() ) {
TF_WARN( "Unable to create %s scope '%s'.", newPrim ? "new" : "override", path.GetText() );
}
return bool(m_usdScopeForWrite);
}