#ifndef LEGOPATHBOUNDARY_H #define LEGOPATHBOUNDARY_H #include "geom/legowegedge.h" #include "legoanimpresenter.h" #include "legopathactor.h" #include "mxstl/stlcompat.h" #include "mxtypes.h" #if defined(_M_IX86) || defined(__i386__) #define COMPARE_POINTER_TYPE MxS32 #else #define COMPARE_POINTER_TYPE MxS32* #endif struct LegoPathActorSetCompare { MxU32 operator()(const LegoPathActor* p_lhs, const LegoPathActor* p_rhs) const { return (COMPARE_POINTER_TYPE) p_lhs < (COMPARE_POINTER_TYPE) p_rhs; } }; struct LegoAnimPresenterSetCompare { MxBool operator()(const LegoAnimPresenter* p_lhs, const LegoAnimPresenter* p_rhs) const { return (COMPARE_POINTER_TYPE) p_lhs < (COMPARE_POINTER_TYPE) p_rhs; } }; typedef set LegoPathActorSet; typedef set LegoAnimPresenterSet; // VTABLE: LEGO1 0x100d8618 // SIZE 0x74 class LegoPathBoundary : public LegoWEGEdge { public: LegoPathBoundary(); ~LegoPathBoundary() override; MxResult AddActor(LegoPathActor* p_actor); MxResult RemoveActor(LegoPathActor* p_actor); void FUN_100575b0(Vector3& p_point1, Vector3& p_point2, LegoPathActor* p_actor); void SwitchBoundary( LegoPathActor* p_actor, LegoPathBoundary*& p_boundary, LegoUnknown100db7f4*& p_edge, float& p_unk0xe4 ); MxU32 Intersect( float p_scale, Vector3& p_point1, Vector3& p_point2, Vector3& p_point3, LegoUnknown100db7f4*& p_edge ); MxU32 FUN_10057fe0(LegoAnimPresenter* p_presenter); MxU32 FUN_100586e0(LegoAnimPresenter* p_presenter); // FUNCTION: BETA10 0x1001ffb0 LegoPathActorSet& GetActors() { return m_actors; } // FUNCTION: BETA10 0x10082b10 LegoAnimPresenterSet& GetPresenters() { return m_presenters; } // SYNTHETIC: LEGO1 0x10047a80 // LegoPathBoundary::`vector deleting destructor' private: LegoPathActorSet m_actors; // 0x54 LegoAnimPresenterSet m_presenters; // 0x64 }; // clang-format off // TEMPLATE: LEGO1 0x1002bee0 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::~_Tree >::_Kfn,LegoPathActorSetCompare,allocator >::iterator::_Inc // TEMPLATE: LEGO1 0x1002bff0 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::erase // TEMPLATE: LEGO1 0x1002c440 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::find // TEMPLATE: LEGO1 0x1002c4c0 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::_Copy // TEMPLATE: LEGO1 0x1002c630 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::_Erase // TEMPLATE: LEGO1 0x1002c670 // set >::~set > // TEMPLATE: LEGO1 0x1002c6c0 // Set::~Set // TEMPLATE: LEGO1 0x1002eb10 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::_Init // TEMPLATE: LEGO1 0x1002ebc0 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::_Min // TEMPLATE: LEGO1 0x10045d80 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::iterator::_Dec // TEMPLATE: LEGO1 0x10045dd0 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::_Insert // TEMPLATE: LEGO1 0x10046310 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::insert // TEMPLATE: LEGO1 0x10046580 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::_Lrotate // TEMPLATE: LEGO1 0x100465e0 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::_Rrotate // TEMPLATE: LEGO1 0x1004a7a0 // _Construct // TEMPLATE: LEGO1 0x10056c20 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::~_Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::iterator::_Inc // TEMPLATE: LEGO1 0x10056d30 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::erase // TEMPLATE: LEGO1 0x10057180 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::_Erase // TEMPLATE: LEGO1 0x100571c0 // set >::~set > // TEMPLATE: LEGO1 0x10057210 // Set::~Set // TEMPLATE: LEGO1 0x100573e0 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::begin // TEMPLATE: LEGO1 0x100580c0 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::insert // TEMPLATE: LEGO1 0x10058330 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::iterator::_Dec // TEMPLATE: LEGO1 0x10058380 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::_Buynode // TEMPLATE: LEGO1 0x100583a0 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::_Insert // TEMPLATE: LEGO1 0x10058620 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::_Lrotate // TEMPLATE: LEGO1 0x10058680 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::_Rrotate // TEMPLATE: LEGO1 0x10058820 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::erase // TEMPLATE: LEGO1 0x100588e0 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::equal_range // TEMPLATE: LEGO1 0x10058950 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::_Lbound // TEMPLATE: LEGO1 0x10058980 // _Construct // TEMPLATE: LEGO1 0x100589a0 // _Distance // TEMPLATE: LEGO1 0x10081cd0 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::lower_bound // GLOBAL: LEGO1 0x100f11a4 // _Tree >::_Kfn,LegoPathActorSetCompare,allocator >::_Nil // GLOBAL: LEGO1 0x100f3200 // _Tree >::_Kfn,LegoAnimPresenterSetCompare,allocator >::_Nil // clang-format on #endif // LEGOPATHBOUNDARY_H