1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
// Copyright 2006-2007 Nanorex, Inc. See LICENSE file for details.
#ifndef MOLECULAB_H_INCLUDED
#define MOLECULAB_H_INCLUDED
#include <iostream>
#include "String.h"
#include "TabPe.h"
#include "AtomList.h"
#define MOLDEBUG 0
class MoleculaB
{
int nselec;
String info; //pequeña cadena informativa para pasar un mini titulo
// small informative string to pass a short title
double xmin, xmax, ymin, ymax, zmin, zmax;
public:
AtomList susatomos; //de ATOMOS, literally, "his atoms"
MoleculaB () {
nselec = 0;
info = String("");
}
void addVert (pto3D punto, int ti);
void addVert (double x, double y, double z, int ti);
void addVert (double x, double y, double z, int ti, String e);
void addVert (pto3D p, int ti, String e);
double getDim ();
double getLejania ();
void vaciar ();
void deseleccionar ();
void centrar ();
void giroxr (double th);
void giroyr (double th);
void girozr (double th);
void giroxg (double th);
void giroyg (double th);
void girozg (double th);
MoleculaB clona ();
void rm (int n);
void rmlast (int n);
void rmlast ();
int ocupa1 (pto3D pto1);
int ocupa (pto3D pto1, double limite);
int ocupa2 (pto3D pto1);
int atomoqueocupa1 (pto3D pto);
int atomoqueocupa (pto3D pto, double limite);
int atomoqueocupa2 (pto3D pto);
void mueve (int num, double x, double y, double z);
void mueve (int s, pto3D pto);
void sustituye (int num, int ti, pto3D pto);
void ponconec ();
void ponconec (double param);
void ponconecsafe ();
void reconec ();
void reconec (double param);
void reconecsafe ();
//metodo paraeliminar conectividades redundantes, angulos demasiado pequeños (<60, en principio)
int depuraconec ();
//metodo paraeliminar conectividades redundantes, angulos demasiado pequeños (<60, en principio);
void centraentorno (int num);
void centraentorno ();
void conecta (int i, int j);
void conectaA (int i, int j);
void desconecta (int i, int j);
double distancia (int a, int b);
double angulo (int a, int b, int c);
double dihedro (int a, int b, int c, int d);
int nvec (int i);
int nvert ();
pto3D vert (int i);
int tipo (int i);
String etiq (int i);
String pers (int i);
double r (int i);
int selecstatus (int i);
void selecciona (int i, int status);
void setInfo (String in);
String getInfo ();
void marcaborra (int aborrar);
void borramarcados ();
friend std::ostream& operator<< (std::ostream& s, const MoleculaB& a) {
s << "<MoleculaT " << a.info << ">";
return s;
}
};
#endif
|