mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-27 06:26:37 +00:00 
			
		
		
		
	Rendering manager can have multiple terrain, one for each queried worldspace Terrain::World has a worldspace member storage functions require a worldspace parameter.
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef GAME_RENDER_CELLBORDER
 | |
| #define GAME_RENDER_CELLBORDER
 | |
| 
 | |
| #include <map>
 | |
| #include <osg/Group>
 | |
| 
 | |
| #include <components/esm/refid.hpp>
 | |
| 
 | |
| namespace Resource
 | |
| {
 | |
|     class SceneManager;
 | |
| }
 | |
| 
 | |
| namespace Terrain
 | |
| {
 | |
|     class Storage;
 | |
|     class World;
 | |
| 
 | |
|     /**
 | |
|      * @Brief Handles the debug cell borders.
 | |
|      */
 | |
|     class CellBorder
 | |
|     {
 | |
|     public:
 | |
|         typedef std::map<std::pair<int, int>, osg::ref_ptr<osg::Node>> CellGrid;
 | |
| 
 | |
|         CellBorder(Terrain::World* world, osg::Group* root, int borderMask, Resource::SceneManager* sceneManager);
 | |
| 
 | |
|         void createCellBorderGeometry(int x, int y);
 | |
|         void destroyCellBorderGeometry(int x, int y);
 | |
| 
 | |
|         /**
 | |
|           Destroys the geometry for all borders.
 | |
|         */
 | |
|         void destroyCellBorderGeometry();
 | |
| 
 | |
|         static osg::ref_ptr<osg::Group> createBorderGeometry(float x, float y, float size, Storage* terrain,
 | |
|             Resource::SceneManager* sceneManager, int mask, ESM::RefId worldspace, float offset = 10.0,
 | |
|             osg::Vec4f color = { 1, 1, 0, 0 });
 | |
| 
 | |
|     protected:
 | |
|         Terrain::World* mWorld;
 | |
|         Resource::SceneManager* mSceneManager;
 | |
|         osg::Group* mRoot;
 | |
| 
 | |
|         CellGrid mCellBorderNodes;
 | |
|         int mBorderMask;
 | |
|     };
 | |
| }
 | |
| 
 | |
| #endif
 |