Open
Graph Drawing
Framework

 v.2010.10
 

Public Member Functions | Private Member Functions | Private Attributes

ogdf::NMM Class Reference

#include <ogdf/internal/energybased/NMM.h>

List of all members.

Public Member Functions

 NMM ()
 ~NMM ()
void calculate_repulsive_forces (const Graph &G, NodeArray< NodeAttributes > &A, NodeArray< DPoint > &F_rep)
void make_initialisations (const Graph &G, double boxlength, DPoint down_left_corner, int particles_in_leaves, int precision, int tree_construction_way, int find_small_cell)
void deallocate_memory ()
void update_boxlength_and_cornercoordinate (double b_l, DPoint d_l_c)

Private Member Functions

void init_power_of_2_array (void)
void free_power_of_2_array ()
int power_of_two (int i)
int maxboxindex (int level)
void calculate_repulsive_forces_by_NMM (const Graph &G, NodeArray< NodeAttributes > &A, NodeArray< DPoint > &F_rep)
void calculate_repulsive_forces_by_exact_method (const Graph &G, NodeArray< NodeAttributes > &A, NodeArray< DPoint > &F_rep)
void build_up_red_quad_tree_path_by_path (const Graph &G, NodeArray< NodeAttributes > &A, QuadTreeNM &T)
void make_copy_and_init_Lists (List< ParticleInfo > &L_x_orig, List< ParticleInfo > &L_x_copy, List< ParticleInfo > &L_y_orig, List< ParticleInfo > &L_y_copy)
void build_up_root_node (const Graph &G, NodeArray< NodeAttributes > &A, QuadTreeNM &T)
void create_sorted_coordinate_Lists (const Graph &G, NodeArray< NodeAttributes > &A, List< ParticleInfo > &L_x, List< ParticleInfo > &L_y)
void decompose_subtreenode (QuadTreeNM &T, List< ParticleInfo > &act_x_List_copy, List< ParticleInfo > &act_y_List_copy, List< QuadTreeNodeNM * > &new_leaf_List)
void calculate_boundaries_of_act_node (QuadTreeNodeNM *act_ptr, double &x_min, double &x_max, double &y_min, double &y_max)
bool in_lt_quad (QuadTreeNodeNM *act_ptr, double x_min, double x_max, double y_min, double y_max)
bool in_rt_quad (QuadTreeNodeNM *act_ptr, double x_min, double x_max, double y_min, double y_max)
bool in_lb_quad (QuadTreeNodeNM *act_ptr, double x_min, double x_max, double y_min, double y_max)
bool in_rb_quad (QuadTreeNodeNM *act_ptr, double x_min, double x_max, double y_min, double y_max)
void split_in_x_direction (QuadTreeNodeNM *act_ptr, List< ParticleInfo > *&L_x_left_ptr, List< ParticleInfo > *&L_y_left_ptr, List< ParticleInfo > *&L_x_right_ptr, List< ParticleInfo > *&L_y_right_ptr)
void split_in_y_direction (QuadTreeNodeNM *act_ptr, List< ParticleInfo > *&L_x_bottom_ptr, List< ParticleInfo > *&L_y_bottom_ptr, List< ParticleInfo > *&L_x_top_ptr, List< ParticleInfo > *&L_y_top_ptr)
void x_delete_right_subLists (QuadTreeNodeNM *act_ptr, List< ParticleInfo > *&L_x_left_ptr, List< ParticleInfo > *&L_y_left_ptr, List< ParticleInfo > *&L_x_right_ptr, List< ParticleInfo > *&L_y_right_ptr, ListIterator< ParticleInfo > last_left_item)
void x_delete_left_subLists (QuadTreeNodeNM *act_ptr, List< ParticleInfo > *&L_x_left_ptr, List< ParticleInfo > *&L_y_left_ptr, List< ParticleInfo > *&L_x_right_ptr, List< ParticleInfo > *&L_y_right_ptr, ListIterator< ParticleInfo > last_left_item)
void y_delete_right_subLists (QuadTreeNodeNM *act_ptr, List< ParticleInfo > *&L_x_left_ptr, List< ParticleInfo > *&L_y_left_ptr, List< ParticleInfo > *&L_x_right_ptr, List< ParticleInfo > *&L_y_right_ptr, ListIterator< ParticleInfo > last_left_item)
void y_delete_left_subLists (QuadTreeNodeNM *act_ptr, List< ParticleInfo > *&L_x_left_ptr, List< ParticleInfo > *&L_y_left_ptr, List< ParticleInfo > *&L_x_right_ptr, List< ParticleInfo > *&L_y_right_ptr, ListIterator< ParticleInfo > last_left_item)
void split_in_y_direction (QuadTreeNodeNM *act_ptr, List< ParticleInfo > *&L_x_ptr, List< ParticleInfo > *&L_x_b_ptr, List< ParticleInfo > *&L_x_t_ptr, List< ParticleInfo > *&L_y_ptr, List< ParticleInfo > *&L_y_b_ptr, List< ParticleInfo > *&L_y_t_ptr)
void y_move_left_subLists (List< ParticleInfo > *&L_x_ptr, List< ParticleInfo > *&L_x_b_ptr, List< ParticleInfo > *&L_x_t_ptr, List< ParticleInfo > *&L_y_ptr, List< ParticleInfo > *&L_y_b_ptr, List< ParticleInfo > *&L_y_t_ptr, ListIterator< ParticleInfo > last_left_item)
void y_move_right_subLists (List< ParticleInfo > *&L_x_ptr, List< ParticleInfo > *&L_x_b_ptr, List< ParticleInfo > *&L_x_t_ptr, List< ParticleInfo > *&L_y_ptr, List< ParticleInfo > *&L_y_b_ptr, List< ParticleInfo > *&L_y_t_ptr, ListIterator< ParticleInfo > last_left_item)
void build_up_sorted_subLists (List< ParticleInfo > &L_x_copy, List< ParticleInfo > &act_y_List_copy)
void build_up_red_quad_tree_subtree_by_subtree (const Graph &G, NodeArray< NodeAttributes > &A, QuadTreeNM &T)
void build_up_root_vertex (const Graph &G, QuadTreeNM &T)
void construct_subtree (NodeArray< NodeAttributes > &A, QuadTreeNM &T, QuadTreeNodeNM *subtree_root_ptr, List< QuadTreeNodeNM * > &new_subtree_root_List)
void construct_complete_subtree (QuadTreeNM &T, int subtree_depth, Array2D< QuadTreeNodeNM * > &leaf_ptr, int act_depth, int act_x_index, int act_y_index)
void set_contained_nodes_for_leaves (NodeArray< NodeAttributes > &A, QuadTreeNodeNM *subtree_root_ptr, Array2D< QuadTreeNodeNM * > &leaf_ptr, int maxindex)
void set_particlenumber_in_subtree_entries (QuadTreeNM &T)
void construct_reduced_subtree (NodeArray< NodeAttributes > &A, QuadTreeNM &T, List< QuadTreeNodeNM * > &new_subtree_root_List)
void delete_empty_subtrees (QuadTreeNM &T)
bool check_and_delete_degenerated_node (QuadTreeNM &T)
void delete_sparse_subtree (QuadTreeNM &T, QuadTreeNodeNM *new_leaf_ptr)
void collect_contained_nodes (QuadTreeNM &T, QuadTreeNodeNM *new_leaf_ptr)
bool find_smallest_quad (NodeArray< NodeAttributes > &A, QuadTreeNM &T)
void find_small_cell_iteratively (QuadTreeNodeNM *act_ptr, double x_min, double x_max, double y_min, double y_max)
void find_small_cell_by_formula (QuadTreeNodeNM *act_ptr, double x_min, double x_max, double y_min, double y_max)
void delete_red_quad_tree_and_count_treenodes (QuadTreeNM &T)
void form_multipole_expansions (NodeArray< NodeAttributes > &A, QuadTreeNM &T, List< QuadTreeNodeNM * > &quad_tree_leaves)
void form_multipole_expansion_of_subtree (NodeArray< NodeAttributes > &A, QuadTreeNM &T, List< QuadTreeNodeNM * > &quad_tree_leaves)
void init_expansion_Lists (QuadTreeNodeNM *act_ptr)
void set_center (QuadTreeNodeNM *act_ptr)
void form_multipole_expansion_of_leaf_node (NodeArray< NodeAttributes > &A, QuadTreeNodeNM *act_ptr)
void add_shifted_expansion_to_father_expansion (QuadTreeNodeNM *act_ptr)
void calculate_local_expansions_and_WSPRLS (NodeArray< NodeAttributes > &A, QuadTreeNodeNM *act_node_ptr)
bool well_seperated (QuadTreeNodeNM *ptr_1, QuadTreeNodeNM *ptr_2)
bool bordering (QuadTreeNodeNM *ptr_1, QuadTreeNodeNM *ptr_2)
void add_shifted_local_exp_of_parent (QuadTreeNodeNM *node_ptr)
void add_local_expansion (QuadTreeNodeNM *ptr_1, QuadTreeNodeNM *ptr_2)
void add_local_expansion_of_leaf (NodeArray< NodeAttributes > &A, QuadTreeNodeNM *leaf_ptr, QuadTreeNodeNM *act_ptr)
void transform_local_exp_to_forces (NodeArray< NodeAttributes > &A, List< QuadTreeNodeNM * > &quad_tree_leaves, NodeArray< DPoint > &F_local_exp)
void transform_multipole_exp_to_forces (NodeArray< NodeAttributes > &A, List< QuadTreeNodeNM * > &quad_tree_leaves, NodeArray< DPoint > &F_multipole_exp)
void calculate_neighbourcell_forces (NodeArray< NodeAttributes > &A, List< QuadTreeNodeNM * > &quad_tree_leaves, NodeArray< DPoint > &F_direct)
void add_rep_forces (const Graph &G, NodeArray< DPoint > &F_direct, NodeArray< DPoint > &F_multipole_exp, NodeArray< DPoint > &F_local_exp, NodeArray< DPoint > &F_rep)
double f_rep_scalar (double d)
void init_binko (int t)
void free_binko ()
double binko (int n, int k)
int tree_construction_way () const
void tree_construction_way (int a)
int find_sm_cell () const
void find_sm_cell (int a)
void particles_in_leaves (int b)
int particles_in_leaves () const
void precision (int p)
int precision () const

Private Attributes

int MIN_NODE_NUMBER
bool using_NMM
FruchtermanReingold ExactMethod
int _tree_construction_way
int _find_small_cell
int _particles_in_leaves
int _precision
double boxlength
DPoint down_left_corner
int * power_of_2
int max_power_of_2_index
double ** BK
List< DPointrep_forces

Detailed Description

Definition at line 73 of file NMM.h.


Constructor & Destructor Documentation

ogdf::NMM::NMM (  ) 
ogdf::NMM::~NMM (  ) 

Member Function Documentation

void ogdf::NMM::add_local_expansion ( QuadTreeNodeNM ptr_1,
QuadTreeNodeNM ptr_2 
) [private]
void ogdf::NMM::add_local_expansion_of_leaf ( NodeArray< NodeAttributes > &  A,
QuadTreeNodeNM leaf_ptr,
QuadTreeNodeNM act_ptr 
) [private]
void ogdf::NMM::add_rep_forces ( const Graph G,
NodeArray< DPoint > &  F_direct,
NodeArray< DPoint > &  F_multipole_exp,
NodeArray< DPoint > &  F_local_exp,
NodeArray< DPoint > &  F_rep 
) [private]
void ogdf::NMM::add_shifted_expansion_to_father_expansion ( QuadTreeNodeNM act_ptr  )  [private]
void ogdf::NMM::add_shifted_local_exp_of_parent ( QuadTreeNodeNM node_ptr  )  [private]
double ogdf::NMM::binko ( int  n,
int  k 
) [private]
bool ogdf::NMM::bordering ( QuadTreeNodeNM ptr_1,
QuadTreeNodeNM ptr_2 
) [private]
void ogdf::NMM::build_up_red_quad_tree_path_by_path ( const Graph G,
NodeArray< NodeAttributes > &  A,
QuadTreeNM T 
) [private]
void ogdf::NMM::build_up_red_quad_tree_subtree_by_subtree ( const Graph G,
NodeArray< NodeAttributes > &  A,
QuadTreeNM T 
) [private]
void ogdf::NMM::build_up_root_node ( const Graph G,
NodeArray< NodeAttributes > &  A,
QuadTreeNM T 
) [private]
void ogdf::NMM::build_up_root_vertex ( const Graph G,
QuadTreeNM T 
) [private]
void ogdf::NMM::build_up_sorted_subLists ( List< ParticleInfo > &  L_x_copy,
List< ParticleInfo > &  act_y_List_copy 
) [private]
void ogdf::NMM::calculate_boundaries_of_act_node ( QuadTreeNodeNM act_ptr,
double &  x_min,
double &  x_max,
double &  y_min,
double &  y_max 
) [private]
void ogdf::NMM::calculate_local_expansions_and_WSPRLS ( NodeArray< NodeAttributes > &  A,
QuadTreeNodeNM act_node_ptr 
) [private]
void ogdf::NMM::calculate_neighbourcell_forces ( NodeArray< NodeAttributes > &  A,
List< QuadTreeNodeNM * > &  quad_tree_leaves,
NodeArray< DPoint > &  F_direct 
) [private]
void ogdf::NMM::calculate_repulsive_forces ( const Graph G,
NodeArray< NodeAttributes > &  A,
NodeArray< DPoint > &  F_rep 
)
void ogdf::NMM::calculate_repulsive_forces_by_exact_method ( const Graph G,
NodeArray< NodeAttributes > &  A,
NodeArray< DPoint > &  F_rep 
) [private]
void ogdf::NMM::calculate_repulsive_forces_by_NMM ( const Graph G,
NodeArray< NodeAttributes > &  A,
NodeArray< DPoint > &  F_rep 
) [private]
bool ogdf::NMM::check_and_delete_degenerated_node ( QuadTreeNM T  )  [private]
void ogdf::NMM::collect_contained_nodes ( QuadTreeNM T,
QuadTreeNodeNM new_leaf_ptr 
) [private]
void ogdf::NMM::construct_complete_subtree ( QuadTreeNM T,
int  subtree_depth,
Array2D< QuadTreeNodeNM * > &  leaf_ptr,
int  act_depth,
int  act_x_index,
int  act_y_index 
) [private]
void ogdf::NMM::construct_reduced_subtree ( NodeArray< NodeAttributes > &  A,
QuadTreeNM T,
List< QuadTreeNodeNM * > &  new_subtree_root_List 
) [private]
void ogdf::NMM::construct_subtree ( NodeArray< NodeAttributes > &  A,
QuadTreeNM T,
QuadTreeNodeNM subtree_root_ptr,
List< QuadTreeNodeNM * > &  new_subtree_root_List 
) [private]
void ogdf::NMM::create_sorted_coordinate_Lists ( const Graph G,
NodeArray< NodeAttributes > &  A,
List< ParticleInfo > &  L_x,
List< ParticleInfo > &  L_y 
) [private]
void ogdf::NMM::deallocate_memory (  ) 
void ogdf::NMM::decompose_subtreenode ( QuadTreeNM T,
List< ParticleInfo > &  act_x_List_copy,
List< ParticleInfo > &  act_y_List_copy,
List< QuadTreeNodeNM * > &  new_leaf_List 
) [private]
void ogdf::NMM::delete_empty_subtrees ( QuadTreeNM T  )  [private]
void ogdf::NMM::delete_red_quad_tree_and_count_treenodes ( QuadTreeNM T  )  [private]
void ogdf::NMM::delete_sparse_subtree ( QuadTreeNM T,
QuadTreeNodeNM new_leaf_ptr 
) [private]
double ogdf::NMM::f_rep_scalar ( double  d  )  [private]
void ogdf::NMM::find_sm_cell ( int  a  )  [inline, private]

