[Bf-blender-cvs] [555a31dbca9] usd-importer-T81257-merge: USD Import: schema initialization and validation.
makowalski
noreply at git.blender.org
Fri Mar 12 09:30:36 CET 2021
Commit: 555a31dbca9a63c6e7bf6de492d09a5ea1ba6be5
Author: makowalski
Date: Fri Mar 12 03:23:20 2021 -0500
Branches: usd-importer-T81257-merge
https://developer.blender.org/rB555a31dbca9a63c6e7bf6de492d09a5ea1ba6be5
USD Import: schema initialization and validation.
Now initializing schemas in the constuctor initialization
lists of reader classes. Checking schemas to validate
readers. Additional, minor cleanup.
===================================================================
M source/blender/io/usd/intern/usd_reader_curve.cc
M source/blender/io/usd/intern/usd_reader_curve.h
M source/blender/io/usd/intern/usd_reader_geom.h
M source/blender/io/usd/intern/usd_reader_instance.cc
M source/blender/io/usd/intern/usd_reader_instance.h
M source/blender/io/usd/intern/usd_reader_light.h
M source/blender/io/usd/intern/usd_reader_mesh.cc
M source/blender/io/usd/intern/usd_reader_mesh.h
M source/blender/io/usd/intern/usd_reader_nurbs.h
M source/blender/io/usd/intern/usd_reader_prim.cc
M source/blender/io/usd/intern/usd_reader_prim.h
M source/blender/io/usd/intern/usd_reader_volume.cc
M source/blender/io/usd/intern/usd_reader_volume.h
M source/blender/io/usd/intern/usd_reader_xform.h
===================================================================
diff --git a/source/blender/io/usd/intern/usd_reader_curve.cc b/source/blender/io/usd/intern/usd_reader_curve.cc
index 1bc8568d64d..7746245ecfd 100644
--- a/source/blender/io/usd/intern/usd_reader_curve.cc
+++ b/source/blender/io/usd/intern/usd_reader_curve.cc
@@ -203,9 +203,9 @@ Mesh *USDCurvesReader::read_mesh(struct Mesh *existing_mesh,
float vel_scale,
const char **err_str)
{
- // TODO(makowalski): here and elsewhere, move curve_prim_ initialization to
- // the constructor.
- pxr::UsdGeomCurves curve_prim_(prim_);
+ if (!curve_prim_) {
+ return existing_mesh;
+ }
pxr::UsdAttribute widthsAttr = curve_prim_.GetWidthsAttr();
pxr::UsdAttribute vertexAttr = curve_prim_.GetCurveVertexCountsAttr();
diff --git a/source/blender/io/usd/intern/usd_reader_curve.h b/source/blender/io/usd/intern/usd_reader_curve.h
index 98939fb6f8b..eb74b167504 100644
--- a/source/blender/io/usd/intern/usd_reader_curve.h
+++ b/source/blender/io/usd/intern/usd_reader_curve.h
@@ -30,13 +30,18 @@ class USDCurvesReader : public USDGeomReader {
Curve *curve_;
public:
- USDCurvesReader(const pxr::UsdPrim &object,
+ USDCurvesReader(const pxr::UsdPrim &prim,
const USDImportParams &import_params,
const ImportSettings &settings)
- : USDGeomReader(object, import_params, settings)
+ : USDGeomReader(prim, import_params, settings), curve_prim_(prim), curve_(nullptr)
{
}
+ bool valid() const override
+ {
+ return static_cast<bool>(curve_prim_);
+ }
+
void create_object(Main *bmain, double motionSampleTime) override;
void read_object_data(Main *bmain, double motionSampleTime) override;
diff --git a/source/blender/io/usd/intern/usd_reader_geom.h b/source/blender/io/usd/intern/usd_reader_geom.h
index f0f06b5dc34..5398c5ee247 100644
--- a/source/blender/io/usd/intern/usd_reader_geom.h
+++ b/source/blender/io/usd/intern/usd_reader_geom.h
@@ -25,10 +25,10 @@ namespace blender::io::usd {
class USDGeomReader : public USDXformReader {
public:
- USDGeomReader(const pxr::UsdPrim &object,
+ USDGeomReader(const pxr::UsdPrim &prim,
const USDImportParams &import_params,
const ImportSettings &settings)
- : USDXformReader(object, import_params, settings)
+ : USDXformReader(prim, import_params, settings)
{
}
diff --git a/source/blender/io/usd/intern/usd_reader_instance.cc b/source/blender/io/usd/intern/usd_reader_instance.cc
index 0ccae738440..6c67c0a403b 100644
--- a/source/blender/io/usd/intern/usd_reader_instance.cc
+++ b/source/blender/io/usd/intern/usd_reader_instance.cc
@@ -26,10 +26,10 @@
namespace blender::io::usd {
-USDInstanceReader::USDInstanceReader(const pxr::UsdPrim &object,
+USDInstanceReader::USDInstanceReader(const pxr::UsdPrim &prim,
const USDImportParams &import_params,
const ImportSettings &settings)
- : USDXformReader(object, import_params, settings)
+ : USDXformReader(prim, import_params, settings)
{
}
diff --git a/source/blender/io/usd/intern/usd_reader_instance.h b/source/blender/io/usd/intern/usd_reader_instance.h
index 56154a685af..efc1c69a7dd 100644
--- a/source/blender/io/usd/intern/usd_reader_instance.h
+++ b/source/blender/io/usd/intern/usd_reader_instance.h
@@ -31,7 +31,7 @@ namespace blender::io::usd {
class USDInstanceReader : public USDXformReader {
public:
- USDInstanceReader(const pxr::UsdPrim &object,
+ USDInstanceReader(const pxr::UsdPrim &prim,
const USDImportParams &import_params,
const ImportSettings &settings);
diff --git a/source/blender/io/usd/intern/usd_reader_light.h b/source/blender/io/usd/intern/usd_reader_light.h
index 3aaf4bbc60c..f922f20a8e0 100644
--- a/source/blender/io/usd/intern/usd_reader_light.h
+++ b/source/blender/io/usd/intern/usd_reader_light.h
@@ -23,10 +23,10 @@ namespace blender::io::usd {
class USDLightReader : public USDXformReader {
public:
- USDLightReader(const pxr::UsdPrim &object,
+ USDLightReader(const pxr::UsdPrim &prim,
const USDImportParams &import_params,
const ImportSettings &settings)
- : USDXformReader(object, import_params, settings)
+ : USDXformReader(prim, import_params, settings)
{
}
diff --git a/source/blender/io/usd/intern/usd_reader_mesh.cc b/source/blender/io/usd/intern/usd_reader_mesh.cc
index d2d2651afd4..09a7dc160cf 100644
--- a/source/blender/io/usd/intern/usd_reader_mesh.cc
+++ b/source/blender/io/usd/intern/usd_reader_mesh.cc
@@ -185,10 +185,11 @@ static void *add_customdata_cb(Mesh *mesh, const char *name, int data_type)
namespace blender::io::usd {
-USDMeshReader::USDMeshReader(const pxr::UsdPrim &object,
+USDMeshReader::USDMeshReader(const pxr::UsdPrim &prim,
const USDImportParams &import_params,
const ImportSettings &settings)
- : USDGeomReader(object, import_params, settings),
+ : USDGeomReader(prim, import_params, settings),
+ mesh_prim_(prim),
is_left_handed_(false),
last_num_positions_(-1),
has_uvs_(false),
@@ -224,8 +225,9 @@ void USDMeshReader::read_object_data(Main *bmain, double motionSampleTime)
readFaceSetsSample(bmain, mesh, motionSampleTime);
- if (mesh_prim_.GetPointsAttr().ValueMightBeTimeVarying())
+ if (mesh_prim_.GetPointsAttr().ValueMightBeTimeVarying()) {
is_time_varying_ = true;
+ }
if (is_time_varying_) {
add_cache_modifier();
@@ -245,7 +247,7 @@ void USDMeshReader::read_object_data(Main *bmain, double motionSampleTime)
bool USDMeshReader::valid() const
{
- return mesh_prim_.GetPrim().IsValid();
+ return static_cast<bool>(mesh_prim_);
}
bool USDMeshReader::topology_changed(Mesh *existing_mesh, double motionSampleTime)
@@ -734,8 +736,6 @@ Mesh *USDMeshReader::read_mesh(Mesh *existing_mesh,
float vel_scale,
const char **err_str)
{
- mesh_prim_ = pxr::UsdGeomMesh(prim_);
-
if (!mesh_prim_) {
return existing_mesh;
}
diff --git a/source/blender/io/usd/intern/usd_reader_mesh.h b/source/blender/io/usd/intern/usd_reader_mesh.h
index 751032d55af..36ab6693d5c 100644
--- a/source/blender/io/usd/intern/usd_reader_mesh.h
+++ b/source/blender/io/usd/intern/usd_reader_mesh.h
@@ -48,7 +48,7 @@ class USDMeshReader : public USDGeomReader {
bool is_initial_load_;
public:
- USDMeshReader(const pxr::UsdPrim &object,
+ USDMeshReader(const pxr::UsdPrim &prim,
const USDImportParams &import_params,
const ImportSettings &settings);
diff --git a/source/blender/io/usd/intern/usd_reader_nurbs.h b/source/blender/io/usd/intern/usd_reader_nurbs.h
index b25419d925f..5b06ff52dde 100644
--- a/source/blender/io/usd/intern/usd_reader_nurbs.h
+++ b/source/blender/io/usd/intern/usd_reader_nurbs.h
@@ -30,13 +30,18 @@ class USDNurbsReader : public USDGeomReader {
Curve *curve_;
public:
- USDNurbsReader(const pxr::UsdPrim &object,
+ USDNurbsReader(const pxr::UsdPrim &prim,
const USDImportParams &import_params,
const ImportSettings &settings)
- : USDGeomReader(object, import_params, settings)
+ : USDGeomReader(prim, import_params, settings), curve_prim_(prim), curve_(nullptr)
{
}
+ bool valid() const override
+ {
+ return static_cast<bool>(curve_prim_);
+ }
+
void create_object(Main *bmain, double motionSampleTime) override;
void read_object_data(Main *bmain, double motionSampleTime) override;
diff --git a/source/blender/io/usd/intern/usd_reader_prim.cc b/source/blender/io/usd/intern/usd_reader_prim.cc
index 81bdfbc280a..87bc69f764b 100644
--- a/source/blender/io/usd/intern/usd_reader_prim.cc
+++ b/source/blender/io/usd/intern/usd_reader_prim.cc
@@ -38,13 +38,13 @@ extern "C" {
namespace blender::io::usd {
-USDPrimReader::USDPrimReader(const pxr::UsdPrim &object,
+USDPrimReader::USDPrimReader(const pxr::UsdPrim &prim,
const USDImportParams &import_params,
const ImportSettings &settings)
- : name_(object.GetName().GetString()),
- prim_path_(object.GetPrimPath().GetString()),
+ : name_(prim.GetName().GetString()),
+ prim_path_(prim.GetPrimPath().GetString()),
object_(nullptr),
- prim_(object),
+ prim_(prim),
import_params_(import_params),
parent_reader_(nullptr),
settings_(&settings),
diff --git a/source/blender/io/usd/intern/usd_reader_prim.h b/source/blender/io/usd/intern/usd_reader_prim.h
index 82ddf1f3c8f..74feaa575ee 100644
--- a/source/blender/io/usd/intern/usd_reader_prim.h
+++ b/source/blender/io/usd/intern/usd_reader_prim.h
@@ -91,7 +91,7 @@ class USDPrimReader {
int refcount_;
public:
- USDPrimReader(const pxr::UsdPrim &object,
+ USDPrimReader(const pxr::UsdPrim &prim,
const USDImportParams &import_params,
const ImportSettings &settings);
virtual ~USDPrimReader();
diff --git a/source/blender/io/usd/intern/usd_reader_volume.cc b/source/blender/io/usd/intern/usd_reader_volume.cc
index 6d0d43340e4..5c41404d9d4 100644
--- a/source/blender/io/usd/intern/usd_reader_volume.cc
+++ b/source/blender/io/usd/intern/usd_reader_volume.cc
@@ -67,8 +67,6 @@ void USDVolumeReader::create_object(Main *bmain, double motionSampleTime)
void USDVolumeReader::read_object_data(Main *bmain, double motionSampleTime)
{
- volume_ = pxr::UsdVolVolume(prim_);
-
if (!volume_) {
return;
}
diff --git a/source/blender/io/usd/intern/usd_reader_volume.h b/source/blender/io/usd/intern/usd_reader_volume.h
index 1b877014f8f..b12cf66e04c 100644
--- a/source/blender/io/usd/intern/usd_reader_volume.h
+++ b/source/blender/io/usd/intern/usd_reader_volume.h
@@ -27,13 +27,18 @@ class USDVolumeReader : public USDXformReader {
pxr::UsdVolVolume volume_;
public:
- USDVolumeReader(const pxr::UsdPrim &object,
+ USDVolumeReader(const pxr::UsdPrim &prim,
const USDImportParams &import_params,
const ImportSetti
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list