Isle
Loading...
Searching...
No Matches
legopathboundary.h
Go to the documentation of this file.
1#ifndef LEGOPATHBOUNDARY_H
2#define LEGOPATHBOUNDARY_H
3
4#include "geom/legowegedge.h"
5#include "legoanimpresenter.h"
6#include "legopathactor.h"
7#include "mxstl/stlcompat.h"
8#include "mxtypes.h"
9
10#if defined(_M_IX86) || defined(__i386__)
11#define COMPARE_POINTER_TYPE MxS32
12#else
13#define COMPARE_POINTER_TYPE MxS32*
14#endif
15
22 MxU32 operator()(const LegoPathActor* p_lhs, const LegoPathActor* p_rhs) const
23 {
24 return (COMPARE_POINTER_TYPE) p_lhs < (COMPARE_POINTER_TYPE) p_rhs;
25 }
26};
27
34 MxU32 operator()(const LegoAnimPresenter* p_lhs, const LegoAnimPresenter* p_rhs) const
35 {
36 return (COMPARE_POINTER_TYPE) p_lhs < (COMPARE_POINTER_TYPE) p_rhs;
37 }
38};
39
44typedef set<LegoPathActor*, LegoPathActorSetCompare> LegoPathActorSet;
45
50typedef set<LegoAnimPresenter*, LegoAnimPresenterSetCompare> LegoAnimPresenterSet;
51
52// VTABLE: LEGO1 0x100d8618
53// SIZE 0x74
60public:
65
69 ~LegoPathBoundary() override;
70
77
84
92 void FUN_100575b0(Vector3& p_point1, Vector3& p_point2, LegoPathActor* p_actor);
93
102 void SwitchBoundary(
103 LegoPathActor* p_actor,
104 LegoPathBoundary*& p_boundary,
105 LegoUnknown100db7f4*& p_edge,
106 float& p_unk0xe4
107 );
108
120 float p_scale,
121 Vector3& p_point1,
122 Vector3& p_point2,
123 Vector3& p_point3,
124 LegoUnknown100db7f4*& p_edge
125 );
126
134
141
146 LegoPathActorSet& GetActors() { return m_actors; }
147
152 LegoAnimPresenterSet& GetPresenters() { return m_presenters; }
153
154 // SYNTHETIC: LEGO1 0x10047a80
155 // LegoPathBoundary::`vector deleting destructor'
156
157private:
162 LegoPathActorSet m_actors; // 0x54
163
168 LegoAnimPresenterSet m_presenters; // 0x64
169};
170
171#endif // LEGOPATHBOUNDARY_H
[AI] Handles playback and synchronization of animated LEGO objects, including variable substitution,...
[AI] An actor that moves along a predefined path, supporting boundary transitions,...
Definition: legopathactor.h:32
[AI] Represents a path segment or boundary in the navigation network for actors (vehicles,...
void FUN_100575b0(Vector3 &p_point1, Vector3 &p_point2, LegoPathActor *p_actor)
[AI] Handles processing path triggers along this boundary as an actor moves from p_point1 to p_point2...
LegoAnimPresenterSet & GetPresenters()
[AI] Direct access to the animation presenter set for this boundary.
~LegoPathBoundary() override
[AI] Destructor.
LegoPathActorSet & GetActors()
[AI] Direct access to the actor set for this boundary.
MxU32 FUN_10057fe0(LegoAnimPresenter *p_presenter)
[AI] Adds an animation presenter to the set if within region, based on spatial bounds.
MxResult AddActor(LegoPathActor *p_actor)
[AI] Adds the given actor to this path boundary and sets its boundary pointer.
MxResult RemoveActor(LegoPathActor *p_actor)
[AI] Removes the actor from this boundary's actor set.
MxU32 FUN_100586e0(LegoAnimPresenter *p_presenter)
[AI] Removes an animation presenter from the set, or if nullptr resets all presenters' world associat...
void SwitchBoundary(LegoPathActor *p_actor, LegoPathBoundary *&p_boundary, LegoUnknown100db7f4 *&p_edge, float &p_unk0xe4)
[AI] Switches the boundary that the actor is associated with based on edge traversal.
LegoPathBoundary()
[AI] Constructs a LegoPathBoundary, initializing internal actor/presenter storage.
MxU32 Intersect(float p_scale, Vector3 &p_point1, Vector3 &p_point2, Vector3 &p_point3, LegoUnknown100db7f4 *&p_edge)
[AI] Tests for intersection between a path and this boundary; finds the first edge hit and intersecti...
[AI] Represents a "geometry edge" in the LEGO Island world polygon/path system.
Definition: legowegedge.h:31
[AI] 3D vector class, providing vector and cross-product operations in 3D space.
Definition: vector.h:249
set< LegoAnimPresenter *, LegoAnimPresenterSetCompare > LegoAnimPresenterSet
[AI] Defines a set of LegoAnimPresenter pointers, ordered by pointer value using LegoAnimPresenterSet...
#define COMPARE_POINTER_TYPE
set< LegoPathActor *, LegoPathActorSetCompare > LegoPathActorSet
[AI] Defines a set of LegoPathActor pointers, ordered by pointer value using LegoPathActorSetCompare.
MxLong MxResult
[AI]
Definition: mxtypes.h:106
unsigned int MxU32
[AI]
Definition: mxtypes.h:32
[AI] STL compatibility layer header to provide consistent STL (Standard Template Library) types and a...
[AI] Comparison functor used to order LegoAnimPresenter pointers for set containers,...
MxU32 operator()(const LegoAnimPresenter *p_lhs, const LegoAnimPresenter *p_rhs) const
[AI] Comparison functor used to order LegoPathActor pointers for set containers, using their pointer ...
MxU32 operator()(const LegoPathActor *p_lhs, const LegoPathActor *p_rhs) const
[AI] Represents an advanced edge in the LEGO Island geometry system, with direction,...