usdzFileFormat.h
1 //
2 // Copyright 2018 Pixar
3 //
4 // Licensed under the Apache License, Version 2.0 (the "Apache License")
5 // with the following modification; you may not use this file except in
6 // compliance with the Apache License and the following modification to it:
7 // Section 6. Trademarks. is deleted and replaced with:
8 //
9 // 6. Trademarks. This License does not grant permission to use the trade
10 // names, trademarks, service marks, or product names of the Licensor
11 // and its affiliates, except as required to comply with Section 4(c) of
12 // the License and to reproduce the content of the NOTICE file.
13 //
14 // You may obtain a copy of the Apache License at
15 //
16 // http://www.apache.org/licenses/LICENSE-2.0
17 //
18 // Unless required by applicable law or agreed to in writing, software
19 // distributed under the Apache License with the above modification is
20 // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 // KIND, either express or implied. See the Apache License for the specific
22 // language governing permissions and limitations under the Apache License.
23 //
24 #ifndef PXR_USD_USD_USDZ_FILE_FORMAT_H
25 #define PXR_USD_USD_USDZ_FILE_FORMAT_H
26 
27 #include "pxr/pxr.h"
28 #include "pxr/usd/usd/api.h"
29 #include "pxr/usd/sdf/fileFormat.h"
31 
32 #include <string>
33 
34 PXR_NAMESPACE_OPEN_SCOPE
35 
37 
38 #define USD_USDZ_FILE_FORMAT_TOKENS \
39  ((Id, "usdz")) \
40  ((Version, "1.0")) \
41  ((Target, "usd"))
42 
44  UsdUsdzFileFormatTokens, USD_API, USD_USDZ_FILE_FORMAT_TOKENS);
45 
50 {
51 public:
53 
54  USD_API
55  virtual bool IsPackage() const override;
56 
57  USD_API
58  virtual std::string GetPackageRootLayerPath(
59  const std::string& resolvedPath) const override;
60 
61  USD_API
62  virtual SdfAbstractDataRefPtr
63  InitData(const FileFormatArguments& args) const override;
64 
65  USD_API
66  virtual bool CanRead(const std::string &file) const override;
67 
68  USD_API
69  virtual bool Read(
70  SdfLayer* layer,
71  const std::string& resolvedPath,
72  bool metadataOnly) const override;
73 
74  USD_API
75  virtual bool WriteToFile(
76  const SdfLayer& layer,
77  const std::string& filePath,
78  const std::string& comment = std::string(),
79  const FileFormatArguments& args = FileFormatArguments()) const override;
80 
81  USD_API
82  virtual bool ReadFromString(
83  SdfLayer* layer,
84  const std::string& str) const override;
85 
86  USD_API
87  virtual bool WriteToString(
88  const SdfLayer& layer,
89  std::string* str,
90  const std::string& comment = std::string()) const override;
91 
92  USD_API
93  virtual bool WriteToStream(
94  const SdfSpecHandle &spec,
95  std::ostream& out,
96  size_t indent) const override;
97 
98 protected:
99  SDF_FILE_FORMAT_FACTORY_ACCESS;
100 
101 private:
103  virtual ~UsdUsdzFileFormat();
104 };
105 
106 PXR_NAMESPACE_CLOSE_SCOPE
107 
108 #endif // PXR_USD_USD_USDZ_FILE_FORMAT_H
A unit of scene description that you combine with other units of scene description to form a shot,...
Definition: layer.h:96
virtual USD_API bool CanRead(const std::string &file) const override
Returns true if file can be read by this format.
virtual USD_API bool IsPackage() const override
Returns true if this file format is a package containing other assets.
virtual USD_API bool WriteToStream(const SdfSpecHandle &spec, std::ostream &out, size_t indent) const override
Write the provided spec to out indented indent levels.
virtual USD_API bool WriteToString(const SdfLayer &layer, std::string *str, const std::string &comment=std::string()) const override
Writes the content in layer to the string str.
#define TF_DECLARE_WEAK_AND_REF_PTRS(type)
Define standard weak, ref, and vector pointer types.
Definition: declarePtrs.h:89
virtual USD_API std::string GetPackageRootLayerPath(const std::string &resolvedPath) const override
Returns the path of the "root" layer contained in the package layer at resolvedPath produced by this ...
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.
Definition: staticTokens.h:118
virtual USD_API SdfAbstractDataRefPtr InitData(const FileFormatArguments &args) const override
This method allows the file format to bind to whatever data container is appropriate.
std::map< std::string, std::string > FileFormatArguments
Type for specifying additional file format-specific arguments to the various API below.
Definition: fileFormat.h:119
virtual USD_API bool WriteToFile(const SdfLayer &layer, const std::string &filePath, const std::string &comment=std::string(), const FileFormatArguments &args=FileFormatArguments()) const override
Writes the content in layer into the file at filePath.
virtual USD_API bool ReadFromString(SdfLayer *layer, const std::string &str) const override
Reads data in the string str into the layer layer.
This file defines some macros that are useful for declaring and using static TfTokens.
File format for package .usdz files.
Base class for file format implementations.
Definition: fileFormat.h:64
virtual USD_API bool Read(SdfLayer *layer, const std::string &resolvedPath, bool metadataOnly) const override
Reads scene description from the asset specified by resolvedPath into the layer layer.