You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openmw-tes3mp/apps/openmw/mwrender/pathgrid.hpp

67 lines
1.4 KiB
C++

#ifndef GAME_RENDER_MWSCENE_H
#define GAME_RENDER_MWSCENE_H
#include <utility>
#include <vector>
#include <string>
#include <map>
#include <osg/ref_ptr>
namespace ESM
{
struct Pathgrid;
}
namespace osg
{
class Group;
class Geometry;
}
namespace MWWorld
{
class Ptr;
class CellStore;
}
namespace MWRender
{
class Pathgrid
{
bool mPathgridEnabled;
void togglePathgrid();
typedef std::vector<const MWWorld::CellStore *> CellList;
CellList mActiveCells;
osg::ref_ptr<osg::Group> mRootNode;
osg::ref_ptr<osg::Group> mPathGridRoot;
typedef std::map<std::pair<int,int>, osg::ref_ptr<osg::Group> > ExteriorPathgridNodes;
ExteriorPathgridNodes mExteriorPathgridNodes;
osg::ref_ptr<osg::Group> mInteriorPathgridNode;
void enableCellPathgrid(const MWWorld::CellStore *store);
void disableCellPathgrid(const MWWorld::CellStore *store);
// path grid meshes
osg::ref_ptr<osg::Geometry> createPathgridLines(const ESM::Pathgrid *pathgrid);
osg::ref_ptr<osg::Geometry> createPathgridPoints(const ESM::Pathgrid *pathgrid);
public:
Pathgrid(osg::ref_ptr<osg::Group> root);
~Pathgrid();
bool toggleRenderMode (int mode);
void addCell(const MWWorld::CellStore* store);
void removeCell(const MWWorld::CellStore* store);
};
}
#endif