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
0c453714
Commit
0c453714
authored
Sep 19, 2015
by
Robert McGibbon
Browse files
Add typemaps
parent
4c696473
Changes
1
Show 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 @
0c453714
...
@@ -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