Definition at line 479 of file NMM.h.

int ogdf::NMM::find_sm_cell (  )  const [inline, private]

Definition at line 478 of file NMM.h.

void ogdf::NMM::find_small_cell_by_formula ( QuadTreeNodeNM act_ptr,
double  x_min,
double  x_max,
double  y_min,
double  y_max 
) [private]
void ogdf::NMM::find_small_cell_iteratively ( QuadTreeNodeNM act_ptr,
double  x_min,
double  x_max,
double  y_min,
double  y_max 
) [private]
bool ogdf::NMM::find_smallest_quad ( NodeArray< NodeAttributes > &  A,
QuadTreeNM T 
) [private]
void ogdf::NMM::form_multipole_expansion_of_leaf_node ( NodeArray< NodeAttributes > &  A,
QuadTreeNodeNM act_ptr 
) [private]
void ogdf::NMM::form_multipole_expansion_of_subtree ( NodeArray< NodeAttributes > &  A,
QuadTreeNM T,
List< QuadTreeNodeNM * > &  quad_tree_leaves 
) [private]
void ogdf::NMM::form_multipole_expansions ( NodeArray< NodeAttributes > &  A,
QuadTreeNM T,
List< QuadTreeNodeNM * > &  quad_tree_leaves 
) [private]
void ogdf::NMM::free_binko (  )  [private]
void ogdf::NMM::free_power_of_2_array (  )  [private]
bool ogdf::NMM::in_lb_quad ( QuadTreeNodeNM act_ptr,
double  x_min,
double  x_max,
double  y_min,
double  y_max 
) [private]
bool ogdf::NMM::in_lt_quad ( QuadTreeNodeNM act_ptr,
double  x_min,
double  x_max,
double  y_min,
double  y_max 
) [private]
bool ogdf::NMM::in_rb_quad ( QuadTreeNodeNM act_ptr,
double  x_min,
double  x_max,
double  y_min,
double  y_max 
) [private]
bool ogdf::NMM::in_rt_quad ( QuadTreeNodeNM act_ptr,
double  x_min,
double  x_max,
double  y_min,
double  y_max 
) [private]
void ogdf::NMM::init_binko ( int  t  )  [private]
void ogdf::NMM::init_expansion_Lists ( QuadTreeNodeNM act_ptr  )  [private]
void ogdf::NMM::init_power_of_2_array ( void   )  [private]
void ogdf::NMM::make_copy_and_init_Lists ( List< ParticleInfo > &  L_x_orig,
List< ParticleInfo > &  L_x_copy,
List< ParticleInfo > &  L_y_orig,
List< ParticleInfo > &  L_y_copy 
) [private]
void ogdf::NMM::make_initialisations ( const Graph G,
double  boxlength,
DPoint  down_left_corner,
int  particles_in_leaves,
int  precision,
int  tree_construction_way,
int  find_small_cell 
)
int ogdf::NMM::maxboxindex ( int  level  )  [private]
void ogdf::NMM::particles_in_leaves ( int  b  )  [inline, private]

