8class ObjectBelt :
public ObjectDrivable {
11 ~ObjectBelt()
override;
19 void createCollision()
override {}
22 void calcCollisionTransform()
override {}
25 [[nodiscard]] f32 getCollisionRadius()
const override {
30 [[nodiscard]]
bool checkPointPartial(
const EGG::Vector3f & ,
31 const EGG::Vector3f & , KCLTypeMask ,
32 CollisionInfoPartial * , KCLTypeMask * )
override {
37 [[nodiscard]]
bool checkPointPartialPush(
const EGG::Vector3f & ,
38 const EGG::Vector3f & , KCLTypeMask ,
39 CollisionInfoPartial * , KCLTypeMask * )
override {
44 [[nodiscard]]
bool checkPointFull(
const EGG::Vector3f & ,
45 const EGG::Vector3f & , KCLTypeMask , CollisionInfo * ,
46 KCLTypeMask * )
override {
51 [[nodiscard]]
bool checkPointFullPush(
const EGG::Vector3f &pos,
const EGG::Vector3f &prevPos,
52 KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut)
override {
53 return calcCollision(pos, prevPos, mask, info, maskOut, 0);
57 [[nodiscard]]
bool checkSpherePartial(f32 ,
const EGG::Vector3f & ,
58 const EGG::Vector3f & , KCLTypeMask ,
59 CollisionInfoPartial * , KCLTypeMask * ,
65 [[nodiscard]]
bool checkSpherePartialPush(f32 ,
const EGG::Vector3f & ,
66 const EGG::Vector3f & , KCLTypeMask ,
67 CollisionInfoPartial * , KCLTypeMask * ,
73 [[nodiscard]]
bool checkSphereFull(f32 ,
const EGG::Vector3f & ,
74 const EGG::Vector3f & , KCLTypeMask , CollisionInfo * ,
75 KCLTypeMask * , u32 )
override {
80 [[nodiscard]]
bool checkSphereFullPush(f32 ,
const EGG::Vector3f &pos,
81 const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info,
82 KCLTypeMask *maskOut, u32 timeOffset)
override {
83 return calcCollision(pos, prevPos, mask, info, maskOut, timeOffset);
87 [[nodiscard]]
bool checkPointCachedPartial(
const EGG::Vector3f & ,
88 const EGG::Vector3f & , KCLTypeMask ,
89 CollisionInfoPartial * , KCLTypeMask * )
override {
94 [[nodiscard]]
bool checkPointCachedPartialPush(
const EGG::Vector3f & ,
95 const EGG::Vector3f & , KCLTypeMask ,
96 CollisionInfoPartial * , KCLTypeMask * )
override {
101 [[nodiscard]]
bool checkPointCachedFull(
const EGG::Vector3f & ,
102 const EGG::Vector3f & , KCLTypeMask , CollisionInfo * ,
103 KCLTypeMask * )
override {
108 [[nodiscard]]
bool checkPointCachedFullPush(
const EGG::Vector3f &pos,
109 const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info,
110 KCLTypeMask *maskOut)
override {
111 return calcCollision(pos, prevPos, mask, info, maskOut, 0);
115 [[nodiscard]]
bool checkSphereCachedPartial(f32 ,
const EGG::Vector3f & ,
116 const EGG::Vector3f & , KCLTypeMask ,
117 CollisionInfoPartial * , KCLTypeMask * ,
123 [[nodiscard]]
bool checkSphereCachedPartialPush(f32 ,
const EGG::Vector3f & ,
124 const EGG::Vector3f & , KCLTypeMask ,
125 CollisionInfoPartial * , KCLTypeMask * ,
131 [[nodiscard]]
bool checkSphereCachedFull(f32 ,
const EGG::Vector3f & ,
132 const EGG::Vector3f & , KCLTypeMask , CollisionInfo * ,
133 KCLTypeMask * , u32 )
override {
138 [[nodiscard]]
bool checkSphereCachedFullPush(f32 ,
const EGG::Vector3f &pos,
139 const EGG::Vector3f &prevPos, KCLTypeMask mask, CollisionInfo *info,
140 KCLTypeMask *maskOut, u32 timeOffset)
override {
141 return calcCollision(pos, prevPos, mask, info, maskOut, timeOffset);
144 [[nodiscard]]
virtual EGG::Vector3f calcRoadVelocity(u32 variant,
const EGG::Vector3f &pos,
145 u32 timeOffset)
const = 0;
147 [[nodiscard]]
virtual bool isMoving(u32 variant,
const EGG::Vector3f &pos)
const = 0;
153 [[nodiscard]]
virtual bool calcCollision(
const EGG::Vector3f &v0,
const EGG::Vector3f &v1,
154 KCLTypeMask mask, CollisionInfo *info, KCLTypeMask *maskOut, u32 timeOffset);