Blender V4.3
usd_writer_curves.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2022 Blender Authors. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4#pragma once
5
7
8#include <pxr/usd/usdGeom/basisCurves.h>
9#include <pxr/usd/usdGeom/curves.h>
10#include <pxr/usd/usdGeom/nurbsCurves.h>
11
12namespace blender::bke {
13class AttributeIter;
14class CurvesGeometry;
15} // namespace blender::bke
16
17namespace blender::io::usd {
18
19/* Writer for writing Curves data as USD curves. */
20class USDCurvesWriter final : public USDAbstractWriter {
21 public:
23 ~USDCurvesWriter() final = default;
24
25 protected:
26 virtual void do_write(HierarchyContext &context) override;
27 void assign_materials(const HierarchyContext &context, const pxr::UsdGeomCurves &usd_curves);
28
29 private:
30 int8_t first_frame_curve_type = -1;
31 pxr::UsdGeomBasisCurves DefineUsdGeomBasisCurves(pxr::VtValue curve_basis,
32 bool cyclic,
33 bool cubic) const;
34
35 void set_writer_attributes(pxr::UsdGeomCurves &usd_curves,
36 const pxr::VtArray<pxr::GfVec3f> &verts,
37 const pxr::VtIntArray &control_point_counts,
38 const pxr::VtArray<float> &widths,
39 const pxr::UsdTimeCode timecode,
40 const pxr::TfToken interpolation);
41
42 void set_writer_attributes_for_nurbs(const pxr::UsdGeomNurbsCurves &usd_nurbs_curves,
43 const pxr::VtArray<double> &knots,
44 const pxr::VtArray<int> &orders,
45 const pxr::UsdTimeCode timecode);
46
47 void write_generic_data(const bke::CurvesGeometry &curves,
48 const bke::AttributeIter &attr,
49 const pxr::UsdGeomCurves &usd_curves);
50
51 void write_uv_data(const bke::AttributeIter &attr, const pxr::UsdGeomCurves &usd_curves);
52
53 void write_custom_data(const blender::bke::CurvesGeometry &curves,
54 const pxr::UsdGeomCurves &usd_curves);
55};
56
57} // namespace blender::io::usd
virtual void do_write(HierarchyContext &context) override
void assign_materials(const HierarchyContext &context, const pxr::UsdGeomCurves &usd_curves)
USDCurvesWriter(const USDExporterContext &ctx)
static float verts[][3]
signed char int8_t
Definition stdint.h:75
bool override
Definition wm_files.cc:1167