Rev 1 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*defines Settings - class that stores all the settings used by bob_dom_bob andbob_dom_cut when loading/saving bob1/cut1 data*/#ifndef SETTINGS_INCLUDED#define SETTINGS_INCLUDED#include "../common/ext_list.h"class Settings{public:enum ErrorType{Error,Warning};enum ErrorCodes{E_BadConstantDeclaration,E_BadFormatDeclaration,E_SectionEmpty,W_LineIgnored,W_ConstantAlwaysZero};enum SwitchValue{on,off,notSet};struct ErrorMsg{ErrorType type;ErrorCodes code;char message[255];};private:typedef ext::list<ErrorMsg*> ErrorList;public:typedef ErrorList::iterator ErrorIterator;private:bool m_bOutputWarnings; // write warnings to filebool m_bRawMode; // don't convert to BOD formatbool m_bXtraPntInfo; // whether extra point info is outputed to BODbool m_bWriteX3Data; // whether to compute/write x3 vertex data and extra part datavoid error(ErrorType type, ErrorCodes code, const char *format, ...);public:ErrorList errors;bool loadINI(const char *pszFileName);bool outputWarnings() const { return m_bOutputWarnings; }void outputWarnings(bool val) { m_bOutputWarnings=val; }bool rawMode() const { return m_bRawMode; }void rawMode(bool val) { m_bRawMode=val; }bool extraPntInfo() const { return m_bXtraPntInfo; }void extraPntInfo(bool val) { m_bXtraPntInfo=val; }void writeX3Data(bool val) { m_bWriteX3Data=val; }bool writeX3Data() const { return m_bWriteX3Data; }void clearErrors(){for(ErrorIterator &it=errors.begin(); it!=errors.end(); ++it){delete *it;}errors.clear();}Settings() { outputWarnings(false); rawMode(false); extraPntInfo(true); }~Settings(){clearErrors();}};#endif // !defined(SETTINGS_INCLUDED)