mirror of
				https://github.com/isledecomp/isle.git
				synced 2025-10-26 01:44:19 +00:00 
			
		
		
		
	 7fc1f8019f
			
		
	
	7fc1f8019f
	
	
	
		
			
			* Implement ViewROI and base classes * Clean up Orientable header * Move tgl to tgl subdirectory, and use target_include_directories * Move classes to submodules * Fix some missed references * Fix/match UpdateWorldData * Renaming / removing MxTypes / refactoring * Consistent naming for Matrix * Adjust format action * Add Vector3/Vector4 to Data vector * Add TGL comment * Add a comment about Matrix4Impl * Add ROI comment --------- Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com> Co-authored-by: Christian Semmler <mail@csemmler.com>
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef VIEWROI_H
 | |
| #define VIEWROI_H
 | |
| 
 | |
| #include "../realtime/orientableroi.h"
 | |
| #include "../tgl/tgl.h"
 | |
| #include "viewlodlist.h"
 | |
| 
 | |
| /*
 | |
| 	ViewROI objects represent view objects, collections of view objects,
 | |
| 	etc. Basically, anything which can be placed in a scene and manipilated
 | |
| 	by the view manager is a ViewROI.
 | |
| */
 | |
| class ViewROI : public OrientableROI {
 | |
| public:
 | |
| 	inline ViewROI(Tgl::Renderer* pRenderer, ViewLODList* lodList)
 | |
| 	{
 | |
| 		SetLODList(lodList);
 | |
| 		geometry = pRenderer->CreateGroup();
 | |
| 	}
 | |
| 	inline ~ViewROI();
 | |
| 	inline void SetLODList(ViewLODList* lodList)
 | |
| 	{
 | |
| 		// ??? inherently type unsafe - kind of... because, now, ROI
 | |
| 		//     does not expose SetLODs() ...
 | |
| 		// solution: create pure virtual LODListBase* ROI::GetLODList()
 | |
| 		// and let derived ROI classes hold the LODList
 | |
| 
 | |
| 		if (m_lods) {
 | |
| 			reinterpret_cast<ViewLODList*>(m_lods)->Release();
 | |
| 		}
 | |
| 
 | |
| 		m_lods = lodList;
 | |
| 
 | |
| 		if (m_lods) {
 | |
| 			reinterpret_cast<ViewLODList*>(m_lods)->AddRef();
 | |
| 		}
 | |
| 	}
 | |
| 	virtual float IntrinsicImportance() const;
 | |
| 	virtual Tgl::Group* GetGeometry();
 | |
| 	virtual const Tgl::Group* GetGeometry() const;
 | |
| 
 | |
| protected:
 | |
| 	Tgl::Group* geometry;
 | |
| 	void UpdateWorldData(const Matrix4Data& parent2world);
 | |
| };
 | |
| 
 | |
| #endif // VIEWROI_H
 |