Blender  V3.3
usd_reader_nurbs.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Adapted from the Blender Alembic importer implementation.
3  * Modifications Copyright 2021 Tangent Animation. All rights reserved. */
4 #pragma once
5 
6 #include "usd.h"
7 #include "usd_reader_geom.h"
8 
9 #include "pxr/usd/usdGeom/nurbsCurves.h"
10 
11 struct Curve;
12 
13 namespace blender::io::usd {
14 
15 class USDNurbsReader : public USDGeomReader {
16  protected:
17  pxr::UsdGeomNurbsCurves curve_prim_;
19 
20  public:
21  USDNurbsReader(const pxr::UsdPrim &prim,
22  const USDImportParams &import_params,
23  const ImportSettings &settings)
24  : USDGeomReader(prim, import_params, settings), curve_prim_(prim), curve_(nullptr)
25  {
26  }
27 
28  bool valid() const override
29  {
30  return static_cast<bool>(curve_prim_);
31  }
32 
33  void create_object(Main *bmain, double motionSampleTime) override;
34  void read_object_data(Main *bmain, double motionSampleTime) override;
35 
36  void read_curve_sample(Curve *cu, double motionSampleTime);
37 
38  Mesh *read_mesh(struct Mesh *existing_mesh,
39  double motionSampleTime,
40  int read_flag,
41  const char **err_str) override;
42 };
43 
44 } // namespace blender::io::usd
USDNurbsReader(const pxr::UsdPrim &prim, const USDImportParams &import_params, const ImportSettings &settings)
Mesh * read_mesh(struct Mesh *existing_mesh, double motionSampleTime, int read_flag, const char **err_str) override
void read_object_data(Main *bmain, double motionSampleTime) override
pxr::UsdGeomNurbsCurves curve_prim_
void read_curve_sample(Curve *cu, double motionSampleTime)
void create_object(Main *bmain, double motionSampleTime) override
const pxr::UsdPrim & prim() const
Definition: BKE_main.h:121