Blender V5.0
usd_reader_pointinstancer.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4#pragma once
5
6#include "usd_reader_geom.hh"
7
8#include <pxr/usd/usdGeom/pointInstancer.h>
9
10struct Collection;
11
12namespace blender::io::usd {
13
14/* Wraps the UsdGeomPointInstancer schema. Creates a Blender point cloud object. */
15
17 private:
18 pxr::UsdGeomPointInstancer point_instancer_prim_;
19
20 public:
21 USDPointInstancerReader(const pxr::UsdPrim &prim,
22 const USDImportParams &import_params,
23 const ImportSettings &settings)
24 : USDGeomReader(prim, import_params, settings), point_instancer_prim_(prim)
25 {
26 }
27
28 bool valid() const override
29 {
30 return bool(point_instancer_prim_);
31 }
32
33 void create_object(Main *bmain) override;
34
35 void read_object_data(Main *bmain, pxr::UsdTimeCode time) override;
36
37 /* This may be called by the cache modifier to update animated geometry. */
38 void read_geometry(bke::GeometrySet &geometry_set,
40 const char **r_err_str) override;
41
42 pxr::SdfPathVector proto_paths() const;
43
54 void set_collection(Main *bmain, Collection &coll);
55
56 /* Return true if the USD data may be time varying. */
57 bool is_animated() const;
58};
59
60} // namespace blender::io::usd
USDGeomReader(const pxr::UsdPrim &prim, const USDImportParams &import_params, const ImportSettings &settings)
USDPointInstancerReader(const pxr::UsdPrim &prim, const USDImportParams &import_params, const ImportSettings &settings)
void read_geometry(bke::GeometrySet &geometry_set, USDMeshReadParams params, const char **r_err_str) override
void set_collection(Main *bmain, Collection &coll)
void read_object_data(Main *bmain, pxr::UsdTimeCode time) override
const pxr::UsdPrim & prim() const
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]