Pteros
2.0
Molecular modeling library for human beings!
system_builder.h
1
/*
2
* This file is a part of
3
*
4
* ============================================
5
* ### Pteros molecular modeling library ###
6
* ============================================
7
*
8
* https://github.com/yesint/pteros
9
*
10
* (C) 2009-2021, Semen Yesylevskyy
11
*
12
* All works, which use Pteros, should cite the following papers:
13
*
14
* 1. Semen O. Yesylevskyy, "Pteros 2.0: Evolution of the fast parallel
15
* molecular analysis library for C++ and python",
16
* Journal of Computational Chemistry, 2015, 36(19), 1480–1488.
17
* doi: 10.1002/jcc.23943.
18
*
19
* 2. Semen O. Yesylevskyy, "Pteros: Fast and easy to use open-source C++
20
* library for molecular analysis",
21
* Journal of Computational Chemistry, 2012, 33(19), 1632–1636.
22
* doi: 10.1002/jcc.22989.
23
*
24
* This is free software distributed under Artistic License:
25
* http://www.opensource.org/licenses/artistic-license-2.0.php
26
*
27
*/
28
29
30
#pragma once
31
32
#include "pteros/core/system.h"
33
34
namespace
pteros {
35
36
// Mol_file is a friend of System and can access it's internals
37
// but derived *_file classes are not friends.
38
// In order to access internals of the System we define special access class
39
class
SystemBuilder {
40
public
:
41
SystemBuilder(System& s): sys(&s) {}
42
SystemBuilder(System* s): sys(s) {}
43
// When destroyed builer calls assign_resindex() and duing other preparations
44
~SystemBuilder();
45
46
void
allocate_atoms(
int
n);
47
void
set_atom(
int
i,
const
Atom& at);
48
Atom& atom(
int
i);
49
void
add_atom(
const
Atom& at);
50
private
:
51
System* sys;
52
};
53
54
}
// namespace
55
56
57
58
59
src
core
io
system_builder.h
Generated on Sat Jul 9 2022 15:59:59 for Pteros by
1.8.17