asciiToBinary.cpp
#include <maya/MStatus.h>
#include <maya/MString.h>
#include <maya/MFileIO.h>
#include <maya/MLibrary.h>
#include <maya/MIOStream.h>
#include <string.h>
const char* usage = "usage: [-h/help] asciiToBinary fileName1 fileName2 ...\n\
each file will be loaded, the filename will be checked for an\n\
extension. If one is found it will be change to .mb, otherwise a\n\
.mb will be appended to the file name. The scene will then be\n\
written out to this new filename in Maya Binary format.\n";
int main(int argc, char **argv)
{
MStatus stat;
argc--, argv++;
if (argc == 0) {
cerr << usage;
return(1);
}
for (; argc && argv[0][0] == '-'; argc--, argv++) {
if (!strcmp(argv[0], "-h") || !strcmp(argv[0], "-help")) {
cerr << usage;
return(1);
}
if (argv[0][0] == '-') {
cerr << usage;
return(1);
}
}
stat = MLibrary::initialize (argv[0]);
if (!stat) {
stat.perror("MLibrary::initialize");
return 1;
}
for (; argc; argc--, argv++) {
MString fileName(argv[0]);
MString fileType;
MFileIO::newFile(true);
stat = MFileIO::open(fileName);
if ( !stat ) {
stat.perror(fileName.asChar());
continue;
}
fileType = MFileIO::fileType();
if (fileType == MString("mayaBinary")) {
cerr << fileName << ": already in mayaBinary format\n";
continue;
}
MString newFile;
int loc = fileName.rindex('.');
if (loc == -1) {
newFile = fileName;
} else {
newFile = fileName.substring(0, loc-1);
}
newFile += ".mb";
stat = MFileIO::saveAs(newFile, "mayaBinary");
if (stat)
cerr << fileName
<< ": resaved as "
<< MFileIO::currentFile()
<< endl;
else
stat.perror(newFile.asChar());
}
MLibrary::cleanup();
return 0;
}