13 void init()
override {}
16 void calc()
override {}
19 [[nodiscard]] u32 loadFlags()
const override {
24 void createCollision()
override {}
27 void calcCollisionTransform()
override {}
30 [[nodiscard]] f32 getCollisionRadius()
const override {
39 KCLTypeMask flags,
CollisionInfo *pInfo, KCLTypeMask *pFlagsOut)
override;
41 KCLTypeMask flags,
CollisionInfo *pInfo, KCLTypeMask *pFlagsOut)
override;
42 [[nodiscard]]
bool checkSpherePartial(f32 radius,
const EGG::Vector3f &v0,
44 KCLTypeMask *pFlagsOut, u32 timeOffset)
override;
45 [[nodiscard]]
bool checkSpherePartialPush(f32 radius,
const EGG::Vector3f &v0,
47 KCLTypeMask *pFlagsOut, u32 timeOffset)
override;
49 KCLTypeMask flags,
CollisionInfo *pInfo, KCLTypeMask *pFlagsOut,
50 u32 timeOffset)
override;
51 [[nodiscard]]
bool checkSphereFullPush(f32 radius,
const EGG::Vector3f &v0,
53 KCLTypeMask *pFlagsOut, u32 timeOffset)
override;
59 KCLTypeMask flags,
CollisionInfo *pInfo, KCLTypeMask *pFlagsOut)
override;
61 KCLTypeMask flags,
CollisionInfo *pInfo, KCLTypeMask *pFlagsOut)
override;
62 [[nodiscard]]
bool checkSphereCachedPartial(f32 radius,
const EGG::Vector3f &v0,
64 KCLTypeMask *pFlagsOut, u32 timeOffset)
override;
65 [[nodiscard]]
bool checkSphereCachedPartialPush(f32 radius,
const EGG::Vector3f &v0,
67 KCLTypeMask *pFlagsOut, u32 timeOffset)
override;
68 [[nodiscard]]
bool checkSphereCachedFull(f32 radius,
const EGG::Vector3f &v0,
70 KCLTypeMask *pFlagsOut, u32 timeOffset)
override;
71 [[nodiscard]]
bool checkSphereCachedFullPush(f32 radius,
const EGG::Vector3f &v0,
73 KCLTypeMask *pFlagsOut, u32 timeOffset)
override;
76 [[nodiscard]]
bool checkSpherePartialImpl(f32 radius,
const EGG::Vector3f &v0,
78 KCLTypeMask *pFlagsOut, u32 timeOffset);
79 [[nodiscard]]
bool checkSpherePartialPushImpl(f32 radius,
const EGG::Vector3f &v0,
81 KCLTypeMask *pFlagsOut, u32 timeOffset);
82 [[nodiscard]]
bool checkSphereFullImpl(f32 radius,
const EGG::Vector3f &v0,
84 KCLTypeMask *pFlagsOut, u32 timeOffset);
85 [[nodiscard]]
bool checkSphereFullPushImpl(f32 radius,
const EGG::Vector3f &v0,
87 KCLTypeMask *pFlagsOut, u32 timeOffset);
90 requires std::is_same_v<T, CollisionInfo> || std::is_same_v<T, CollisionInfoPartial>
92 KCLTypeMask flags, T *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset,
bool push);
bool checkSphereImpl(f32 radius, const EGG::Vector3f &v0, const EGG::Vector3f &v1, KCLTypeMask flags, T *pInfo, KCLTypeMask *pFlagsOut, u32 timeOffset, bool push)
Helper function which contains frequently re-used code. Behavior branches depending on whether it is ...