Update headers, fix style for some py files
[alexxy/gromacs.git] / src / python / sip / selection / selection.sip
index 85a228a9d983e9d950d3cf5c4586de350b2a12b2..1dafb43d92809c8ba951f82b6de7067c02c8be20 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * 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"
@@ -40,22 +52,40 @@ using namespace gmx;
 %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
 
@@ -66,23 +96,48 @@ public:
     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);