コード例 #1
0
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;
}
コード例 #2
0
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;
}
コード例 #3
0
ファイル: FileIOFilter.cpp プロジェクト: vivzqs/trunk
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;
}