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