- struct Exception : public Mf::Exception
- {
- enum
- {
- BAD_IMAGE_FORMAT = 1024
- };
-
- explicit Exception(unsigned error) :
- Mf::Exception(error) {}
-
- void raise()
- {
- throw *this;
- }
-
- const char* what() const throw()
- {
- switch (code)
- {
- case BAD_IMAGE_FORMAT:
- return "inappropriate image format";
- }
- return Mf::Exception::what();
- }
- };
+ /**
+ * Calculate texture coordinates for a tile at a certain index. Tiles are
+ * indexed start with zero as the to-left tile and moving across, then down.
+ * @param index The tile index.
+ * @param coords An array of scalars where the texture coordinates will be
+ * stored after this call. The first coordinate (u,v) will be in the first
+ * two places and so on until all four coordinates are stored, therefore
+ * requiring enough room for an array of eight scalars. The winding of the
+ * coordinates is always counter-clockwise (the GL default).
+ * @return True if index is valid, false otherwise.
+ */
+
+ bool getTileCoords(TileIndex index, Scalar coords[8]) const;
+
+
+ /**
+ * This version let's you specify an orientation that will be reflected in
+ * the texture coordinates. This allows you to easily map a texture
+ * backwards or upside-down.
+ * @param what The orientation; can be flip, reverse, or flip_and_reverse.
+ * @return True if index is valid, false otherwise.
+ */
+
+ bool getTileCoords(TileIndex index, Scalar coords[8], Orientation what) const;
+
+
+ static std::string getPath(const std::string& name);