Definition at line 483 of file NMM.h.

int ogdf::NMM::particles_in_leaves (  )  const [inline, private]

Definition at line 484 of file NMM.h.

int ogdf::NMM::power_of_two ( int  i  )  [private]
void ogdf::NMM::precision ( int  p  )  [inline, private]

Definition at line 487 of file NMM.h.

int ogdf::NMM::precision (  )  const [inline, private]

Definition at line 488 of file NMM.h.

void ogdf::NMM::set_center ( QuadTreeNodeNM act_ptr  )  [private]
void ogdf::NMM::set_contained_nodes_for_leaves ( NodeArray< NodeAttributes > &  A,
QuadTreeNodeNM subtree_root_ptr,
Array2D< QuadTreeNodeNM * > &  leaf_ptr,
int  maxindex 
) [private]
void ogdf::NMM::set_particlenumber_in_subtree_entries ( QuadTreeNM T  )  [private]
void ogdf::NMM::split_in_x_direction ( QuadTreeNodeNM act_ptr,
List< ParticleInfo > *&  L_x_left_ptr,
List< ParticleInfo > *&  L_y_left_ptr,
List< ParticleInfo > *&  L_x_right_ptr,
List< ParticleInfo > *&  L_y_right_ptr 
) [private]
void ogdf::NMM::split_in_y_direction ( QuadTreeNodeNM act_ptr,
List< ParticleInfo > *&  L_x_ptr,
List< ParticleInfo > *&  L_x_b_ptr,
List< ParticleInfo > *&  L_x_t_ptr,
List< ParticleInfo > *&  L_y_ptr,
List< ParticleInfo > *&  L_y_b_ptr,
List< ParticleInfo > *&  L_y_t_ptr 
) [private]
void ogdf::NMM::split_in_y_direction ( QuadTreeNodeNM act_ptr,
List< ParticleInfo > *&  L_x_bottom_ptr,
List< ParticleInfo > *&  L_y_bottom_ptr,
List< ParticleInfo > *&  L_x_top_ptr,
List< ParticleInfo > *&  L_y_top_ptr 
) [private]
void ogdf::NMM::transform_local_exp_to_forces ( NodeArray< NodeAttributes > &  A,
List< QuadTreeNodeNM * > &  quad_tree_leaves,
NodeArray< DPoint > &  F_local_exp 
) [private]
void ogdf::NMM::transform_multipole_exp_to_forces ( NodeArray< NodeAttributes > &  A,
List< QuadTreeNodeNM * > &  quad_tree_leaves,
NodeArray< DPoint > &  F_multipole_exp 
) [private]
int ogdf::NMM::tree_construction_way (  )  const [inline, private]

