mirror of
				https://github.com/isledecomp/isle.git
				synced 2025-10-26 01:44:19 +00:00 
			
		
		
		
	 4878727393
			
		
	
	4878727393
	
	
	
		
			
			* some educated guesses for unknown view manager names * Formatting * Pin pylint version * Use snake case for consistency (limited to this class) --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef VIEWMANAGER_H
 | |
| #define VIEWMANAGER_H
 | |
| 
 | |
| #include "decomp.h"
 | |
| #include "realtime/realtimeview.h"
 | |
| #include "viewroi.h"
 | |
| 
 | |
| #include <d3drm.h>
 | |
| 
 | |
| // VTABLE: LEGO1 0x100dbd88
 | |
| // SIZE 0x1bc
 | |
| class ViewManager {
 | |
| public:
 | |
| 	enum Flags {
 | |
| 		c_bit1 = 0x01,
 | |
| 		c_bit2 = 0x02,
 | |
| 		c_bit3 = 0x04,
 | |
| 		c_bit4 = 0x08
 | |
| 	};
 | |
| 
 | |
| 	ViewManager(Tgl::Renderer* pRenderer, Tgl::Group* scene, const OrientableROI* point_of_view);
 | |
| 	virtual ~ViewManager();
 | |
| 
 | |
| 	void Remove(ViewROI* p_roi);
 | |
| 	void RemoveAll(ViewROI* p_roi);
 | |
| 	unsigned int IsBoundingBoxInFrustum(const BoundingBox& p_bounding_box);
 | |
| 	void UpdateROIDetailBasedOnLOD(ViewROI* p_roi, int p_und);
 | |
| 	void RemoveROIDetailFromScene(ViewROI* p_roi);
 | |
| 	void SetPOVSource(const OrientableROI* point_of_view);
 | |
| 	float ProjectedSize(const BoundingSphere& p_bounding_sphere);
 | |
| 	ViewROI* Pick(Tgl::View* p_view, unsigned long x, unsigned long y);
 | |
| 	void SetResolution(int width, int height);
 | |
| 	void SetFrustrum(float fov, float front, float back);
 | |
| 	inline void ManageVisibilityAndDetailRecursively(ViewROI* p_roi, int p_und);
 | |
| 	void Update(float p_previousRenderTime, float);
 | |
| 	inline int CalculateFrustumTransformations();
 | |
| 	void UpdateViewTransformations();
 | |
| 
 | |
| 	inline static int CalculateLODLevel(float p_und1, float p_und2, ViewROI* p_roi);
 | |
| 	inline static int IsROIVisibleAtLOD(ViewROI* p_roi);
 | |
| 
 | |
| 	const CompoundObject& GetROIs() { return rois; }
 | |
| 	void Add(ViewROI* p_roi) { rois.push_back(p_roi); }
 | |
| 
 | |
| 	// SYNTHETIC: LEGO1 0x100a6000
 | |
| 	// ViewManager::`scalar deleting destructor'
 | |
| 
 | |
| private:
 | |
| 	Tgl::Group* scene;              // 0x04
 | |
| 	CompoundObject rois;            // 0x08
 | |
| 	RealtimeView rt_view;           // 0x14
 | |
| 	ROIList visible_rois;           // 0x18
 | |
| 	float prev_render_time;         // 0x28
 | |
| 	float view_area_at_one;         // 0x2c
 | |
| 	unsigned int flags;             // 0x30
 | |
| 	float width;                    // 0x34
 | |
| 	float height;                   // 0x38
 | |
| 	float view_angle;               // 0x3c
 | |
| 	MxMatrix pov;                   // 0x40
 | |
| 	float front;                    // 0x88
 | |
| 	float back;                     // 0x8c
 | |
| 	float frustum_vertices[8][3];   // 0x90
 | |
| 	float transformed_points[8][3]; // 0xf0
 | |
| 	float frustum_planes[6][4];     // 0x150
 | |
| 	IDirect3DRM2* d3drm;            // 0x1b0
 | |
| 	IDirect3DRMFrame2* frame;       // 0x1b4
 | |
| 	float seconds_allowed;          // 0x1b8
 | |
| };
 | |
| 
 | |
| // TEMPLATE: LEGO1 0x10022030
 | |
| // list<ROI *,allocator<ROI *> >::insert
 | |
| 
 | |
| // TEMPLATE: LEGO1 0x100a6020
 | |
| // List<ROI *>::~List<ROI *>
 | |
| 
 | |
| // TEMPLATE: LEGO1 0x100a6070
 | |
| // Vector<ROI const *>::~Vector<ROI const *>
 | |
| 
 | |
| // TEMPLATE: LEGO1 0x100a6f80
 | |
| // vector<ROI const *,allocator<ROI const *> >::~vector<ROI const *,allocator<ROI const *> >
 | |
| 
 | |
| #endif // VIEWMANAGER_H
 |