#include <ObjectCow.hh>
The manager class that controls a group of cows.
The herd is led by the ObjectCowLeader. ObjectCowFollower cows share the same rail as the leader cow but have fluctuations in their position. This class also handles collision checks amongst the cows to make sure that they never walk through each other.
Definition at line 151 of file ObjectCow.hh.
Public Member Functions | |
| ObjectCowHerd (const System::MapdataGeoObj ¶ms) | |
| void | init () override |
| Assigns the herd's rail to each child. | |
| void | calc () override |
| u32 | loadFlags () const override |
| void | createCollision () override |
| void | loadRail () override |
Public Member Functions inherited from Field::ObjectCollidable | |
| ObjectCollidable (const System::MapdataGeoObj ¶ms) | |
| ObjectCollidable (const char *name, const EGG::Vector3f &pos, const EGG::Vector3f &rot, const EGG::Vector3f &scale) | |
| void | load () override |
| void | calcCollisionTransform () override |
| f32 | getCollisionRadius () const override |
| Finds the radius that fits fully in a BoxColUnit. | |
| virtual void | loadAABB (f32 maxSpeed) |
| virtual void | loadAABB (f32 radius, f32 maxSpeed) |
| virtual void | processKartReactions (Kart::KartObject *kartObj, Kart::Reaction &reactionOnKart, Kart::Reaction &reactionOnObj) |
| virtual Kart::Reaction | onCollision (Kart::KartObject *, Kart::Reaction reactionOnKart, Kart::Reaction, EGG::Vector3f &) |
| virtual void | onWallCollision (Kart::KartObject *, const EGG::Vector3f &) |
| virtual void | onObjectCollision (Kart::KartObject *) |
| virtual bool | checkCollision (ObjectCollisionBase *lhs, EGG::Vector3f &dist) |
| virtual const EGG::Vector3f & | getCollisionTranslation () const |
| virtual ObjectCollisionBase * | collision () const |
Public Member Functions inherited from Field::ObjectBase | |
| ObjectBase (const System::MapdataGeoObj ¶ms) | |
| ObjectBase (const char *name, const EGG::Vector3f &pos, const EGG::Vector3f &rot, const EGG::Vector3f &scale) | |
| virtual void | calcModel () |
| virtual const char * | getResources () const |
| virtual void | loadGraphics () |
| virtual void | loadAnims () |
| virtual const char * | getName () const |
| virtual const char * | getKclName () const |
| virtual void | resize (f32 radius, f32 maxSpeed) |
| virtual void | unregisterCollision () |
| virtual void | disableCollision () const |
| virtual void | enableCollision () const |
| virtual const BoxColUnit * | getUnit () const |
| const RailInterpolator * | railInterpolator () const |
| virtual const EGG::Vector3f & | getPosition () const |
| virtual ObjectId | id () const |
| const EGG::Vector3f & | pos () const |
| void | setPos (const EGG::Vector3f &pos) |
| void | setScale (const EGG::Vector3f &scale) |
| void | setTransform (const EGG::Matrix34f &mat) |
| const EGG::Vector3f & | scale () const |
Private Member Functions | |
| void | checkCollision () |
| Prevents cows from walking into each other. | |
Private Attributes | |
| ObjectCowLeader * | m_leader |
| std::span< ObjectCowFollower * > | m_followers |
Additional Inherited Members | |
Public Types inherited from Field::ObjectBase | |
| enum class | eFlags { Position = 0 , Rotation = 1 , Matrix = 2 , Scale = 3 } |
| typedef EGG::TBitFlag< u16, eFlags > | Flags |
Protected Member Functions inherited from Field::ObjectCollidable | |
| virtual const EGG::Vector3f & | collisionCenter () const |
| void | registerManagedObject () |
Protected Member Functions inherited from Field::ObjectBase | |
| void | calcTransform () |
| void | linkAnims (const std::span< const char * > &names, const std::span< Render::AnmType > types) |
| void | setMatrixTangentTo (const EGG::Vector3f &up, const EGG::Vector3f &tangent) |
| void | setMatrixFromOrthonormalBasisAndPos (const EGG::Vector3f &v) |
Static Protected Member Functions inherited from Field::ObjectBase | |
| static f32 | CheckPointAgainstLineSegment (const EGG::Vector3f &point, const EGG::Vector3f &a, const EGG::Vector3f &b) |
| Calculates on what side of line segment ab point lies. | |
| static EGG::Vector3f | RotateXZByYaw (f32 angle, const EGG::Vector3f &v) |
| Rotates a vector around the Y-axis and returns the XZ-plane portion of the vector. | |
| static EGG::Vector3f | RotateAxisAngle (f32 angle, const EGG::Vector3f &axis, const EGG::Vector3f &v1) |
| static void | SetRotTangentHorizontal (EGG::Matrix34f &mat, const EGG::Vector3f &up, const EGG::Vector3f &tangent) |
| static EGG::Matrix34f | OrthonormalBasis (const EGG::Vector3f &v) |
| static EGG::Matrix34f | RailOrthonormalBasis (const RailInterpolator &railInterpolator) |
| static EGG::Vector3f | Interpolate (f32 t, const EGG::Vector3f &v0, const EGG::Vector3f &v1) |
Protected Attributes inherited from Field::ObjectCollidable | |
| ObjectCollisionBase * | m_collision |
Protected Attributes inherited from Field::ObjectBase | |
| Render::DrawMdl * | m_drawMdl |
| Abstract::g3d::ResFile * | m_resFile |
| ObjectId | m_id |
| RailInterpolator * | m_railInterpolator |
| BoxColUnit * | m_boxColUnit |
| Flags | m_flags |
| EGG::Vector3f | m_pos |
| EGG::Vector3f | m_rot |
| EGG::Vector3f | m_scale |
| EGG::Matrix34f | m_transform |
| const System::MapdataGeoObj * | m_mapObj |
|
0x806BEB54 |
Definition at line 432 of file ObjectCow.cc.
|
override0x806BEFEC |
Definition at line 459 of file ObjectCow.cc.
|
overridevirtual0x806BF064 |
< Distance at which a Cow will return to its leader
Reimplemented from Field::ObjectBase.
Definition at line 472 of file ObjectCow.cc.
|
private0x806BF114 |
Prevents cows from walking into each other.
Definition at line 488 of file ObjectCow.cc.
|
inlineoverridevirtual0x806BF348 |
Reimplemented from Field::ObjectCollidable.
Definition at line 165 of file ObjectCow.hh.
|
overridevirtual0x806BF02C |
Assigns the herd's rail to each child.
Reimplemented from Field::ObjectBase.
Definition at line 465 of file ObjectCow.cc.
|
inlinenodiscardoverridevirtual0x806BF42C |
Reimplemented from Field::ObjectBase.
Definition at line 160 of file ObjectCow.hh.
|
inlineoverridevirtual0x806BF34C |
Reimplemented from Field::ObjectBase.
Definition at line 168 of file ObjectCow.hh.
|
private |
Definition at line 174 of file ObjectCow.hh.
|
private |
Definition at line 173 of file ObjectCow.hh.