al::KCollisionServer class

Public static functions

static void calXvec(const sead::Vector3f* a, const sead::Vector3f* b, sead::Vector3f* result)
static auto calcChildBlockOffset(const sead::Vector3u& block, s32 shift) -> s32
static auto getBlockData(const u32* data, u32 offset) -> u32

Constructors, destructors, conversion operators

KCollisionServer()

Public functions

void initKCollisionServer(void* data, const void* attributeData)
void setData(void* data)
auto getInnerKcl(s32 index) const -> const KCPrismHeader&
auto getNumInnerKcl() const -> u32
auto getV1Header(s32 index) const -> const KCPrismHeader*
auto calcFarthestVertexDistance() -> bool
auto getTriangleNum(const KCPrismHeader* header) const -> s32
auto getPrismData(u32 index, const KCPrismHeader* header) const -> const KCPrismData&
auto isNearParallelNormal(const KCPrismData* data, const KCPrismHeader* header) const -> bool
auto isNanPrism(const KCPrismData* data, const KCPrismHeader* header) const -> bool
void calcPosLocal(sead::Vector3f* pos, const KCPrismData* data, s32 location, const KCPrismHeader* header) const
void getMinMax(sead::Vector3f* min, sead::Vector3f* max) const
void getAreaSpaceSize(sead::Vector3f* size, const KCPrismHeader* header) const
void getAreaSpaceSize(s32* sizeX, s32* sizeY, s32* sizeZ, const KCPrismHeader* header) const
void getAreaSpaceSize(sead::Vector3u* size, const KCPrismHeader* header) const
auto checkPoint(sead::Vector3f*, f32, f32*) -> const KCPrismData*
auto searchBlock(s32* widthShift, const sead::Vector3u& block, const KCPrismHeader* header) const -> const u8*
auto checkSphere(const sead::Vector3f*, f32, f32, u32, sead::FixedRingBuffer<KCHitInfo, 512>* hits) -> s32
auto outCheckAndCalcArea(sead::Vector3u* blockMin, sead::Vector3u* blockMax, const sead::Vector3f& posMin, const sead::Vector3f& posMax, const KCPrismHeader* header) const -> bool
auto KCHitSphere(const KCPrismData* data, const KCPrismHeader* header, const sead::Vector3f*, f32, f32, f32*, u8*) -> bool
auto checkArrow(const sead::Vector3f&, const sead::Vector3f&, sead::FixedRingBuffer<KCHitInfo, 512>* hits, u32*, u32) const -> const KCPrismData*
void objectSpaceToAreaOffsetSpaceV3f(sead::Vector3f* areaOff, const sead::Vector3f& objSpace, const KCPrismHeader* header) const
auto isInsideMinMaxInAreaOffsetSpace(const sead::Vector3u& block, const KCPrismHeader* header) const -> bool
auto KCHitArrow(const KCPrismData* data, const KCPrismHeader* header, const sead::Vector3f&, const sead::Vector3f&, f32*, u8*) const -> bool
auto checkSphereForPlayer(const sead::Vector3f*, f32, f32, u32, sead::FixedRingBuffer<KCHitInfo, 512>*) -> s32
auto KCHitSphereForPlayer(const KCPrismData* data, const KCPrismHeader* header, const sead::Vector3f*, f32, f32, f32*, u8*) -> bool
auto checkDisk(const sead::Vector3f*, f32, f32, const sead::Vector3f&, f32, u32, sead::FixedRingBuffer<KCHitInfo, 512>*) -> s32
auto KCHitDisk(const KCPrismData* data, const KCPrismHeader* header, const sead::Vector3f*, f32, f32, f32, const sead::Vector3f&, f32*, u8*) -> bool
void searchPrism(sead::Vector3f* pos, f32 searchRadius, sead::IDelegate2<const KCPrismData*, const KCPrismHeader*>& callback)
void searchPrismMinMax(const sead::Vector3f& min, const sead::Vector3f& max, sead::IDelegate2<const KCPrismData*, const KCPrismHeader*>& callback)
void searchPrismArrow(const sead::Vector3f& pos1, const sead::Vector3f& pos2, sead::IDelegate2<const KCPrismData*, const KCPrismHeader*>& callback)
void searchPrismDisk(const sead::Vector3f&, const sead::Vector3f&, f32, f32, sead::IDelegate2<const KCPrismData*, const KCPrismHeader*>& callback)
auto isParallelNormal(const KCPrismData* data, const KCPrismHeader* header) const -> bool
auto getFaceNormal(const KCPrismData* data, const KCPrismHeader* header) const -> const sead::Vector3f&
auto getEdgeNormal1(const KCPrismData* data, const KCPrismHeader* header) const -> const sead::Vector3f&
auto getEdgeNormal2(const KCPrismData* data, const KCPrismHeader* header) const -> const sead::Vector3f&
auto getEdgeNormal3(const KCPrismData* data, const KCPrismHeader* header) const -> const sead::Vector3f&
auto KCHitDisc(const KCPrismData* data, const KCPrismHeader* header, const sead::Vector3f&, const sead::Vector3f&, f32, f32, sead::Vector3f*, f32*) -> bool
auto toIndex(const KCPrismData* data, const KCPrismHeader* header) const -> s32
auto getNormal(u32 index, const KCPrismHeader* header) const -> const sead::Vector3f&
auto getVertexData(u32 index, const KCPrismHeader* header) const -> const sead::Vector3f&
auto getVertexNum(const KCPrismHeader* header) const -> u32
auto getNormalNum(const KCPrismHeader* header) const -> s32
auto getAttributeElementNum() const -> s32
auto getAttributes(ByamlIter* destIter, u32 triIndex, const KCPrismHeader* header) const -> bool
auto getAttributes(ByamlIter* destIter, const KCPrismData* data) const -> bool
void objectSpaceToAreaOffsetSpace(sead::Vector3u* areaOffSpace, const sead::Vector3f& objSpace, const KCPrismHeader* header) const
void areaOffsetSpaceToObjectSpace(sead::Vector3f* objSpace, const sead::Vector3u& areaOffSpace, const KCPrismHeader* header) const
auto doBoxCheck(const sead::Vector3f*, const sead::Vector3f*, sead::Vector3u*, sead::Vector3u*, const KCPrismHeader* header) -> bool
auto calcAreaBlockOffset(const sead::Vector3u& block, const KCPrismHeader* header) const -> s32