isle/LEGO1/lego/sources/geom/legoedge.h
jonschz 183a69874f
Beta matches on LegoEdge and others, LegoPathActor improvements (#1743)
* BETA matches for LegoEdge and related

* Some progress on CheckIntersections

* Cleanup

* Fix duplicate offset

---------

Co-authored-by: jonschz <jonschz@users.noreply.github.com>
2026-02-14 17:50:15 +01:00

52 lines
1.3 KiB
C++

#ifndef __LEGOEDGE_H
#define __LEGOEDGE_H
#include "misc/legotypes.h"
class LegoWEEdge;
class Vector3;
// VTABLE: LEGO1 0x100db7b8
// VTABLE: BETA10 0x101c3728
// SIZE 0x24
struct LegoEdge {
LegoEdge();
virtual ~LegoEdge(); // vtable+0x00
LegoResult SetCounterclockwiseEdge(LegoWEEdge& p_face, LegoEdge* p_edge);
LegoResult SetClockwiseEdge(LegoWEEdge& p_face, LegoEdge* p_edge);
LegoEdge* GetClockwiseEdge(LegoWEEdge& p_face);
LegoEdge* GetCounterclockwiseEdge(LegoWEEdge& p_face);
Vector3* CWVertex(LegoWEEdge& p_face);
Vector3* CCWVertex(LegoWEEdge& p_face);
LegoResult GetFaceNormal(LegoWEEdge& p_face, Vector3& p_point);
// FUNCTION: BETA10 0x10184170
LegoWEEdge* GetFaceA() { return m_faceA; }
// FUNCTION: BETA10 0x10184190
LegoWEEdge* GetFaceB() { return m_faceB; }
// FUNCTION: BETA10 0x1001cb80
Vector3* GetPointA() { return m_pointA; }
// FUNCTION: BETA10 0x1001cbb0
Vector3* GetPointB() { return m_pointB; }
// SYNTHETIC: LEGO1 0x1009a4a0
// SYNTHETIC: BETA10 0x10182b30
// LegoEdge::`scalar deleting destructor'
LegoWEEdge* m_faceA; // 0x04
LegoWEEdge* m_faceB; // 0x08
LegoEdge* m_ccwA; // 0x0c
LegoEdge* m_cwA; // 0x10
LegoEdge* m_ccwB; // 0x14
LegoEdge* m_cwB; // 0x18
Vector3* m_pointA; // 0x1c
Vector3* m_pointB; // 0x20
};
#endif // __LEGOEDGE_H