[Bf-blender-cvs] [013c963b7c2] usd-importer-T81257: USD importer: cleaned up USD API calls.
Michael A. Kowalski
noreply at git.blender.org
Tue Oct 20 01:41:20 CEST 2020
Commit: 013c963b7c2959b633f5ae6acfd2fa5819e8147c
Author: Michael A. Kowalski
Date: Mon Oct 19 19:39:22 2020 -0400
Branches: usd-importer-T81257
https://developer.blender.org/rB013c963b7c2959b633f5ae6acfd2fa5819e8147c
USD importer: cleaned up USD API calls.
===================================================================
M source/blender/io/usd/import/usd_import_util.cc
===================================================================
diff --git a/source/blender/io/usd/import/usd_import_util.cc b/source/blender/io/usd/import/usd_import_util.cc
index 6389fec0e28..cac7a5e271d 100644
--- a/source/blender/io/usd/import/usd_import_util.cc
+++ b/source/blender/io/usd/import/usd_import_util.cc
@@ -31,6 +31,7 @@
#include <pxr/usd/usd/primRange.h>
#include <pxr/usd/usd/stage.h>
#include <pxr/usd/usdGeom/mesh.h>
+#include <pxr/usd/usdGeom/scope.h>
#include <pxr/usd/usdGeom/tokens.h>
#include <pxr/usd/usdGeom/xformable.h>
@@ -92,10 +93,10 @@ static UsdObjectReader *get_reader(const pxr::UsdPrim &prim, const USDImporterCo
{
UsdObjectReader *result = nullptr;
- if (prim.GetTypeName() == usdtokens::mesh_type) {
+ if (prim.IsA<pxr::UsdGeomMesh>()) {
result = new UsdMeshReader(prim, context);
}
- else if (prim.GetTypeName() == usdtokens::xform_type) {
+ else if (prim.IsA<pxr::UsdGeomXform>()) {
result = new UsdTransformReader(prim, context);
}
@@ -347,7 +348,7 @@ void create_readers(const pxr::UsdPrim &prim,
return;
}
- bool is_root = prim.GetTypeName().IsEmpty();
+ bool is_root = prim.IsPseudoRoot();
std::vector<UsdObjectReader *> child_readers;
@@ -367,9 +368,7 @@ void create_readers(const pxr::UsdPrim &prim,
/* We prune away empty transform or scope hierarchies (we can add an import flag to make this
* behavior optional). Therefore, we skip this prim if it's an Xform or Scope and if
* it has no corresponding child readers. */
- if ((prim.GetTypeName() == usdtokens::xform_type ||
- prim.GetTypeName() == usdtokens::scope_type) &&
- child_readers.empty()) {
+ if ((prim.IsA<pxr::UsdGeomXform>() || prim.IsA<pxr::UsdGeomScope>()) && child_readers.empty()) {
return;
}
@@ -379,9 +378,9 @@ void create_readers(const pxr::UsdPrim &prim,
* can be merged will be expanded as we support more reader types
* (e.g., for lights, curves, etc.). */
- if (prim.GetTypeName() == usdtokens::xform_type && child_readers.size() == 1 &&
+ if (prim.IsA<pxr::UsdGeomXform>() && child_readers.size() == 1 &&
!child_readers.front()->merged_with_parent() &&
- child_readers.front()->prim().GetTypeName() == usdtokens::mesh_type) {
+ child_readers.front()->prim().IsA<pxr::UsdGeomMesh>()) {
child_readers.front()->set_merged_with_parent(true);
/* Don't create a reader for the Xform but, instead, return the grandchild
* that we merged. */
More information about the Bf-blender-cvs
mailing list