A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
ObjectPropeller.hh
1#pragma once
2
3#include "game/field/ObjectCollisionCylinder.hh"
4#include "game/field/obj/ObjectCollidable.hh"
5
6namespace Field {
7
8class ObjectPropeller final : public ObjectCollidable {
9public:
11 ~ObjectPropeller() override;
12
13 void init() override;
14 void calc() override;
15
17 [[nodiscard]] u32 loadFlags() const override {
18 return 1;
19 }
20
21 void createCollision() override;
22 void calcCollisionTransform() override;
23 [[nodiscard]] f32 getCollisionRadius() const override;
24 bool checkCollision(ObjectCollisionBase *lhs, EGG::Vector3f &dist) override;
25
26private:
27 f32 m_angVel;
28 f32 m_angle;
29 EGG::Vector3f m_axis;
30 EGG::Matrix34f m_rotMat;
31 EGG::Matrix34f m_curRot;
32 std::array<ObjectCollisionCylinder *, 3> m_blades;
33};
34
35} // namespace Field
A 3 x 4 matrix.
Definition Matrix.hh:8
The base class that all objects' collision inherits from.
f32 getCollisionRadius() const override
Finds the radius that fits fully in a BoxColUnit.
Pertains to collision.
A 3D float vector.
Definition Vector.hh:88