diff options
Diffstat (limited to 'source/blender/freestyle/intern/view_map/ViewMapIO.h')
-rw-r--r-- | source/blender/freestyle/intern/view_map/ViewMapIO.h | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/source/blender/freestyle/intern/view_map/ViewMapIO.h b/source/blender/freestyle/intern/view_map/ViewMapIO.h new file mode 100644 index 00000000000..44521f03317 --- /dev/null +++ b/source/blender/freestyle/intern/view_map/ViewMapIO.h @@ -0,0 +1,129 @@ +/* + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2010 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef __FREESTYLE_VIEW_MAP_IO_H__ +#define __FREESTYLE_VIEW_MAP_IO_H__ + +/** \file blender/freestyle/intern/view_map/ViewMapIO.h + * \ingroup freestyle + * \brief Functions to manage I/O for the view map + * \author Emmanuel Turquin + * \date 09/01/2003 + */ + +#include <fstream> +#include <string> + +#include "ViewMap.h" + +#include "../system/FreestyleConfig.h" +#include "../system/ProgressBar.h" + +namespace ViewMapIO { + +static const unsigned ZERO = UINT_MAX; + +LIB_VIEW_MAP_EXPORT +int load(istream& in, ViewMap *vm, ProgressBar *pb = NULL); + +LIB_VIEW_MAP_EXPORT +int save(ostream& out, ViewMap *vm, ProgressBar *pb = NULL); + +namespace Options { + +static const unsigned char FLOAT_VECTORS = 1; +static const unsigned char NO_OCCLUDERS = 2; + +LIB_VIEW_MAP_EXPORT +void setFlags(const unsigned char flags); + +LIB_VIEW_MAP_EXPORT +void addFlags(const unsigned char flags); + +LIB_VIEW_MAP_EXPORT +void rmFlags(const unsigned char flags); + +LIB_VIEW_MAP_EXPORT +unsigned char getFlags(); + +LIB_VIEW_MAP_EXPORT +void setModelsPath(const string& path); + +LIB_VIEW_MAP_EXPORT +string getModelsPath(); + +}; // End of namepace Options + +#ifdef IRIX + +namespace Internal { + +template <unsigned S> +ostream& write(ostream& out, const char *str) +{ + out.put(str[S - 1]); + return write<S - 1>(out, str); +} + +template<> +ostream& write<1>(ostream& out, const char *str) +{ + return out.put(str[0]); +} + +template<> +ostream& write<0>(ostream& out, const char*) +{ + return out; +} + +template <unsigned S> +istream& read(istream& in, char *str) +{ + in.get(str[S - 1]); + return read<S - 1>(in, str); +} + +template<> +istream& read<1>(istream& in, char *str) +{ + return in.get(str[0]); +} + +template<> +istream& read<0>(istream& in, char*) +{ + return in; +} + +} // End of namespace Internal + +#endif // IRIX + +} // End of namespace ViewMapIO + +#endif // __FREESTYLE_VIEW_MAP_IO_H__ |