Show
Ignore:
Timestamp:
12/24/03 00:55:06 (10 years ago)
Author:
robert
Message:

Added support for a photo archive.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/examples/osgphotoalbum/osgphotoalbum.cpp

    r2574 r2578  
    1919#include <osgUtil/Optimizer> 
    2020 
     21#include <osgDB/FileNameUtils> 
     22 
    2123#include <osgText/Text> 
    2224 
     
    448450    for(int pos=1;pos<arguments.argc();++pos) 
    449451    { 
    450         if (arguments.isString(pos)) fileList.push_back(arguments[pos]); 
     452        if (arguments.isString(pos))  
     453        { 
     454            std::string filename(arguments[pos]); 
     455            if (osgDB::getLowerCaseFileExtension(filename)=="album") 
     456            { 
     457                PhotoArchive* photoArchive = PhotoArchive::open(filename); 
     458                if (photoArchive) 
     459                { 
     460                    g_ImageReaderWriter.get()->addPhotoArchive(photoArchive); 
     461                    photoArchive->getImageFileNameList(fileList); 
     462                } 
     463                 
     464            } 
     465            else 
     466            { 
     467                fileList.push_back(arguments[pos]); 
     468            } 
     469        } 
    451470    } 
    452471     
     
    653672    arguments.getApplicationUsage()->addCommandLineOption("-a","Enter auto advance of image pairs on start up."); 
    654673    arguments.getApplicationUsage()->addCommandLineOption("-h or --help","Display this information"); 
     674    arguments.getApplicationUsage()->addCommandLineOption("--create <filename>","Create an photo archive of specified files"); 
    655675     
    656676 
     
    684704    } 
    685705 
     706    std::string archiveName; 
     707    while (arguments.read("--create",archiveName)) {} 
     708     
    686709    // any option left unread are converted into errors to write out later. 
    687710    arguments.reportRemainingOptionsAsUnrecognized(); 
     
    700723    } 
    701724 
     725 
     726    if (!archiveName.empty()) 
     727    { 
     728        // archive name set to create 
     729        PhotoArchive::FileNameList fileNameList; 
     730        for(int i=1;i<arguments.argc();++i) 
     731        { 
     732            if (arguments.isString(i)) fileNameList.push_back(std::string(arguments[i])); 
     733        } 
     734         
     735        PhotoArchive::buildArchive(archiveName,fileNameList); 
     736         
     737        return 0; 
     738    } 
    702739 
    703740