SuperTuxKart
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
CheckSphere Class Reference

This class implements a check sphere that is used to change the ambient light if a kart is inside this sphere. More...

#include <check_sphere.hpp>

Inheritance diagram for CheckSphere:
Inheritance graph
[legend]

Public Member Functions

 CheckSphere (const XMLNode &node, unsigned int index)
 Constructor for a checksphere.
 
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 sphere.
 
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 CheckStructureclone ()
 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 CheckStructureclone ()=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 sphere.
 
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.
 

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< Vec3m_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.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ CheckSphere()

CheckSphere::CheckSphere ( const XMLNode node,
unsigned int  index 
)

Constructor for a checksphere.

Parameters
check_managerPointer to the check manager, which is needed when resetting e.g. new lap counters.
nodeXML node containing the parameters for this checkline.

Member Function Documentation

◆ clone()

virtual CheckStructure * CheckSphere::clone ( )
inlinevirtual

Clone to child process for server usage (atm no sound or scripting).

Implements CheckStructure.

◆ isTriggered()

bool CheckSphere::isTriggered ( const Vec3 old_pos,
const Vec3 new_pos,
int  kart_id 
)
virtual

True if going from old_pos to new_pos enters or leaves this sphere.

This function is called from update (of the checkline structure). It also updates the flag about which karts are inside

Parameters
old_posPosition in previous frame.
new_posPosition in current frame.
kart_idIndex of the kart, can be used to store kart specific additional data.

Implements CheckStructure.

Member Data Documentation

◆ m_distance2

std::vector<float> CheckSphere::m_distance2
private

Stores the distance of each kart from the center of this sphere.

This saves some computations.


The documentation for this class was generated from the following files: