CC_FILE_ERROR FileIOFilter::SaveToFile(ccHObject* entities, const char* filename, CC_FILE_TYPES fType) { if (!entities || !filename || fType == UNKNOWN_FILE) return CC_FERR_BAD_ARGUMENT; FileIOFilter* fio = CreateFilter(fType); if (!fio) return CC_FERR_WRONG_FILE_TYPE; //if the file name has no extension, we had a default one! QString completeFileName(filename); if (QFileInfo(filename).suffix().isEmpty()) completeFileName += QString(".%1").arg(CC_FILE_TYPE_DEFAULT_EXTENSION[fType]); CC_FILE_ERROR result = fio->saveToFile(entities, qPrintable(completeFileName)); delete fio; fio = 0; return result; }
CC_FILE_ERROR FileIOFilter::SaveToFile(ccHObject* entities, const char* filename, CC_FILE_TYPES fType) { if (!entities || !filename || fType == UNKNOWN_FILE) return CC_FERR_BAD_ARGUMENT; FileIOFilter* fio = NULL; switch (fType) { case BIN: fio = (FileIOFilter*)(new BinFilter()); break; case ASCII: fio = (FileIOFilter*)(new AsciiFilter()); break; case OBJ: fio = (FileIOFilter*)(new ObjFilter()); break; case PLY: fio = (FileIOFilter*)(new PlyFilter()); break; case PN: fio = (FileIOFilter*)(new PNFilter()); break; case PV: fio = (FileIOFilter*)(new PVFilter()); break; case MA: fio = (FileIOFilter*)(new MAFilter()); break; case DM_ASCII: fio = (FileIOFilter*)(new DepthMapFileFilter()); break; case VTK: fio = (FileIOFilter*)(new VTKFilter()); break; #ifdef CC_X3D_SUPPORT case X3D: fio = (FileIOFilter*)(new X3DFilter()); break; #endif #ifdef CC_E57_SUPPORT case E57: fio = (FileIOFilter*)(new E57Filter()); break; #endif #ifdef CC_PDMS_SUPPORT case PDMS: fio = (FileIOFilter*)(new PDMSFilter()); break; #endif #ifdef CC_LAS_SUPPORT case LAS: fio = (FileIOFilter*)(new LASFilter()); break; #endif #ifdef CC_ULT_SUPPORT case ULT: fio = (FileIOFilter*)(new UltFilter()); break; #endif case POV: //TODO //fio = (FileIOFilter*)(new PovFilter()); break; case SOI: case ICM: case BUNDLER: case UNKNOWN_FILE: //nothing to do break; } if (!fio) return CC_FERR_WRONG_FILE_TYPE; //if the file name has no extension, we had a default one! char completeFileName[1024]; strcpy(completeFileName,filename); int ppos = QString(filename).lastIndexOf(QChar('.')); if (ppos<0) { completeFileName[ppos]=0; sprintf(completeFileName,"%s.%s",completeFileName,CC_FILE_TYPE_DEFAULT_EXTENSION[fType]); } CC_FILE_ERROR result = fio->saveToFile(entities, completeFileName); delete fio; fio=0; return result; }
CC_FILE_ERROR FileIOFilter::SaveToFile(ccHObject* entities, const char* filename, CC_FILE_TYPES fType) { if (!entities || !filename || fType == UNKNOWN_FILE) return CC_FERR_BAD_ARGUMENT; FileIOFilter* fio = NULL; switch (fType) { case BIN: fio = new BinFilter(); break; case ASCII: fio = new AsciiFilter(); break; case OBJ: fio = new ObjFilter(); break; case PLY: fio = new PlyFilter(); break; case PN: fio = new PNFilter(); break; case PV: fio = new PVFilter(); break; case MA: fio = new MAFilter(); break; case DM_ASCII: fio = new DepthMapFileFilter(); break; case VTK: fio = new VTKFilter(); break; case STL: fio = new STLFilter(); break; case PCD: fio = new PCDFilter(); break; #ifdef CC_X3D_SUPPORT case X3D: fio = new X3DFilter(); break; #endif #ifdef CC_E57_SUPPORT case E57: fio = new E57Filter(); break; #endif #ifdef CC_PDMS_SUPPORT case PDMS: fio = new PDMSFilter(); break; #endif #ifdef CC_LAS_SUPPORT case LAS: fio = new LASFilter(); break; #endif case POV: //TODO //fio = new PovFilter(); break; case SOI: case ICM: case BUNDLER: case UNKNOWN_FILE: case FILE_TYPES_COUNT: //nothing to do break; } if (!fio) return CC_FERR_WRONG_FILE_TYPE; //if the file name has no extension, we had a default one! QString completeFileName(filename); if (QFileInfo(filename).suffix().isEmpty()) completeFileName += QString(".%1").arg(CC_FILE_TYPE_DEFAULT_EXTENSION[fType]); CC_FILE_ERROR result = fio->saveToFile(entities, qPrintable(completeFileName)); delete fio; fio=0; return result; }