Definition at line 471 of file NMM.h.

void ogdf::NMM::tree_construction_way ( int  a  )  [inline, private]

Definition at line 472 of file NMM.h.

void ogdf::NMM::update_boxlength_and_cornercoordinate ( double  b_l,
DPoint  d_l_c 
)
bool ogdf::NMM::well_seperated ( QuadTreeNodeNM ptr_1,
QuadTreeNodeNM ptr_2 
) [private]
void ogdf::NMM::x_delete_left_subLists ( QuadTreeNodeNM act_ptr,
List< ParticleInfo > *&  L_x_left_ptr,
List< ParticleInfo > *&  L_y_left_ptr,
List< ParticleInfo > *&  L_x_right_ptr,
List< ParticleInfo > *&  L_y_right_ptr,
ListIterator< ParticleInfo last_left_item 
) [private]
void ogdf::NMM::x_delete_right_subLists ( QuadTreeNodeNM act_ptr,
List< ParticleInfo > *&  L_x_left_ptr,
List< ParticleInfo > *&  L_y_left_ptr,
List< ParticleInfo > *&  L_x_right_ptr,
List< ParticleInfo > *&  L_y_right_ptr,
ListIterator< ParticleInfo last_left_item 
) [private]
void ogdf::NMM::y_delete_left_subLists ( QuadTreeNodeNM act_ptr,
List< ParticleInfo > *&  L_x_left_ptr,
List< ParticleInfo > *&  L_y_left_ptr,
List< ParticleInfo > *&  L_x_right_ptr,
List< ParticleInfo > *&  L_y_right_ptr,
ListIterator< ParticleInfo last_left_item 
) [private]
void ogdf::NMM::y_delete_right_subLists ( QuadTreeNodeNM act_ptr,
List< ParticleInfo > *&  L_x_left_ptr,
List< ParticleInfo > *&  L_y_left_ptr,
List< ParticleInfo > *&  L_x_right_ptr,
List< ParticleInfo > *&  L_y_right_ptr,
ListIterator< ParticleInfo last_left_item 
) [private]
void ogdf::NMM::y_move_left_subLists ( List< ParticleInfo > *&  L_x_ptr,
List< ParticleInfo > *&  L_x_b_ptr,
List< ParticleInfo > *&  L_x_t_ptr,
List< ParticleInfo > *&  L_y_ptr,
List< ParticleInfo > *&  L_y_b_ptr,
List< ParticleInfo > *&  L_y_t_ptr,
ListIterator< ParticleInfo last_left_item 
) [private]
void ogdf::NMM::y_move_right_subLists ( List< ParticleInfo > *&  L_x_ptr,
List< ParticleInfo > *&  L_x_b_ptr,
List< ParticleInfo > *&  L_x_t_ptr,
List< ParticleInfo > *&  L_y_ptr,
List< ParticleInfo > *&  L_y_b_ptr,
List< ParticleInfo > *&  L_y_t_ptr,
ListIterator< ParticleInfo last_left_item 
) [private]

Member Data Documentation

Definition at line 107 of file NMM.h.

Definition at line 108 of file NMM.h.

int ogdf::NMM::_precision [private]

Definition at line 109 of file NMM.h.

Definition at line 106 of file NMM.h.

double** ogdf::NMM::BK [private]

Definition at line 117 of file NMM.h.

double ogdf::NMM::boxlength [private]

Definition at line 111 of file NMM.h.

Definition at line 112 of file NMM.h.

Definition at line 104 of file NMM.h.

Definition at line 116 of file NMM.h.

Definition at line 99 of file NMM.h.

int* ogdf::NMM::power_of_2 [private]

Definition at line 114 of file NMM.h.

Definition at line 118 of file NMM.h.

bool ogdf::NMM::using_NMM [private]

Definition at line 102 of file NMM.h.


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