Pteros  2.0
Molecular modeling library for human beings!
distance_search_within_base.h
1 /*
2  *
3  * This source code is part of
4  * ******************
5  * *** Pteros ***
6  * ******************
7  * molecular modeling library
8  *
9  * Copyright (c) 2009-2013, Semen Yesylevskyy
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of Artistic License:
13  *
14  * Please note, that Artistic License is slightly more restrictive
15  * then GPL license in terms of distributing the modified versions
16  * of this software (they should be approved first).
17  * Read http://www.opensource.org/licenses/artistic-license-2.0.php
18  * for details. Such license fits scientific software better then
19  * GPL because it prevents the distribution of bugged derivatives.
20  *
21 */
22 
23 #ifndef DISTANCE_SEARCH_WITHIN_BASE_H_INCLUDED
24 #define DISTANCE_SEARCH_WITHIN_BASE_H_INCLUDED
25 
26 #include "distance_search_base.h"
27 #include "atomic_wrapper.h"
28 
29 namespace pteros {
30 
31 class Distance_search_within_base: public Distance_search_base {
32 protected:
33  // Array of atomic bools for used source points
34  std::vector<atomic_wrapper<bool>> used;
35  void do_search(int sel_size);
36  void do_part(int dim, int _b, int _e);
37  // Pointer to source selection
38  Selection* src_ptr;
39  void search_in_pair_of_cells(int sx, int sy, int sz, int tx, int ty, int tz, bool is_periodic);
40  void used_to_result(std::vector<int>& res, bool include_self,
41  const Selection &src, const Selection &target);
42 };
43 
44 }
45 
46 #endif
Pteros namespace.
Definition: options.cpp:32