20 pxr::UsdGeomMesh mesh_prim_;
27 pxr::VtIntArray face_indices_;
28 pxr::VtIntArray face_counts_;
29 pxr::VtVec3fArray positions_;
30 pxr::VtVec3fArray normals_;
32 pxr::TfToken normal_interpolation_;
33 pxr::TfToken orientation_;
34 bool is_left_handed_ =
false;
35 bool is_time_varying_ =
false;
40 bool is_initial_load_ =
false;
52 return bool(mesh_prim_);
60 const char **r_err_str)
override;
75 void process_normals_vertex_varying(
Mesh *mesh);
76 void process_normals_face_varying(
Mesh *mesh)
const;
78 void process_normals_uniform(
Mesh *mesh)
const;
79 void readFaceSetsSample(
Main *bmain,
Mesh *mesh, pxr::UsdTimeCode time);
80 void assign_facesets_to_material_indices(pxr::UsdTimeCode time,
84 bool read_faces(
Mesh *mesh)
const;
86 void read_vertex_creases(
Mesh *mesh, pxr::UsdTimeCode time);
87 void read_edge_creases(
Mesh *mesh, pxr::UsdTimeCode time);
88 void read_velocities(
Mesh *mesh, pxr::UsdTimeCode time);
92 pxr::UsdTimeCode time,
95 Mesh *read_mesh(
struct Mesh *existing_mesh,
97 const char **r_err_str);
101 pxr::UsdTimeCode time,
104 void read_uv_data_primvar(
Mesh *mesh,
105 const pxr::UsdGeomPrimvar &primvar,
106 const pxr::UsdTimeCode time);
112 std::optional<XformResult> get_local_usd_xform(pxr::UsdTimeCode time)
const override;