1 // 2 // Copyright 2016 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_PLUGIN_USD_ABC_ALEMBIC_FILE_FORMAT_H 25 #define PXR_USD_PLUGIN_USD_ABC_ALEMBIC_FILE_FORMAT_H 26 27 #include "pxr/pxr.h" 28 #include "pxr/usd/sdf/fileFormat.h" 29 #include "pxr/base/tf/staticTokens.h" 30 #include <iosfwd> 31 #include <string> 32 33 PXR_NAMESPACE_OPEN_SCOPE 34 35 #define USDABC_ALEMBIC_FILE_FORMAT_TOKENS \ 36 ((Id, "abc")) \ 37 ((Version, "1.0")) \ 38 ((Target, "usd")) 39 40 TF_DECLARE_PUBLIC_TOKENS(UsdAbcAlembicFileFormatTokens, USDABC_ALEMBIC_FILE_FORMAT_TOKENS); 41 42 TF_DECLARE_WEAK_AND_REF_PTRS(UsdAbcAlembicFileFormat); 43 44 /// \class UsdAbcAlembicFileFormat 45 /// 46 class UsdAbcAlembicFileFormat : public SdfFileFormat { 47 public: 48 // SdfFileFormat overrides 49 virtual SdfAbstractDataRefPtr InitData(const FileFormatArguments&) const override; 50 virtual bool CanRead(const std::string &file) const override; 51 virtual bool Read(SdfLayer* layer, 52 const std::string& resolvedPath, 53 bool metadataOnly) const override; 54 virtual bool WriteToFile(const SdfLayer& layer, 55 const std::string& filePath, 56 const std::string& comment = std::string(), 57 const FileFormatArguments& args = 58 FileFormatArguments()) const override; 59 virtual bool ReadFromString(SdfLayer* layer, 60 const std::string& str) const override; 61 virtual bool WriteToString(const SdfLayer& layer, 62 std::string* str, 63 const std::string& comment=std::string()) 64 const override; 65 virtual bool WriteToStream(const SdfSpecHandle &spec, 66 std::ostream& out, 67 size_t indent) const override; 68 69 protected: 70 SDF_FILE_FORMAT_FACTORY_ACCESS; 71 72 virtual ~UsdAbcAlembicFileFormat(); 73 74 UsdAbcAlembicFileFormat(); 75 76 private: 77 SdfFileFormatConstPtr _usda; 78 }; 79 80 PXR_NAMESPACE_CLOSE_SCOPE 81 82 #endif // PXR_USD_PLUGIN_USD_ABC_ALEMBIC_FILE_FORMAT_H 83