mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-02-03 12:31:15 +00:00
* Implement/match LegoAnimationManager::FUN_10064b50 (#926) * Implement/match LegoAnimationManager::FUN_10063d10 (#927) * Implement/match LegoAnimationManager::FUN_10064380 (#928) * Implement/match LegoAnimationManager::FUN_10064380 * Fix naming * Revert * Implement/matche LegoAnimationManager::FUN_10064740 and FUN_10064670 (#929) * Implement/match FUN_1003ef00 and related (#931) * Implement/match LegoAnimationManager::FUN_10064120 (#932) * Implement/match LegoAnimationManager::FUN_10064120 * Fix naming * Fix parentheses * Implement LegoAnimationManager::FUN_10064010 (#933) * Implement/match ViewManager::FUN_100a6150 (#934) * Implement/match PlayCamAnim and CameraTriggerFire (#935) * Implement/match PlayCamAnim and CameraTriggerFire * Fix type * Name var * Implement/match LegoAnimationManager::FUN_10063fb0 (#936) * basic name improvements (#930) * basic name improvements * clang-format --------- Co-authored-by: Christian Semmler <mail@csemmler.com> * Implement/match LegoPathBoundary::Intersect (#937) * Implement LegoPathActor::VTable0x68 (#938) * Implement LegoPathActor::VTable0x68 * Fix naming * Implement/match LegoPathBoundary::FUN_100575b0 (#939) * Implement LegoUnknown::FUN_1009a1e0 (#940) * Implement/match LegoPathController::FUN_1004a240 (#941) * Implement LegoPathActor::VTable0x9c (#942) * Implement LegoPathActor::VTable0x9c * Add annotation * Implement/match LegoPathActor::SwitchBoundary (#943) * Implement/match LegoPathActor::SwitchBoundary * Rename var * Implement/match LegoPathStruct (#944) * Implement/match LegoPathStruct * Rename some nums * Consistent naming * Naming * relax regex * Name some functions * Improve naming * Rename * Implement/match LegoPathActor::VTable0xa4 and VTable0xa8 (#945) * Implement/match LegoPathActor::VTable0xa4 * Implement/match LegoPathActor::VTable0xa8 * Name enum constants --------- Co-authored-by: Cameron <25990062+crtdll@users.noreply.github.com>
83 lines
2.4 KiB
C++
83 lines
2.4 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 FUN_100a6150(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 Unknown();
|
|
void UpdateViewTransformations();
|
|
|
|
inline static int Unknown2(float p_und1, float p_und2, ViewROI* p_roi);
|
|
inline static int Unknown3(ViewROI* p_roi);
|
|
|
|
inline const CompoundObject& GetROIs() { return rois; }
|
|
inline 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 unk0x28; // 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 unk0x90[8][3]; // 0x90
|
|
float unk0xf0[8][3]; // 0xf0
|
|
float unk0x150[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
|