Pteros  2.0
Molecular modeling library for human beings!
distance_search_contacts_1sel.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_CONTACTS_1SEL_H_INCLUDED
24 #define DISTANCE_SEARCH_CONTACTS_1SEL_H_INCLUDED
25 
26 #include "distance_search_contacts.h"
27 
28 namespace pteros {
29 
30 class Distance_search_contacts_1sel: public Distance_search_contacts {
31 public:
32  Distance_search_contacts_1sel(float d, const Selection& sel,
33  std::vector<Eigen::Vector2i> &pairs,
34  bool absolute_index = false,
35  bool periodic = false,
36  std::vector<float> *dist_vec = nullptr);
37 protected:
38  void create_grid(const Selection &sel);
39 
40  virtual void do_part(int dim, int _b, int _e,
41  std::deque<Eigen::Vector2i>& bon,
42  std::deque<float>* dist_vec);
43 
44  void search_in_cell(int x, int y, int z,
45  std::deque<Eigen::Vector2i> &bon,
46  std::deque<float> *dist_vec,
47  bool is_periodic);
48 };
49 
50 }
51 
52 #endif
Pteros namespace.
Definition: options.cpp:32