13 void createCollision()
override;
14 void calcCollisionTransform()
override;
17 [[nodiscard]]
const EGG::Vector3f &getPosition()
const override {
22 f32 getCollisionRadius()
const override {
23 return m_bboxHalfSideLength + colRadiusAdditionalLength();
26 void initCollision()
override;
32 KCLTypeMask mask,
CollisionInfo *info, KCLTypeMask *maskOut)
override;
34 KCLTypeMask mask,
CollisionInfo *info, KCLTypeMask *maskOut)
override;
35 [[nodiscard]]
bool checkSpherePartial(f32 radius,
const EGG::Vector3f &pos,
37 KCLTypeMask *maskOut, u32 timeOffset)
override;
38 [[nodiscard]]
bool checkSpherePartialPush(f32 radius,
const EGG::Vector3f &pos,
40 KCLTypeMask *maskOut, u32 timeOffset)
override;
41 [[nodiscard]]
bool checkSphereFull(f32 radius,
const EGG::Vector3f &pos,
43 KCLTypeMask *maskOut, u32 timeOffset)
override;
44 [[nodiscard]]
bool checkSphereFullPush(f32 radius,
const EGG::Vector3f &pos,
46 KCLTypeMask *maskOut, u32 timeOffset)
override;
47 void narrScLocal(f32 radius,
const EGG::Vector3f &pos, KCLTypeMask mask,
48 u32 timeOffset)
override;
49 [[nodiscard]]
bool checkPointCachedPartial(
const EGG::Vector3f &pos,
51 KCLTypeMask *maskOut)
override;
52 [[nodiscard]]
bool checkPointCachedPartialPush(
const EGG::Vector3f &pos,
54 KCLTypeMask *maskOut)
override;
56 KCLTypeMask mask,
CollisionInfo *info, KCLTypeMask *maskOut)
override;
57 [[nodiscard]]
bool checkPointCachedFullPush(
const EGG::Vector3f &pos,
59 KCLTypeMask *maskOut)
override;
60 [[nodiscard]]
bool checkSphereCachedPartial(f32 radius,
const EGG::Vector3f &pos,
62 KCLTypeMask *maskOut, u32 timeOffset)
override;
63 [[nodiscard]]
bool checkSphereCachedPartialPush(f32 radius,
const EGG::Vector3f &pos,
65 KCLTypeMask *maskOut, u32 timeOffset)
override;
66 [[nodiscard]]
bool checkSphereCachedFull(f32 radius,
const EGG::Vector3f &pos,
68 KCLTypeMask *maskOut, u32 timeOffset)
override;
69 [[nodiscard]]
bool checkSphereCachedFullPush(f32 radius,
const EGG::Vector3f &pos,
71 KCLTypeMask *maskOut, u32 timeOffset)
override;
73 virtual void update(u32 timeOffset);
74 virtual void calcScale(u32 timeOffset);
76 [[nodiscard]]
virtual const EGG::Matrix34f &getUpdatedMatrix(u32 timeOffset);
79 [[nodiscard]]
virtual f32 getScaleY(u32 )
const {
84 [[nodiscard]]
virtual f32 colRadiusAdditionalLength()
const {
89 [[nodiscard]]
virtual bool shouldCheckColNoPush()
const {
94 [[nodiscard]]
virtual bool shouldCheckColPush()
const {
98 [[nodiscard]]
virtual bool checkCollision(f32 radius,
const EGG::Vector3f &pos,
100 KCLTypeMask *maskOut, u32 timeOffset);
101 [[nodiscard]]
virtual bool checkCollisionCached(f32 radius,
const EGG::Vector3f &pos,
103 KCLTypeMask *maskOut, u32 timeOffset);
108 f32 m_bboxHalfSideLength;
109 s32 m_lastMtxUpdateFrame;
110 s32 m_lastScaleUpdateFrame;