30 #ifndef __SPH_VICINITY_H__
31 #define __SPH_VICINITY_H__
33 #include <siscone/vicinity.h>
38 #ifdef USE_QUADTREE_FOR_STABILITY_TEST
39 #include <siscone/quadtree.h>
122 std::vector<siscone::Cvicinity_inclusion>
pincluded;
125 #ifdef USE_QUADTREE_FOR_STABILITY_TEST
CSphvicinity()
default constructor
Implementation of a 2D quadtree.
CSph3vector angular_dir2
second direction to measure angles (sign)
std::vector< siscone::Cvicinity_inclusion > pincluded
the inclusion state of particles
CSph3vector centre
direction of the centre
double D2_R
euclidian distance (squared) corresp. to the arc R
unsigned int vicinity_size
number of elements in vicinity
double R2
squared normal radius
double inv_R_2EPS_COCIRC
R / (2*EPSILON_COCIRCULAR)
int n_part
number of particles
CSphvicinity_elm * ve_list
list of vicinity elements built from particle list (size=2*n)
std::vector< CSphmomentum > plist
the list of particles
a class to keep track of inclusion status in cone and in cocircular region while using minimal resour...
~CSphvicinity()
default destructor
double tan2R
squared tangent of the normal radius
CSphmomentum * v
pointer to the second borderline particle
list of element in the vicinity of a parent.
void build(CSphmomentum *_parent, double _VR)
build the vicinity list from the list of points.
void set_particle_list(std::vector< CSphmomentum > &_particle_list)
set the particle_list
std::list< CSphvicinity_elm * > cocircular
list of elements co-circular with this one NB: empty list uses less mem than vector ...
double cocircular_range
amount by which the angle can be varied while maintaining this point within co-circularity margin ...
double angle
angle with parent
std::vector< CSphvicinity_elm * > vicinity
list of points in parent's vicinity
bool side
true if angle on the positive side, false otherwise
CSphmomentum * parent
parent vector
double cosVR
cosine of the radius of the vicinity
double VR2
squared radius of the vicinity
double VR
radius of the vicinity
base class for dynamic coordinates management
base class for managing the spatial part of Cmomentum (defined after)
siscone::Cvicinity_inclusion * is_inside
variable to tell if the particle is inside or outside the cone
element in the vicinity of a parent.
void append_to_vicinity(CSphmomentum *v)
append a particle to the 'vicinity' list after having tested it and computed the angular-ordering qua...
CSph3vector parent_centre
parent centre
double inv_R_EPS_COCIRC
R / EPSILON_COCIRCULAR.
CSph3vector angular_dir1
main direction to measure angles