/*============================================================================ MetaIO Copyright 2000-2010 Insight Software Consortium Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more information. ============================================================================*/ #include "metaTypes.h" #ifndef ITKMetaIO_METACOMMAND_H #define ITKMetaIO_METACOMMAND_H #ifdef _MSC_VER #pragma warning ( disable : 4786 ) #pragma warning ( disable : 4251 ) #endif #include #include #include #include #include #if (METAIO_USE_NAMESPACE) namespace METAIO_NAMESPACE { #endif class METAIO_EXPORT MetaCommand { public: typedef enum {DATA_NONE,DATA_IN,DATA_OUT} DataEnumType; typedef enum {INT,FLOAT,CHAR,STRING,LIST,FLAG,BOOL,IMAGE,ENUM,FILE} TypeEnumType; struct Field{ METAIO_STL::string name; METAIO_STL::string description; METAIO_STL::string value; TypeEnumType type; DataEnumType externaldata; METAIO_STL::string rangeMin; METAIO_STL::string rangeMax; bool required; bool userDefined; }; struct Option{ METAIO_STL::string name; METAIO_STL::string description; METAIO_STL::string tag; METAIO_STL::string longtag; METAIO_STL::string label; METAIO_STL::vector fields; bool required; bool userDefined; bool complete; }; struct ParameterGroup{ METAIO_STL::string name; METAIO_STL::string description; METAIO_STL::vector options; bool advanced; }; typedef METAIO_STL::vector