Blender  V3.3
usd_writer_abstract.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2019 Blender Foundation. All rights reserved. */
3 #pragma once
4 
6 #include "usd_exporter_context.h"
7 
8 #include <pxr/usd/sdf/path.h>
9 #include <pxr/usd/usd/stage.h>
10 #include <pxr/usd/usdShade/material.h>
11 #include <pxr/usd/usdUtils/sparseValueWriter.h>
12 
13 #include <vector>
14 
15 #include "DEG_depsgraph_query.h"
16 
17 #include "DNA_material_types.h"
18 
19 struct Material;
20 
21 namespace blender::io::usd {
22 
25 
27  protected:
29  pxr::UsdUtilsSparseValueWriter usd_value_writer_;
30 
33 
34  public:
35  USDAbstractWriter(const USDExporterContext &usd_export_context);
36 
37  virtual void write(HierarchyContext &context) override;
38 
48  virtual bool is_supported(const HierarchyContext *context) const;
49 
50  const pxr::SdfPath &usd_path() const;
51 
52  protected:
53  virtual void do_write(HierarchyContext &context) = 0;
54  std::string get_export_file_path() const;
55  pxr::UsdTimeCode get_export_time_code() const;
56 
57  pxr::UsdShadeMaterial ensure_usd_material(const HierarchyContext &context, Material *material);
58 
60  const pxr::UsdTimeCode timecode,
61  pxr::UsdGeomImageable &usd_geometry);
62 
69  virtual bool mark_as_instance(const HierarchyContext &context, const pxr::UsdPrim &prim);
70 };
71 
72 } // namespace blender::io::usd
pxr::UsdShadeMaterial ensure_usd_material(const HierarchyContext &context, Material *material)
virtual void do_write(HierarchyContext &context)=0
const pxr::SdfPath & usd_path() const
void write_visibility(const HierarchyContext &context, const pxr::UsdTimeCode timecode, pxr::UsdGeomImageable &usd_geometry)
virtual bool mark_as_instance(const HierarchyContext &context, const pxr::UsdPrim &prim)
pxr::UsdTimeCode get_export_time_code() const
pxr::UsdUtilsSparseValueWriter usd_value_writer_
USDAbstractWriter(const USDExporterContext &usd_export_context)
virtual void write(HierarchyContext &context) override
virtual bool is_supported(const HierarchyContext *context) const
const USDExporterContext usd_export_context_
Material material