summaryrefslogtreecommitdiff
path: root/src/utility.h
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-02-05 14:55:16 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-02-05 14:55:16 +0200
commitea6740e9002839f79053cf9d8cd78eb3fcae1b47 (patch)
treedc8a6c8c0df0ef2d50a0874a74549ccd2022e874 /src/utility.h
parent7f2aa30bf29ed1c8b363bd948916d4c027b0192f (diff)
downloadminetest-ea6740e9002839f79053cf9d8cd78eb3fcae1b47.tar.gz
minetest-ea6740e9002839f79053cf9d8cd78eb3fcae1b47.tar.bz2
minetest-ea6740e9002839f79053cf9d8cd78eb3fcae1b47.zip
mapgen stuff
Diffstat (limited to 'src/utility.h')
-rw-r--r--src/utility.h177
1 files changed, 0 insertions, 177 deletions
diff --git a/src/utility.h b/src/utility.h
index a24b57d5d..ab5ecfcac 100644
--- a/src/utility.h
+++ b/src/utility.h
@@ -1483,183 +1483,6 @@ inline int myrand_range(int min, int max)
}
/*
- Some kind of a thing that stores attributes related to
- coordinate points
-*/
-
-struct Attribute
-{
- Attribute()
- {
- }
-
- Attribute(const std::string &value):
- m_value(value)
- {
- }
-
- Attribute(float value)
- {
- m_value = ftos(value);
- }
-
- void set(const std::string &value)
- {
- m_value = value;
- }
-
- std::string get()
- {
- return m_value;
- }
-
- bool getBool()
- {
- return is_yes(get());
- }
-
- float getFloat()
- {
- float f;
- std::istringstream vis(get());
- vis>>f;
- return f;
- }
-
- u16 getU16()
- {
- return stoi(get(), 0, 65535);
- }
-
- s16 getS16()
- {
- return stoi(get(), -32768, 32767);
- }
-
- s32 getS32()
- {
- return stoi(get());
- }
-
- std::string m_value;
-};
-
-class PointAttributeList
-{
- struct PointWithAttr
- {
- v2s16 p;
- Attribute attr;
- };
-
-public:
- ~PointAttributeList()
- {
- }
-
- Attribute getNearAttr(v2s16 p)
- {
- core::list<PointWithAttr>::Iterator
- nearest_i = m_points.end();
- s16 nearest_d = 32767;
- for(core::list<PointWithAttr>::Iterator
- i = m_points.begin();
- i != m_points.end(); i++)
- {
- PointWithAttr &pwa = *i;
- s16 d = pwa.p.getDistanceFrom(p);
- if(d < nearest_d)
- {
- nearest_i = i;
- nearest_d = d;
- }
- }
-
- if(nearest_i == m_points.end())
- Attribute();
-
- return nearest_i->attr;
- }
-
- Attribute getNearAttr(v3s16 p)
- {
- return getNearAttr(v2s16(p.X, p.Z));
- }
-
- bool empty()
- {
- return (m_points.size() == 0);
- }
-
- /*
- Take all points in range, or at least the nearest point,
- and interpolate the values as floats
- */
- float getInterpolatedFloat(v2s16 p);
-
- float getInterpolatedFloat(v3s16 p)
- {
- return getInterpolatedFloat(v2s16(p.X, p.Z));
- }
-
- void addPoint(v2s16 p, const Attribute &attr)
- {
- PointWithAttr pattr;
- pattr.p = p;
- pattr.attr = attr;
- m_points.push_back(pattr);
- }
-
- void addPoint(v3s16 p, const Attribute &attr)
- {
- addPoint(v2s16(p.X, p.Z), attr);
- }
-
-private:
- core::list<PointWithAttr> m_points;
-};
-
-/*
- Basically just a wrapper to core::map<PointAttributeList*>
-*/
-
-class PointAttributeDatabase
-{
-public:
- ~PointAttributeDatabase()
- {
- for(core::map<std::string, PointAttributeList*>::Iterator
- i = m_lists.getIterator();
- i.atEnd() == false; i++)
- {
- delete i.getNode()->getValue();
- }
- }
-
- PointAttributeList *getList(const std::string &name)
- {
- PointAttributeList *list = NULL;
-
- core::map<std::string, PointAttributeList*>::Node *n;
- n = m_lists.find(name);
-
- if(n == NULL)
- {
- list = new PointAttributeList();
- m_lists.insert(name, list);
- }
- else
- {
- list = n->getValue();
- }
-
- return list;
- }
-private:
- core::map<std::string, PointAttributeList*> m_lists;
-};
-
-/*
Miscellaneous functions
*/