/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2014, by the GROMACS development team, led by
+ * Copyright (c) 2014,2015, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
* the research papers on the package. Check out http://www.gromacs.org.
*/
+%PostInitialisationCode
+import_array();
+%End
+
+enum e_index_t {
+ INDEX_UNKNOWN,
+ INDEX_ATOM,
+ INDEX_RES,
+ INDEX_MOL,
+ INDEX_ALL
+};
+
class SelectionPosition /NoDefaultCtors/ {
%TypeHeaderCode
#include "gromacs/selection/selection.h"
%End
public:
-// e_index_t type();
-// const rvec& x();
-// const rvec& v();
-// const rvec& f();
+ e_index_t type();
+ SIP_PYOBJECT x();
+ %MethodCode
+ sipRes = array1dToNumpy(3, sipCpp->x());
+ %End
+ SIP_PYOBJECT v();
+ %MethodCode
+ sipRes = array1dToNumpy(3, sipCpp->v());
+ %End
+ SIP_PYOBJECT f();
+ %MethodCode
+ sipRes = array1dToNumpy(3, sipCpp->f());
+ %End
double mass();
double charge();
int atomCount();
-// ConstArrayRef<int> atomIndices();
+ SIP_PYOBJECT atomIndices();
+ %MethodCode
+ sipRes = iarray1dToNumpy(sipCpp->atomIndices().size(), sipCpp->atomIndices().data());
+ %End
bool selected();
int refId();
int mappedId();
};
+enum e_coverfrac_t {
+ CFRAC_NONE,
+ CFRAC_SOLIDANGLE
+};
+
class Selection {
%TypeHeaderCode
#include "gromacs/selection/selection.h"
+#include "numpy_conv.h"
using namespace gmx;
%End
const char* name();
const char* selectionText();
bool isDynamic();
+ e_index_t type();
bool hasOnlyAtoms();
int atomCount();
-// ConstArrayRef<int> atomIndices();
+ SIP_PYOBJECT atomIndices();
+ %MethodCode
+ sipRes = iarray1dToNumpy(sipCpp->atomIndices().size(), sipCpp->atomIndices().data());
+ %End
int posCount();
SelectionPosition position(int);
-// ConstArrayRef<rvec> coordinates();
+ SIP_PYOBJECT coordinates();
+ %MethodCode
+ sipRes = array2dToNumpy(sipCpp->coordinates().size(), 3, sipCpp->coordinates().data());
+ %End
bool hasVelocities();
-// ConstArrayRef<rvec> velocities();
+ SIP_PYOBJECT velocities();
+ %MethodCode
+ sipRes = array2dToNumpy(sipCpp->velocities().size(), 3, sipCpp->velocities().data());
+ %End
bool hasForces();
-// ConstArrayRef<rvec> forces();
-// ConstArrayRef<real> masses();
-// ConstArrayRef<real> charges();
-// ConstArrayRef<int> refIds();
-// ConstArrayRef<int> mappedIds();
+ SIP_PYOBJECT forces();
+ %MethodCode
+ sipRes = array2dToNumpy(sipCpp->forces().size(), 3, sipCpp->forces().data());
+ %End
+ SIP_PYOBJECT masses();
+ %MethodCode
+ sipRes = array1dToNumpy(sipCpp->masses().size(), sipCpp->masses().data());
+ %End
+ SIP_PYOBJECT charges();
+ %MethodCode
+ sipRes = array1dToNumpy(sipCpp->charges().size(), sipCpp->charges().data());
+ %End
+ SIP_PYOBJECT refIds();
+ %MethodCode
+ sipRes = iarray1dToNumpy(sipCpp->refIds().size(), sipCpp->refIds().data());
+ %End
+ SIP_PYOBJECT mappedIds();
+ %MethodCode
+ sipRes = iarray1dToNumpy(sipCpp->mappedIds().size(), sipCpp->mappedIds().data());
+ %End
bool isCoveredFractionDynamic();
double coveredFraction();
-// bool initCoveredFraction(e_coverfrac_t);
+ bool initCoveredFraction(e_coverfrac_t);
void setEvaluateVelocities(bool);
void setEvaluateForces(bool);
void setOriginalId(int, int);