HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GLTF_MtlxMaterialCodec.h
Go to the documentation of this file.
1 #ifndef __GLTF_MtlxMaterialCodec_h__
2 #define __GLTF_MtlxMaterialCodec_h__
3 
4 #include "GLTFZ_API.h"
5 #include "GLTF_Codec.h"
6 #include "GLTF_ExportOptions.h"
7 #include "GLTF_ImportOptions.h"
8 #include "GLTF_Types.h"
9 
10 #include <UT/UT_Set.h>
11 #include <UT/UT_StringHolder.h>
12 
13 class GLTF_ErrorManager;
14 class GLTF_Reader;
15 class GLTF_Writer;
16 class GU_Detail;
17 class OP_Node;
18 
20 {
21 public:
22  explicit GLTF_MtlxMaterialCodec(const GLTF_ImportOptions& options)
23  : GLTF_Codec(options)
24  {
25 
26  }
27  explicit GLTF_MtlxMaterialCodec(const GLTF_ExportOptions& options)
28  : GLTF_Codec(options)
29  {
30 
31  }
32  virtual ~GLTF_MtlxMaterialCodec() override {}
33 
34  static bool isExtensionSupported(const char* ext_name)
35  {
36  static const UT_Set<UT_StringHolder> mySupportedExtensions{
37  "KHR_materials_emissive_strength",
38  "KHR_materials_ior",
39  "KHR_materials_specular",
40  "KHR_materials_transmission"
41  };
42  return mySupportedExtensions.contains(ext_name);
43  }
44 
46  GU_Detail& gdp,
47  const GLTF_Index mesh_idx,
48  const GLTF_Index prim_idx,
49  const GLTF_MeshInfo& mesh_info,
50  GLTF_Reader& reader,
51  GLTF_ErrorManager& errors) override
52  {
53  return false;
54  }
55 
56  bool importMaterial(
57  GU_Detail& gdp,
58  const GLTF_Index mat_idx,
59  GLTF_Reader& reader,
60  GLTF_ErrorManager& errors,
61  GA_AttributeOwner mat_attribs_owner=GA_ATTRIB_PRIMITIVE) override;
62 
63  bool exportMaterial(
64  const OP_Node* mat_node,
65  const GLTF_Index mat_id,
66  fpreal time,
67  const GLTF_MaterialInfo& mat_info,
68  GLTF_Writer& writer,
69  GLTF_ErrorManager& errors) override;
70 };
71 
72 #endif // __GLTF_MtlxMaterialCodec_h__
virtual ~GLTF_MtlxMaterialCodec() override
GT_API const UT_StringHolder time
static bool isExtensionSupported(const char *ext_name)
bool importMeshPrimitive(GU_Detail &gdp, const GLTF_Index mesh_idx, const GLTF_Index prim_idx, const GLTF_MeshInfo &mesh_info, GLTF_Reader &reader, GLTF_ErrorManager &errors) override
virtual bool exportMaterial(const OP_Node *mat_node, const GLTF_Index mat_id, fpreal time, const GLTF_MaterialInfo &mat_info, GLTF_Writer &writer, GLTF_ErrorManager &errors)
Definition: GLTF_Codec.h:64
GLTF_MtlxMaterialCodec(const GLTF_ImportOptions &options)
std::size_t GLTF_Index
Definition: GLTF_Types.h:13
GA_AttributeOwner
Definition: GA_Types.h:35
fpreal64 fpreal
Definition: SYS_Types.h:283
virtual bool importMaterial(GU_Detail &gdp, const GLTF_Index mat_idx, GLTF_Reader &reader, GLTF_ErrorManager &errors, GA_AttributeOwner mat_attribs_owner=GA_ATTRIB_PRIMITIVE)=0
GLTF_MtlxMaterialCodec(const GLTF_ExportOptions &options)
#define GLTFZ_API
Definition: GLTFZ_API.h:37
bool contains(const K &key) const
Definition: UT_Set.h:108