PXR_NAMESPACE_OPEN_SCOPE PXRUSDMAYA_DEFINE_READER(UsdGeomMesh, args, context) { const UsdPrim& usdPrim = args.GetUsdPrim(); MObject parentNode = context->GetMayaNode(usdPrim.GetPath().GetParentPath(), true); return UsdMayaTranslatorMesh::Create( UsdGeomMesh(usdPrim), parentNode, args, context); }
void UsdImagingMeshAdapter::_GetSubdivTags(UsdPrim const& prim, SubdivTags* tags, UsdTimeCode time) { HD_TRACE_FUNCTION(); HF_MALLOC_TAG_FUNCTION(); if(!prim.IsA<UsdGeomMesh>()) return; TfToken token; VtIntArray iarray; VtFloatArray farray; _GetPtr(prim, UsdGeomTokens->interpolateBoundary, time, &token); tags->SetVertexInterpolationRule(token); auto meshPrim = UsdGeomMesh(prim); token = meshPrim.GetFaceVaryingLinearInterpolation(time); tags->SetFaceVaryingInterpolationRule(token); // XXX uncomment after fixing USD schema //_GetPtr(prim, UsdGeomTokens->creaseMethod, time, &token); //tags->SetCreaseMethod(token); _GetPtr(prim, UsdGeomTokens->triangleSubdivisionRule, time, &token); tags->SetTriangleSubdivision(token); _GetPtr(prim, UsdGeomTokens->creaseIndices, time, &iarray); tags->SetCreaseIndices(iarray); _GetPtr(prim, UsdGeomTokens->creaseLengths, time, &iarray); tags->SetCreaseLengths(iarray); _GetPtr(prim, UsdGeomTokens->creaseSharpnesses, time, &farray); tags->SetCreaseWeights(farray); _GetPtr(prim, UsdGeomTokens->cornerIndices, time, &iarray); tags->SetCornerIndices(iarray); _GetPtr(prim, UsdGeomTokens->cornerSharpnesses, time, &farray); tags->SetCornerWeights(farray); _GetPtr(prim, UsdGeomTokens->holeIndices, time, &iarray); tags->SetHoleIndices(iarray); }
PXRUSDKATANA_USDIN_PLUGIN_DEFINE(PxrUsdInCore_MeshOp, privateData, interface) { PxrUsdKatanaAttrMap attrs; const UsdPrim& prim = privateData.GetUsdPrim(); PxrUsdKatanaReadMesh( UsdGeomMesh(prim), privateData, attrs); attrs.toInterface(interface); if (TfGetEnvSetting(USD_KATANA_IMPORT_FACESET_API) and UsdShadeMaterial::HasMaterialFaceSet(prim)) { _CreateFaceSetsFromFaceSetAPI(prim, privateData, interface); } }