Mercurial > fife-parpg
view engine/core/model/metamodel/grids/cellgrids.i @ 695:47d58c7a95d7
Fixed a bug in VFSDirectory that prevented absolute paths from being resolved.
* Modified the VFSDirectory constructor so that it now adds the drive root as the VFS root by default, instead of the current working directory.
* Added the current working directory to the VFS in Engine::preInit in addition to the default drive root.
* Reverted a change to EventManager::processMouseEvent which prevents GUIChan from grabbing mouse input. The fact that GUIChan grabs all mouse input will need to be addressed once the GUI code is modularized.
author | M. George Hansen <technopolitica@gmail.com> |
---|---|
date | Fri, 10 Jun 2011 23:36:14 -1000 |
parents | 90005975cdbb |
children |
line wrap: on
line source
/*************************************************************************** * Copyright (C) 2005-2008 by the FIFE team * * http://www.fifengine.de * * This file is part of FIFE. * * * * FIFE is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library 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 * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ %module fife %{ #include "model/metamodel/grids/cellgrid.h" #include "model/metamodel/grids/hexgrid.h" #include "model/metamodel/grids/squaregrid.h" %} %include "model/metamodel/modelcoords.i" namespace std { %template(ModelCoordinateVector) vector<FIFE::ModelCoordinate>; } namespace FIFE { class CellGrid { public: CellGrid(bool allow_diagonals=false); virtual ~CellGrid(); void getAccessibleCoordinates(const ModelCoordinate& curpos, std::vector<ModelCoordinate>& coordinates); virtual const std::string& getType() const = 0; virtual const std::string& getName() const = 0; virtual bool isAccessible(const ModelCoordinate& curpos, const ModelCoordinate& target) = 0; virtual float getAdjacentCost(const ModelCoordinate& curpos, const ModelCoordinate& target) = 0; virtual unsigned int getCellSideCount() const = 0; ExactModelCoordinate toMapCoordinates(const ModelCoordinate& layer_coords); virtual ExactModelCoordinate toMapCoordinates(const ExactModelCoordinate& layer_coords) = 0; virtual ModelCoordinate toLayerCoordinates(const ExactModelCoordinate& map_coord) = 0; virtual ExactModelCoordinate toExactLayerCoordinates(const ExactModelCoordinate& map_coord) = 0; virtual void getVertices(std::vector<ExactModelCoordinate>& vtx, const ModelCoordinate& cell) = 0; void setXShift(const double& xshift); const double getXShift() const; void setYShift(const double yshift); const double getYShift() const; void setXScale(const double scale); void setYScale(const double scale); const double getXScale() const; const double getYScale() const; void setRotation(const double rotation); const double getRotation() const; }; class HexGrid: public CellGrid { public: HexGrid(bool diagonals_accessible=false); virtual ~HexGrid(); bool isAccessible(const ModelCoordinate& curpos, const ModelCoordinate& target); const std::string& getType() const; const std::string& getName() const; float getAdjacentCost(const ModelCoordinate& curpos, const ModelCoordinate& target); unsigned int getCellSideCount() const { return 6; } ExactModelCoordinate toMapCoordinates(const ExactModelCoordinate& layer_coords); ModelCoordinate toLayerCoordinates(const ExactModelCoordinate& map_coord); ExactModelCoordinate toExactLayerCoordinates(const ExactModelCoordinate& map_coord); void getVertices(std::vector<ExactModelCoordinate>& vtx, const ModelCoordinate& cell); }; class SquareGrid: public CellGrid { public: SquareGrid(bool diagonals_accessible=false); virtual ~SquareGrid(); const std::string& getType() const; const std::string& getName() const; bool isAccessible(const ModelCoordinate& curpos, const ModelCoordinate& target); float getAdjacentCost(const ModelCoordinate& curpos, const ModelCoordinate& target); unsigned int getCellSideCount() const { return 4; } ExactModelCoordinate toMapCoordinates(const ExactModelCoordinate& layer_coords); ModelCoordinate toLayerCoordinates(const ExactModelCoordinate& map_coord); ExactModelCoordinate toExactLayerCoordinates(const ExactModelCoordinate& map_coord); void getVertices(std::vector<ExactModelCoordinate>& vtx, const ModelCoordinate& cell); }; }