/*============================================================================ 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 { std::string name; std::string description; std::string value; TypeEnumType type; DataEnumType externaldata; std::string rangeMin; std::string rangeMax; bool required; bool userDefined; }; struct Option { std::string name; std::string description; std::string tag; std::string longtag; std::string label; std::vector fields; bool required; bool userDefined; bool complete; }; struct ParameterGroup { std::string name; std::string description; std::vector options; bool advanced; }; typedef std::vector