Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
ObjectCollidable.hh
1
#pragma once
2
3
#include "game/field/obj/ObjectBase.hh"
4
5
#include "game/field/ObjectCollisionBase.hh"
6
7
namespace
Kinoko {
8
9
namespace
Kart
{
10
11
class
KartObject
;
12
enum class
Reaction;
13
14
}
// namespace Kart
15
16
namespace
Field
{
17
18
class
ObjectCollidable :
public
ObjectBase {
19
public
:
20
ObjectCollidable(
const
System::MapdataGeoObj
¶ms);
21
ObjectCollidable(
const
char
*name,
const
EGG::Vector3f
&pos,
const
EGG::Vector3f
&rot,
22
const
EGG::Vector3f
&scale);
23
~ObjectCollidable()
override
;
24
25
void
load()
override
;
26
void
calcCollisionTransform()
override
;
27
[[nodiscard]] f32
getCollisionRadius
()
const override
;
28
29
virtual
void
loadAABB(f32 maxSpeed);
30
virtual
void
loadAABB(f32 radius, f32 maxSpeed);
31
virtual
void
processKartReactions(
Kart::KartObject
*kartObj, Kart::Reaction &reactionOnKart,
32
Kart::Reaction &reactionOnObj);
33
35
virtual
Kart::Reaction onCollision(
Kart::KartObject
*
/*kartObj*/
,
36
Kart::Reaction reactionOnKart, Kart::Reaction
/*reactionOnObj*/
,
37
EGG::Vector3f
&
/*hitDepth*/
) {
38
return
reactionOnKart;
39
}
40
41
virtual
void
onWallCollision(
Kart::KartObject
*,
const
EGG::Vector3f
&) {}
42
virtual
void
onObjectCollision(
Kart::KartObject
*) {}
43
virtual
bool
checkCollision(
ObjectCollisionBase
*lhs,
EGG::Vector3f
&dist);
44
46
virtual
const
EGG::Vector3f
&getCollisionTranslation()
const
{
47
return
EGG::Vector3f::zero;
48
}
49
51
[[nodiscard]]
virtual
ObjectCollisionBase
*collision()
const
{
52
return
m_collision;
53
}
54
55
protected
:
56
void
createCollision()
override
;
57
59
[[nodiscard]]
virtual
const
EGG::Vector3f
&collisionCenter()
const
{
60
return
EGG::Vector3f::zero;
61
}
62
63
void
registerManagedObject();
64
65
ObjectCollisionBase
*m_collision;
66
};
67
68
}
// namespace Field
69
70
}
// namespace Kinoko
Kinoko::Field::ObjectCollidable::getCollisionRadius
f32 getCollisionRadius() const override
Finds the radius that fits fully in a BoxColUnit.
Definition
ObjectCollidable.cc:51
Kinoko::Field::ObjectCollisionBase
The base class that all objects' collision inherits from.
Definition
ObjectCollisionBase.hh:24
Kinoko::Kart::KartObject
The highest level abstraction for a kart.
Definition
KartObject.hh:11
Kinoko::System::MapdataGeoObj
Definition
MapdataGeoObj.hh:9
Kinoko::Field
Pertains to collision.
Definition
BoxColManager.cc:10
Kinoko::Kart
Pertains to kart-related functionality.
Definition
BoxColManager.hh:14
Kinoko::EGG::Vector3f
A 3D float vector.
Definition
Vector.hh:107
game
field
obj
ObjectCollidable.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0