35
35
#include "random.h"
37
37
CxVector3 FoldVector(CxVector3 v);
38
extern CxObArray g_oaSingleMolecules;
39
extern CxObArray g_oaMolecules;
40
extern CxIntArray g_laAtomSMIndex;
42
class CClusterAnalysis;
40
44
class CClusterNode : public CxObject
65
class CExtendedCluster : public CxObject
68
bool IsHydrogenBond(int i1, int i2);
69
int CountDifferentAtomCodesUndir();
70
int CountDifferentAtomCodes();
71
void BuildAtomCodesUndir();
72
void BuildAtomCodes();
73
void CreateFrom(CClusterNode *n, CTimeStep *ts, CClusterAnalysis *ca, bool wrap);
83
double m_fSignificance;
84
double m_fSignificanceUndir;
87
CxObArray m_oaRelBonds;
88
CxIntArray m_iaMonomerSM;
89
CxObArray m_oaRelBondsUndir;
90
CxDoubleArray m_faAtomCodes;
91
CxDoubleArray m_faTempAtomCodes;
92
CxDoubleArray m_faAtomCodesUndir;
93
CxDoubleArray m_faTempAtomCodesUndir;
94
CxDoubleArray m_faCountAC;
61
98
class CClusterAnalysis : public CxObject
102
void REC_DumpAgr(CClusterNode *n, CGrace *g, int ec, unsigned long color);
103
unsigned int POVColorFunction(int i);
104
void WriteClusterXYZ(CClusterNode *n, CTimeStep *ts, FILE *a);
105
void RenderStepPOV(CTimeStep *ts, const char *s);
106
void REC_IsConnected(CExtendedCluster *ec, int i);
107
bool IsConnected(CExtendedCluster *ec);
108
void RenderFormula(const char *s);
109
void DumpAtomDOT(CExtendedCluster *ec, const char *s);
110
void DumpSchematicDirectedDOT(CExtendedCluster *ec, const char *s);
111
void DumpSchematicUndirectedDOT(CExtendedCluster *ec, const char *s);
112
bool AddToClusterTopo(CExtendedCluster *ec, int *i);
113
bool AddToClusterTopoUndir(CExtendedCluster *ec, int *i);
64
114
void WriteOutput(const char *multibuf);
65
115
void BuildClusterDistribution();
66
116
void BuildDistCache(CTimeStep *ts);
151
inline int MassCenter(int i)
153
return ((CxIntArray*)((CSingleMolecule*)g_oaSingleMolecules[g_laAtomSMIndex[i]])->m_oaAtomOffset[((CSingleMolecule*)g_oaSingleMolecules[g_laAtomSMIndex[i]])->m_oaAtomOffset.GetSize()-1])->GetAt(1);
159
int m_iPOVMonomersMin;
160
int m_iPOVMonomersMax;
161
float m_fPOVAngleIncrement;
164
int m_iPOVFrameCounter;
165
CxObArray m_oaPOVSMColorHistory;
167
CxObArray m_oaPOVExtendedCluster;
168
CxIntArray m_iaPOVSMColor;
169
CxIntArray m_iaPOVSMCluster;
170
bool m_bPOVTrajectory;
171
bool m_bClusterTopoTrajectories;
172
CxIntArray m_iaConnectedBuffer;
174
CxIntArray m_iaAtomBondFrom;
175
CxIntArray m_iaAtomBondTo;
176
int m_iClusterTopoTries;
177
CxIntArray m_iaClusterTopoSMTemp;
178
CxObArray m_oaClusterTopo;
179
CxObArray m_oaClusterTopoUndir;
180
bool m_bClusterTopoAllBonds;
181
bool m_bClusterTopoDrawAtom;
182
bool m_bClusterTopoDrawDirected;
183
bool m_bClusterTopoDrawUndirected;
184
float m_fClusterTopoHBThres;
185
float m_fClusterTopoDispThres;
186
CxIntArray m_iaClusterTopoMolColor;
188
int m_iClusterTopoMax;
103
191
CxObArray m_oaAtomGroups;