SuperTuxKart
|
This class implements a check sphere that is used to change the ambient light if a kart is inside this sphere. More...
#include <check_cylinder.hpp>
Public Member Functions | |
CheckCylinder (const XMLNode &node, std::function< void(int)> triggering_function) | |
virtual bool | isTriggered (const Vec3 &old_pos, const Vec3 &new_pos, int kart_id) |
True if going from old_pos to new_pos enters or leaves this cylinder. | |
bool | isInside (int index) const |
Returns if kart indx is currently inside of the sphere. | |
float | getDistance2ForKart (int index) const |
Returns the squared distance of kart index from the enter of this sphere. | |
float | getRadius2 () const |
Returns the square of the radius of this sphere. | |
virtual CheckStructure * | clone () |
Clone to child process for server usage (atm no sound or scripting). | |
Public Member Functions inherited from CheckStructure | |
CheckStructure (const XMLNode &node, unsigned int index) | |
virtual void | update (float dt) |
Updates all check structures. | |
virtual void | resetAfterKartMove (unsigned int kart_index) |
virtual void | resetAfterRewind (unsigned int kart_index) |
virtual void | changeDebugColor (bool is_active) |
virtual bool | isTriggered (const Vec3 &old_pos, const Vec3 &new_pos, int indx)=0 |
True if going from old_pos to new_pos crosses this checkline. | |
virtual void | trigger (unsigned int kart_index) |
Is called when this check structure is triggered. | |
virtual void | reset (const Track &track) |
Initialises the 'previous positions' of all karts with the start position defined for this track. | |
CheckType | getType () const |
Returns the type of this check structure. | |
void | addSuccessor (unsigned int i) |
Adds the index of a successor check structure which will get triggered by this check structure. | |
virtual bool | triggeringCheckline () const |
virtual void | saveCompleteState (BareNetworkString *bns) |
virtual void | restoreCompleteState (const BareNetworkString &b) |
void | saveIsActive (int kart_id, BareNetworkString *bns) |
void | restoreIsActive (int kart_id, const BareNetworkString &b) |
int | getIndex () const |
virtual CheckStructure * | clone ()=0 |
Clone to child process for server usage (atm no sound or scripting). | |
Private Attributes | |
Vec3 | m_center_point |
Center of the sphere. | |
float | m_radius2 |
Squared radius of the cylinder. | |
float | m_height |
std::vector< bool > | m_is_inside |
A flag for each kart to indicate if it's inside of the sphere. | |
std::vector< float > | m_distance2 |
Stores the distance of each kart from the center of this sphere. | |
std::function< void(int)> | m_triggering_function |
Function to call when triggered. | |
Additional Inherited Members | |
Public Types inherited from CheckStructure | |
enum | CheckType { CT_NEW_LAP , CT_ACTIVATE , CT_TOGGLE , CT_CANNON , CT_GOAL , CT_AMBIENT_SPHERE , CT_TRIGGER } |
Different types of check structures: ACTIVATE: Activates another check structure (independent of the state that check structure is in) TOGGLE: Switches (inverts) the state of another check structure. More... | |
Protected Member Functions inherited from CheckStructure | |
CheckStructure () | |
For CheckTrigger or CheckCylinder. | |
Protected Attributes inherited from CheckStructure | |
AlignedArray< Vec3 > | m_previous_position |
Stores the previous position of all karts. | |
std::vector< bool > | m_is_active |
Stores if this check structure is active (for a given kart). | |
bool | m_active_at_reset |
True if this check structure should be activated at a reset. | |
unsigned int | m_index |
Stores the index of this check structure. | |
This class implements a check sphere that is used to change the ambient light if a kart is inside this sphere.
Besides a normal radius this sphere also has a 2nd 'inner' radius: player karts inside the inner radius will have the full new ambient light, karts outside the default light, and karts in between will mix the light dependent on distance.
|
inlinevirtual |
Clone to child process for server usage (atm no sound or scripting).
Implements CheckStructure.
True if going from old_pos to new_pos enters or leaves this cylinder.
This function is called from update (of the checkline structure). It also updates the flag about which karts are inside
old_pos | Position in previous frame. |
new_pos | Position in current frame. |
kart_id | Index of the kart, can be used to store kart specific additional data. |
Implements CheckStructure.
|
private |
Stores the distance of each kart from the center of this sphere.
This saves some computations.