Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2009-08-12 12:03:18 +0000
committerStijn Buys <ingar@osirion.org>2009-08-12 12:03:18 +0000
commit183f0f0b905715f0d89b38174fdfd44641c1a79c (patch)
tree6cae553ac6284044002fb668c7991da27291825d /src/model/map.h
parent8bf8afe68ca15c61b0dea1f5c1ef5fc7186dca0f (diff)
src/model filenames cleanup, parse .map texture coordinates, early loading of material textures
Diffstat (limited to 'src/model/map.h')
-rw-r--r--src/model/map.h189
1 files changed, 0 insertions, 189 deletions
diff --git a/src/model/map.h b/src/model/map.h
deleted file mode 100644
index ed0b3e1..0000000
--- a/src/model/map.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- model/map.h
- This file is part of the Osirion project and is distributed under
- the terms of the GNU General Public License version 2
-*/
-
-#ifndef __INCLUDED_MODEL_MAPFILE_H__
-#define __INCLUDED_MODEL_MAPFILE_H__
-
-#include <string>
-#include <vector>
-
-#include "model/material.h"
-#include "model/model.h"
-#include "model/plane.h"
-#include "model/primitives.h"
-#include "filesystem/filestream.h"
-
-namespace model
-{
-
-/// class to parse the .map file structure and load geometry data into a model
-class MapFile
-{
-
-public:
- /**
- * @brief load a .map file into a Model
- * @param name name of the model to be loaded, without .map extension or maps/ prefix
- * If the file can not be read, load() returns the NULL-pointer
- */
- static Model *load(std::string const &name);
-
-private:
- MapFile();
- ~MapFile();
-
- /// tpye definition for a per-material list of Primitives
- typedef std::map<Material *, Primitives *> Materials;
-
- /// open the file for reading
- /** the filename will get the "maps/" prefix and ".map" suffix
- */
- bool open(std::string const & name);
-
- /// parse one line, returns false on end-of-file
- bool getline();
-
- /// current classname
- inline std::string classname() const
- {
- return classname_current;
- }
-
- /// current key
- inline std::string key() const
- {
- return key_current;
- }
-
- /// current value
- inline std::string value() const
- {
- return value_current;
- }
-
- /// true if the last read line contained a new classname
- bool got_classname() const;
-
- /// true if we are inside the requested class
- bool in_class(const char *name) {
- return (classname_current.compare(name) == 0);
- }
-
- /// true if the last read line contained a class closing bracket
- inline bool got_classend() const
- {
- return last_read_was_classend;
- }
-
- /// true if the last read line contained the closing bracket for the requested class
- bool got_classend(const char*) const;
-
- /// true if the last read line contained a new classname
- bool got_classname(const char*) const;
-
- /// true if the last read statement was a key=value pair
- inline bool got_key() const
- {
- return last_read_was_key;
- }
-
- bool got_key(const char * keylabel);
-
- /// check if the last read key=value pair matches keylabel and store the value in valuestring
- bool got_key_string(const char * keylabel, std::string & valuestring);
-
- /// check if the last read key=value pair matches keylabel and store the value in color
- bool got_key_color(const char * keylabel, math::Color & color);
-
- /// check if the last read key=value pair matches keylabel and store the value in f
- bool got_key_float(const char * keylabel, float & f);
-
- /// check if the last read key=value pair matches keylabel and store the value in f
- bool got_key_int(const char * keylabel, unsigned int & u);
-
- /// check if the last read key=value pair matches keylabel and store the value in valuestring
- bool got_key_angle(const char * keylabel, float & f);
-
- bool got_key_vector3f(const char * keylabel, math::Vector3f & v);
-
-
- /// return the number of lines read so far
- inline unsigned int line() const
- {
- return line_number;
- }
-
- /// return true of the map file is open for reading
- inline bool is_open()
- {
- return mapfile_ifs.is_open();
- }
-
- /// current filename
- inline std::string const & name() const
- {
- return mapfile_name;
- }
-
- /// close the file
- void close();
-
- /// generate triangles for one plane in the plane list
- void make_brushface(Plane *face);
-
- /// load parsed primitives into model worldspawn
- void load_worldspawn(Model *model);
-
- /// load parsed primitives into a FragmentGroup
- void load_fragmentgroup(Model *model, const FragmentGroup::Type class_type);
-
- /// clear the current list of per-material geometry
- void clear_materials();
-
- /// clear class bounding box
- void clear_bbox();
-
- void unknown_class() const;
-
- void unknown_key() const;
-
- void unknown_value() const;
-
- /// list of planes for the current brush
- std::vector<Plane *> planes;
-
-
- std::string classname_current;
- std::string key_current;
- std::string value_current;
-
- bool last_read_was_key;
- bool last_read_was_classname;
- bool last_read_was_classend;
-
- unsigned int map_brushes;
- unsigned int map_faces;
- unsigned int map_faces_detail;
-
- unsigned int parse_level;
- unsigned int line_number;
- filesystem::IFileStream mapfile_ifs;
- std::string mapfile_name;
-
- math::Vector3f class_maxbbox;
- math::Vector3f class_minbbox;
- math::Axis class_axis;
- float class_speed;
-
- math::Vector3f map_center;
- Materials map_materials;
-
- bool warning_q2brush;
-};
-
-}
-
-#endif // __INCLUDED_MODEL_MAPFILE_H__