EVOLUTION-MANAGER
Edit File: Dimension.cpp
/********************************************************************** * * GEOS - Geometry Engine Open Source * http://geos.osgeo.org * * Copyright (C) 2001-2002 Vivid Solutions Inc. * * This is free software; you can redistribute and/or modify it under * the terms of the GNU Lesser General Public Licence as published * by the Free Software Foundation. * See the COPYING file for more information. * **********************************************************************/ #include <geos/geom/Dimension.h> #include <geos/util/IllegalArgumentException.h> #include <sstream> using namespace std; namespace geos { namespace geom { // geos::geom /** * Converts the dimension value to a dimension symbol, for example, <code>TRUE => 'T'</code>. * *@param dimensionValue a number that can be stored in the <code>IntersectionMatrix</code>. * Possible values are <code>{TRUE, FALSE, DONTCARE, 0, 1, 2}</code>. *@return a character for use in the string representation of * an <code>IntersectionMatrix</code>. Possible values are <code>{T, F, * , 0, 1, 2}</code>. */ char Dimension::toDimensionSymbol(int dimensionValue) { switch(dimensionValue) { case False: return 'F'; case True: return 'T'; case DONTCARE: return '*'; case P: return '0'; case L: return '1'; case A: return '2'; default: ostringstream s; s << "Unknown dimension value: " << dimensionValue << endl; throw util::IllegalArgumentException(s.str()); } } /** * Converts the dimension symbol to a dimension value, for example, <code>'*' => DONTCARE</code>. * *@param dimensionSymbol a character for use in the string representation of * an <code>IntersectionMatrix</code>. Possible values are <code>{T, F, * , 0, 1, 2}</code>. *@return a number that can be stored in the <code>IntersectionMatrix</code>. * Possible values are <code>{TRUE, FALSE, DONTCARE, 0, 1, 2}</code>. */ int Dimension::toDimensionValue(char dimensionSymbol) { switch(dimensionSymbol) { case 'F': case 'f': return False; case 'T': case 't': return True; case '*': return DONTCARE; case '0': return P; case '1': return L; case '2': return A; default: ostringstream s; s << "Unknown dimension symbol: " << dimensionSymbol << endl; throw util::IllegalArgumentException(s.str()); } } } // namespace geos::geom } // namespace geos