37 using Alembic::Abc::ErrorHandler;
38 using Alembic::Abc::Exception;
39 using Alembic::Abc::IArchive;
40 using Alembic::Abc::kWrapExisting;
45 const std::vector<std::istream *> &input_streams)
48 Alembic::AbcCoreOgawa::ReadArchive archive_reader(input_streams);
50 return IArchive(archive_reader(filename), kWrapExisting, ErrorHandler::kThrowPolicy);
52 catch (
const Exception &
e) {
53 std::cerr <<
e.what() <<
'\n';
57 std::ifstream the_file(filename.c_str(), std::ios::in | std::ios::binary);
59 std::cerr <<
"Unable to open " << filename << std::endl;
61 else if (!the_file.read(header,
sizeof(header))) {
62 std::cerr <<
"Unable to read from " << filename << std::endl;
64 else if (strncmp(header + 1,
"HDF", 3) != 0) {
65 std::cerr << filename <<
" has an unknown file format, unable to read." << std::endl;
68 std::cerr << filename <<
" is in the obsolete HDF5 format, unable to read." << std::endl;
71 if (the_file.is_open()) {
87 std::wstring wstr(abs_filename_16);
88 m_infile.open(wstr.c_str(), std::ios::in | std::ios::binary);
91 m_infile.open(abs_filename, std::ios::in | std::ios::binary);
94 m_streams.push_back(&m_infile);
101 return m_archive.valid();
106 return m_archive.getTop();
const char * BKE_main_blendfile_path(const struct Main *bmain) ATTR_NONNULL()
bool BLI_path_abs(char *path, const char *basepath) ATTR_NONNULL()
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
ArchiveReader(struct Main *bmain, const char *filename)
Alembic::Abc::IObject getTop()
static IArchive open_archive(const std::string &filename, const std::vector< std::istream * > &input_streams)
#define UTF16_ENCODE(in8str)
#define UTF16_UN_ENCODE(in8str)