HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GLTF_StandardMeshCodec.h
Go to the documentation of this file.
1 #ifndef __GLTF_StandardMeshCodec_h__
2 #define __GLTF_StandardMeshCodec_h__
3 
4 #include "GLTFZ_API.h"
5 #include "GLTF_Codec.h"
6 #include "GLTF_ImportOptions.h"
7 #include "GLTF_Types.h"
8 
9 #include <GA/GA_OffsetList.h>
10 
11 class GLTF_ErrorManager;
12 class GLTF_Reader;
13 class GLTF_Writer;
14 class GU_Detail;
15 
17 {
18 public:
19  explicit GLTF_StandardMeshCodec(const GLTF_ImportOptions& options)
20  : GLTF_Codec(options)
21  {
22 
23  }
24  explicit GLTF_StandardMeshCodec(const GLTF_ExportOptions& options)
25  : GLTF_Codec(options)
26  {
27 
28  }
30  const GLTF_ExportOptions& export_options)
31  : GLTF_Codec(import_options, export_options)
32  {
33 
34  }
35  virtual ~GLTF_StandardMeshCodec() override;
36 
37  static bool isExtensionSupported(const char* ext_name)
38  {
39  // This codec doesn't support any extensions, just features included in
40  // the core glTF specification.
41  return false;
42  };
43 
45  GU_Detail& gdp,
46  const GLTF_Index mesh_idx,
47  const GLTF_Index prim_idx,
48  const GLTF_MeshInfo& mesh_info,
49  GLTF_Reader& reader,
50  GLTF_ErrorManager& errors) override;
51 
53  GU_Detail&,
54  const GLTF_Index,
55  GLTF_Reader&,
57  GA_AttributeOwner) override
58  {
59  return false;
60  }
61 
63  const GU_Detail& gdp,
64  const GLTF_Index mesh_idx,
65  const GLTF_Index prim_idx,
66  GLTF_Writer& writer,
67  GLTF_ErrorManager& errors) override;
68 
69 private:
70 
71  bool importMeshTriPrimitive(
72  GU_Detail& gdp,
73  const GLTF_Index mesh_idx,
74  const GLTF_Index prim_idx,
75  const GLTF_MeshInfo& mesh_info,
76  GLTF_Reader& reader,
77  GLTF_ErrorManager& errors);
78 
79  bool importMeshPointsPrimitive(
80  GU_Detail& gdp,
81  const GLTF_Index mesh_idx,
82  const GLTF_Index prim_idx,
83  GLTF_Reader& reader,
84  GLTF_ErrorManager& errors);
85 
86  bool addPointAttribute(
87  GU_Detail &gdp,
88  GLTF_Reader &reader,
89  const GLTF_Index attrib_access_idx,
90  const char* attrib_name,
91  GLTF_ErrorManager& errors);
92 
93  bool exportMeshTriPrimitive(
94  const GU_Detail& gdp,
95  const GLTF_Index mesh_id,
96  const GLTF_Index prim_id,
97  GLTF_Writer& writer,
98  GLTF_ErrorManager& errors);
99 
100  bool exportMeshLinesPrimitive(
101  const GU_Detail& gdp,
102  const GLTF_Index mesh_id,
103  const GLTF_Index prim_id,
104  GLTF_Writer& writer,
105  GLTF_ErrorManager& errors);
106 
107  bool exportMeshPointsPrimitive(
108  const GU_Detail& gdp,
109  const GLTF_Index mesh_idx,
110  const GLTF_Index prim_idx,
111  GLTF_Writer& writer,
112  GLTF_ErrorManager& errors);
113 
114  bool exportPointAttributes(
115  const GU_Detail& gdp,
116  GLTF_Index mesh_id,
117  GLTF_Index prim_id,
118  GLTF_Writer& writer,
119  GLTF_ErrorManager& errors,
120  const GA_OffsetList* pt_list=nullptr);
121 
122 };
123 
124 #endif // __GLTF_StandardMeshCodec_h__
bool importMaterial(GU_Detail &, const GLTF_Index, GLTF_Reader &, GLTF_ErrorManager &, GA_AttributeOwner) override
virtual 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)=0
virtual bool exportMeshPrimitive(const GU_Detail &gdp, const GLTF_Index mesh_idx, const GLTF_Index prim_idx, GLTF_Writer &writer, GLTF_ErrorManager &errors)
Definition: GLTF_Codec.h:54
GLTF_StandardMeshCodec(const GLTF_ExportOptions &options)
std::size_t GLTF_Index
Definition: GLTF_Types.h:13
GLTF_StandardMeshCodec(const GLTF_ImportOptions &import_options, const GLTF_ExportOptions &export_options)
GA_AttributeOwner
Definition: GA_Types.h:35
static bool isExtensionSupported(const char *ext_name)
#define GLTFZ_API
Definition: GLTFZ_API.h:37
GLTF_StandardMeshCodec(const GLTF_ImportOptions &options)