Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RadiusUpdate< direction, always_replace > Class Template Reference

Public Member Functions

 RadiusUpdate (CollideArray *cm)
 
void operator() (const Collidable &collidable, size_t index)
 

Detailed Description

template<int direction, bool always_replace>
class RadiusUpdate< direction, always_replace >

Definition at line 63 of file collide_map.cpp.

Constructor & Destructor Documentation

template<int direction, bool always_replace>
RadiusUpdate< direction, always_replace >::RadiusUpdate ( CollideArray cm)
inline

Definition at line 71 of file collide_map.cpp.

71  : RadiusUpdate( CollideArray *cm )
72  {
73  last_radius = 0;
74  last_big_radius = 0;
75  last_radius_key = 0;
76  last_big_radius_key = 0;
77  this->cm = cm;
78  }

Member Function Documentation

template<int direction, bool always_replace>
void RadiusUpdate< direction, always_replace >::operator() ( const Collidable collidable,
size_t  index 
)
inline

Definition at line 79 of file collide_map.cpp.

References Collidable::getKey(), index, CollideArray::max_bolt_radius, CollideArray::max_radius, Collidable::radius, and SIMULATION_ATOM.

80  {
81  double key = collidable.getKey();
82  float rad = collidable.radius;
83  if (rad > 0) {
84  if (rad > last_big_radius) {
85  last_radius = last_big_radius = rad;
86  last_radius_key = last_big_radius_key = key;
87  } else if (rad > last_radius) {
88  last_radius = rad;
89  last_radius_key = key;
90  } else {last_radius_key = key; }}
91  if (last_big_radius && fabs( key-last_big_radius_key ) > 2*cm->max_bolt_radius*SIMULATION_ATOM) {
92  last_big_radius = last_radius;
93  last_big_radius_key = last_radius_key;
94  last_radius = 0;
95  last_radius_key = key;
96  }
97  if (always_replace || cm->max_radius[index] < last_big_radius)
98  cm->max_radius[index] = last_big_radius;
99  }

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