mirror of https://github.com/AxioDL/metaforce.git
CAreaOctTree stubs
This commit is contained in:
parent
08e59aca4c
commit
eacf7b3822
|
@ -1,14 +1,45 @@
|
||||||
#ifndef __URDE_CCOLLISIONINFO_HPP__
|
#ifndef __URDE_CCOLLISIONINFO_HPP__
|
||||||
#define __URDE_CCOLLISIONINFO_HPP__
|
#define __URDE_CCOLLISIONINFO_HPP__
|
||||||
|
|
||||||
|
#include "RetroTypes.hpp"
|
||||||
|
#include "CMaterialList.hpp"
|
||||||
#include "zeus/CAABox.hpp"
|
#include "zeus/CAABox.hpp"
|
||||||
|
|
||||||
namespace urde
|
namespace urde
|
||||||
{
|
{
|
||||||
class CMaterialList;
|
|
||||||
class CCollisionInfo
|
class CCollisionInfo
|
||||||
{
|
{
|
||||||
|
zeus::CAABox x0_aabox = zeus::CAABox::skNullBox;
|
||||||
|
zeus::CVector3f x18_;
|
||||||
|
zeus::CVector3f x24_;
|
||||||
|
bool x30_ = false;
|
||||||
|
bool x31_ = false;
|
||||||
|
/* u32 x34_; */
|
||||||
|
CMaterialList x38_;
|
||||||
|
CMaterialList x40_;
|
||||||
|
zeus::CVector3f x48_;
|
||||||
|
zeus::CVector3f x54_;
|
||||||
public:
|
public:
|
||||||
|
CCollisionInfo() = default;
|
||||||
|
CCollisionInfo(const zeus::CVector3f& v1, const CMaterialList& list1, const CMaterialList& list2,
|
||||||
|
const zeus::CVector3f& v2, const zeus::CVector3f& v3);
|
||||||
|
CCollisionInfo(const zeus::CVector3f& v1, const CMaterialList& list1, const CMaterialList& list2,
|
||||||
|
zeus::CVector3f const& v2);
|
||||||
|
CCollisionInfo(const zeus::CAABox& aabox, const CMaterialList& list1, const CMaterialList& list2,
|
||||||
|
const zeus::CVector3f& v1, const zeus::CVector3f& v2)
|
||||||
|
: x0_aabox(aabox)
|
||||||
|
{}
|
||||||
|
|
||||||
|
bool IsValid() const;
|
||||||
|
void GetMaterialLeft() const;
|
||||||
|
void GetMaterialRight() const;
|
||||||
|
void GetExtreme() const;
|
||||||
|
void Swap();
|
||||||
|
void Transform(const zeus::CTransform&);
|
||||||
|
zeus::CVector3f GetNormalLeft() const;
|
||||||
|
zeus::CVector3f GetNormalRight() const;
|
||||||
|
zeus::CVector3f GetOrigin() const;
|
||||||
|
zeus::CVector3f GetPoint() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,11 +77,9 @@ public:
|
||||||
|
|
||||||
static u32 BitPosition(u64 flag)
|
static u32 BitPosition(u64 flag)
|
||||||
{
|
{
|
||||||
u32 high = *((u32*)(&flag)[0]);
|
for (u32 i = 0; i < 63; ++i)
|
||||||
u32 low = *((u32*)(&flag)[1]);
|
if ((flag & (1ull << i)) != 0)
|
||||||
for (u32 i = 0; i < 8; ++i)
|
return i;
|
||||||
{
|
|
||||||
}
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,75 @@
|
||||||
#ifndef __URDE_CAREAOCTTREE_HPP__
|
#ifndef __URDE_CAREAOCTTREE_HPP__
|
||||||
#define __URDE_CAREAOCTTREE_HPP__
|
#define __URDE_CAREAOCTTREE_HPP__
|
||||||
|
|
||||||
|
#include "RetroTypes.hpp"
|
||||||
|
#include "zeus/CAABox.hpp"
|
||||||
|
|
||||||
namespace urde
|
namespace urde
|
||||||
{
|
{
|
||||||
|
class CCollisionEdge;
|
||||||
|
class CMaterialFilter;
|
||||||
class CAreaOctTree
|
class CAreaOctTree
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
struct SRayResult
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
class TriListReference
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
TriListReference(const void*);
|
||||||
|
TriListReference(const u16*);
|
||||||
|
void GetAt(s32) const;
|
||||||
|
void GetSize() const;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Node
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
enum class ETreeType
|
||||||
|
{
|
||||||
|
Invalid,
|
||||||
|
Branch,
|
||||||
|
Leaf
|
||||||
|
};
|
||||||
|
|
||||||
|
private:
|
||||||
|
public:
|
||||||
|
Node(const void*, const zeus::CAABox&, const CAreaOctTree& owner, ETreeType);
|
||||||
|
#if 0
|
||||||
|
void LineTestEx(const zeus::CLine&, const CMaterialFilter&, SRayResult&, float) const;
|
||||||
|
void LineTestExInternal(const zeus::CLine&, const CMaterialFilter&, SRayResult&, float, float, float,
|
||||||
|
const zeus::CVector3f&) const;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const CAreaOctTree& GetOwner() const;
|
||||||
|
const zeus::CAABox& GetBoundingBox() const;
|
||||||
|
u32 GetChildFlags() const;
|
||||||
|
const Node* GetChild(s32) const;
|
||||||
|
TriListReference GetTriangleArray() const;
|
||||||
|
ETreeType GetChildType(s32) const;
|
||||||
|
ETreeType GetTreeType(s32) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
public:
|
||||||
|
CAreaOctTree(const zeus::CAABox& box, Node::ETreeType treeType, u8*, void*, u32, u32*, u8*, u8*, u8*, u32,
|
||||||
|
CCollisionEdge*, u32, u16*, u32, zeus::CVector3f*);
|
||||||
|
|
||||||
|
const Node* GetRootNode() const;
|
||||||
|
void GetTreeMemory() const;
|
||||||
|
zeus::CVector3f GetVert(s32) const;
|
||||||
|
CCollisionEdge GetEdge(s32) const;
|
||||||
|
void GetEdgeMaterial();
|
||||||
|
void GetTriangleMaterial();
|
||||||
|
u32 GetNumEdges() const;
|
||||||
|
u32 GetNumVerts() const;
|
||||||
|
void GetNumTriangles() const;
|
||||||
|
void GetMasterListTriangle(u16);
|
||||||
|
void GetTriangleVertexIndices(u16);
|
||||||
|
void GetTriangleEdgeIndices(u16);
|
||||||
|
|
||||||
|
static void MakeFromMemory(void*, unsigned int, CAreaOctTree*, bool*);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue