Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
2dee12e6
Commit
2dee12e6
authored
Sep 19, 2015
by
peastman
Browse files
Merge pull request #1138 from rmcgibbo/typemap-vecvec
Typemaps
parents
4c696473
0c453714
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
112 additions
and
1 deletion
+112
-1
wrappers/python/src/swig_doxygen/swig_lib/python/typemaps.i
wrappers/python/src/swig_doxygen/swig_lib/python/typemaps.i
+112
-1
No files found.
wrappers/python/src/swig_doxygen/swig_lib/python/typemaps.i
View file @
2dee12e6
...
@@ -156,7 +156,7 @@ int Py_SequenceToVecDouble(PyObject* obj, std::vector<double>& out) {
...
@@ -156,7 +156,7 @@ int Py_SequenceToVecDouble(PyObject* obj, std::vector<double>& out) {
Py_DECREF
(
iterator
)
;
Py_DECREF
(
iterator
)
;
Py_DECREF
(
stripped
)
;
Py_DECREF
(
stripped
)
;
return
SWIG_OK
;
return
SWIG_OK
;
}
}
}
}
%
fragment
(
"Py_SequenceToVecVec3"
,
"header"
,
fragment
=
"Py_SequenceToVec3"
)
{
%
fragment
(
"Py_SequenceToVecVec3"
,
"header"
,
fragment
=
"Py_SequenceToVec3"
)
{
...
@@ -202,6 +202,86 @@ int Py_SequenceToVecVec3(PyObject* obj, std::vector<Vec3>& out) {
...
@@ -202,6 +202,86 @@ int Py_SequenceToVecVec3(PyObject* obj, std::vector<Vec3>& out) {
}
}
}
}
%
fragment
(
"Py_SequenceToVecVecDouble"
,
"header"
,
fragment
=
"Py_SequenceToVecDouble"
)
{
int
Py_SequenceToVecVecDouble
(
PyObject
*
obj
,
std
::
vector
<
std
::
vector
<
double
>
>
&
out
)
{
PyObject
*
stripped
=
NULL
;
PyObject
*
item
=
NULL
;
PyObject
*
item1
=
NULL
;
PyObject
*
iterator
=
NULL
;
stripped
=
Py_StripOpenMMUnits
(
obj
)
;
iterator
=
PyObject_GetIter
(
stripped
)
;
if
(
iterator
==
NULL
)
{
Py_DECREF
(
stripped
)
;
return
SWIG_ERROR
;
}
while
((
item
=
PyIter_Next
(
iterator
)))
{
item1
=
Py_StripOpenMMUnits
(
item
)
;
if
(
item1
==
NULL
)
{
Py_DECREF
(
stripped
)
;
Py_DECREF
(
iterator
)
;
Py_DECREF
(
item
)
;
return
SWIG_ERROR
;
}
std
::
vector
<
double
>
v
;
int
r2
=
Py_SequenceToVecDouble
(
item1
,
v
)
;
Py_DECREF
(
item
)
;
Py_DECREF
(
item1
)
;
if
(
!
SWIG_IsOK
(
r2
)
||
PyErr_Occurred
()
!=
NULL
)
{
Py_DECREF
(
stripped
)
;
Py_DECREF
(
iterator
)
;
return
SWIG_ERROR
;
}
out
.
push_back
(
v
)
;
}
Py_DECREF
(
iterator
)
;
Py_DECREF
(
stripped
)
;
return
SWIG_OK
;
}
}
%
fragment
(
"Py_SequenceToVecVecVecDouble"
,
"header"
,
fragment
=
"Py_SequenceToVecVecDouble"
)
{
int
Py_SequenceToVecVecVecDouble
(
PyObject
*
obj
,
std
::
vector
<
std
::
vector
<
std
::
vector
<
double
>
>
>
&
out
)
{
PyObject
*
stripped
=
NULL
;
PyObject
*
item
=
NULL
;
PyObject
*
item1
=
NULL
;
PyObject
*
iterator
=
NULL
;
stripped
=
Py_StripOpenMMUnits
(
obj
)
;
iterator
=
PyObject_GetIter
(
stripped
)
;
if
(
iterator
==
NULL
)
{
Py_DECREF
(
stripped
)
;
return
SWIG_ERROR
;
}
while
((
item
=
PyIter_Next
(
iterator
)))
{
item1
=
Py_StripOpenMMUnits
(
item
)
;
if
(
item1
==
NULL
)
{
Py_DECREF
(
stripped
)
;
Py_DECREF
(
iterator
)
;
Py_DECREF
(
item
)
;
return
SWIG_ERROR
;
}
std
::
vector
<
std
::
vector
<
double
>
>
v
;
int
r2
=
Py_SequenceToVecVecDouble
(
item1
,
v
)
;
Py_DECREF
(
item
)
;
Py_DECREF
(
item1
)
;
if
(
!
SWIG_IsOK
(
r2
)
||
PyErr_Occurred
()
!=
NULL
)
{
Py_DECREF
(
stripped
)
;
Py_DECREF
(
iterator
)
;
return
SWIG_ERROR
;
}
out
.
push_back
(
v
)
;
}
Py_DECREF
(
iterator
)
;
Py_DECREF
(
stripped
)
;
return
SWIG_OK
;
}
}
// ------ typemap for double ----
// ------ typemap for double ----
%
typemap
(
typecheck
,
precedence
=
SWIG_TYPECHECK_DOUBLE
,
fragment
=
"Py_StripOpenMMUnits"
)
double
{
%
typemap
(
typecheck
,
precedence
=
SWIG_TYPECHECK_DOUBLE
,
fragment
=
"Py_StripOpenMMUnits"
)
double
{
...
@@ -259,6 +339,37 @@ int Py_SequenceToVecVec3(PyObject* obj, std::vector<Vec3>& out) {
...
@@ -259,6 +339,37 @@ int Py_SequenceToVecVec3(PyObject* obj, std::vector<Vec3>& out) {
}
}
// typemap for const vector<vector<double> >
%
typemap
(
in
,
fragment
=
"Py_SequenceToVecVecDouble"
)
const
std
::
vector
<
std
::
vector
<
double
>
>
(
std
::
vector
<
std
::
vector
<
double
>
>
v
,
int
res
=
0
)
{
res
=
Py_SequenceToVecVecDouble
(
$
input
,
v
)
;
if
(
!
SWIG_IsOK
(
res
))
{
PyErr_SetString
(
PyExc_ValueError
,
"in method $symname, argument $argnum could not be converted to type $type"
)
;
SWIG_fail
;
}
$
1
=
&
v;
}
%
typemap
(
typecheck
,
fragment
=
"Py_SequenceToVecVecDouble"
)
const
std
::
vector
<
std
::
vector
<
double
>
>
{
std
::
vector
<
std
::
vector
<
double
>
>
v
;
int
res
=
Py_SequenceToVecVecDouble
(
$
input
,
v
)
;
$
1
=
SWIG_IsOK
(
res
)
;
}
// typemap for const vector<vector<vector<double> > >
%
typemap
(
in
,
fragment
=
"Py_SequenceToVecVecVecDouble"
)
const
std
::
vector
<
std
::
vector
<
std
::
vector
<
double
>
>
>
(
std
::
vector
<
std
::
vector
<
std
::
vector
<
double
>
>
>
v
,
int
res
=
0
)
{
res
=
Py_SequenceToVecVecVecDouble
(
$
input
,
v
)
;
if
(
!
SWIG_IsOK
(
res
))
{
PyErr_SetString
(
PyExc_ValueError
,
"in method $symname, argument $argnum could not be converted to type $type"
)
;
SWIG_fail
;
}
$
1
=
&
v;
}
%
typemap
(
typecheck
,
fragment
=
"Py_SequenceToVecVecVecDouble"
)
const
std
::
vector
<
std
::
vector
<
std
::
vector
<
double
>
>
>
{
std
::
vector
<
std
::
vector
<
std
::
vector
<
double
>
>
>
v
;
int
res
=
Py_SequenceToVecVecVecDouble
(
$
input
,
v
)
;
$
1
=
SWIG_IsOK
(
res
)
;
}
// typemap for vector<Vec3>
// typemap for vector<Vec3>
%
typemap
(
in
,
fragment
=
"Py_SequenceToVecVec3"
)
const
std
::
vector
<
Vec3
>
&
(
std
::
vector
<
Vec3
>
v
,
int
res
=
0
)
{
%
typemap
(
in
,
fragment
=
"Py_SequenceToVecVec3"
)
const
std
::
vector
<
Vec3
>
&
(
std
::
vector
<
Vec3
>
v
,
int
res
=
0
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment