146 lines
5.9 KiB
Cython
146 lines
5.9 KiB
Cython
|
|
from eigency.core cimport *
|
|
from libcpp.string cimport string
|
|
from libcpp.vector cimport vector
|
|
from libcpp.pair cimport pair
|
|
from libcpp.set cimport set
|
|
from libcpp.map cimport map
|
|
from libcpp cimport bool
|
|
|
|
cdef extern from "boost/shared_ptr.hpp" namespace "boost":
|
|
cppclass shared_ptr[T]:
|
|
shared_ptr()
|
|
shared_ptr(T*)
|
|
T* get()
|
|
T& operator*()
|
|
|
|
cdef shared_ptr[T] dynamic_pointer_cast[T,U](const shared_ptr[U]& r)
|
|
cdef shared_ptr[T] make_shared[T](const T& r)
|
|
cdef extern from "gtsam/geometry/Point2.h" namespace "gtsam":
|
|
cdef cppclass CPoint2 "gtsam::Point2":
|
|
CPoint2() except +
|
|
CPoint2(double x, double y) except +
|
|
|
|
void argChar "argChar"(char a) except +
|
|
void argUChar "argUChar"(unsigned char a) except +
|
|
int dim "dim"() except +
|
|
void eigenArguments "eigenArguments"(const VectorXd& v, const MatrixXd& m) except +
|
|
char returnChar "returnChar"() except +
|
|
CVectorNotEigen vectorConfusion "vectorConfusion"() except +
|
|
double x "x"() except +
|
|
double y "y"() except +
|
|
|
|
cdef class Point2:
|
|
cdef shared_ptr[CPoint2] shared_CPoint2_
|
|
@staticmethod
|
|
cdef Point2 cyCreateFromShared(const shared_ptr[CPoint2]& other)
|
|
|
|
|
|
cdef extern from "gtsam/geometry/Point3.h" namespace "gtsam":
|
|
cdef cppclass CPoint3 "gtsam::Point3":
|
|
CPoint3(double x, double y, double z) except +
|
|
|
|
@staticmethod
|
|
CPoint3 StaticFunctionRet "StaticFunctionRet"(double z) except +
|
|
@staticmethod
|
|
double staticFunction "staticFunction"() except +
|
|
|
|
double norm "norm"() except +
|
|
|
|
cdef class Point3:
|
|
cdef shared_ptr[CPoint3] shared_CPoint3_
|
|
@staticmethod
|
|
cdef Point3 cyCreateFromShared(const shared_ptr[CPoint3]& other)
|
|
|
|
|
|
cdef extern from "folder/path/to/Test.h":
|
|
cdef cppclass CTest "Test":
|
|
CTest() except +
|
|
CTest(double a, const MatrixXd& b) except +
|
|
|
|
void arg_EigenConstRef "arg_EigenConstRef"(const MatrixXd& value) except +
|
|
pair[CTest,shared_ptr[CTest]] create_MixedPtrs "create_MixedPtrs"() except +
|
|
pair[shared_ptr[CTest],shared_ptr[CTest]] create_ptrs "create_ptrs"() except +
|
|
void print_ "print"() except +
|
|
shared_ptr[CPoint2] return_Point2Ptr "return_Point2Ptr"(bool value) except +
|
|
CTest return_Test "return_Test"(shared_ptr[CTest]& value) except +
|
|
shared_ptr[CTest] return_TestPtr "return_TestPtr"(shared_ptr[CTest]& value) except +
|
|
bool return_bool "return_bool"(bool value) except +
|
|
double return_double "return_double"(double value) except +
|
|
bool return_field "return_field"(const CTest& t) except +
|
|
int return_int "return_int"(int value) except +
|
|
MatrixXd return_matrix1 "return_matrix1"(const MatrixXd& value) except +
|
|
MatrixXd return_matrix2 "return_matrix2"(const MatrixXd& value) except +
|
|
pair[VectorXd,MatrixXd] return_pair "return_pair"(const VectorXd& v, const MatrixXd& A) except +
|
|
pair[shared_ptr[CTest],shared_ptr[CTest]] return_ptrs "return_ptrs"(shared_ptr[CTest]& p1, shared_ptr[CTest]& p2) except +
|
|
size_t return_size_t "return_size_t"(size_t value) except +
|
|
string return_string "return_string"(string value) except +
|
|
VectorXd return_vector1 "return_vector1"(const VectorXd& value) except +
|
|
VectorXd return_vector2 "return_vector2"(const VectorXd& value) except +
|
|
|
|
cdef class Test:
|
|
cdef shared_ptr[CTest] shared_CTest_
|
|
@staticmethod
|
|
cdef Test cyCreateFromShared(const shared_ptr[CTest]& other)
|
|
|
|
|
|
cdef extern from "folder/path/to/Test.h":
|
|
cdef cppclass CMyBase "MyBase":
|
|
pass
|
|
|
|
cdef class MyBase:
|
|
cdef shared_ptr[CMyBase] shared_CMyBase_
|
|
@staticmethod
|
|
cdef MyBase cyCreateFromShared(const shared_ptr[CMyBase]& other)
|
|
|
|
|
|
cdef extern from "folder/path/to/Test.h":
|
|
cdef cppclass CMyTemplate "MyTemplate"[T](CMyBase):
|
|
CMyTemplate() except +
|
|
|
|
void accept_T "accept_T"(const T& value) except +
|
|
void accept_Tptr "accept_Tptr"(shared_ptr[T]& value) except +
|
|
pair[T,shared_ptr[T]] create_MixedPtrs "create_MixedPtrs"() except +
|
|
pair[shared_ptr[T],shared_ptr[T]] create_ptrs "create_ptrs"() except +
|
|
T return_T "return_T"(shared_ptr[T]& value) except +
|
|
shared_ptr[T] return_Tptr "return_Tptr"(shared_ptr[T]& value) except +
|
|
pair[shared_ptr[T],shared_ptr[T]] return_ptrs "return_ptrs"(shared_ptr[T]& p1, shared_ptr[T]& p2) except +
|
|
ARG templatedMethod[ARG](const ARG& t) except +
|
|
ctypedef CMyTemplate[CPoint2] CMyTemplatePoint2
|
|
|
|
cdef class MyTemplatePoint2(MyBase):
|
|
cdef shared_ptr[CMyTemplatePoint2] shared_CMyTemplatePoint2_
|
|
@staticmethod
|
|
cdef MyTemplatePoint2 cyCreateFromShared(const shared_ptr[CMyTemplatePoint2]& other)
|
|
ctypedef CMyTemplate[MatrixXd] CMyTemplateMatrix
|
|
|
|
cdef class MyTemplateMatrix(MyBase):
|
|
cdef shared_ptr[CMyTemplateMatrix] shared_CMyTemplateMatrix_
|
|
@staticmethod
|
|
cdef MyTemplateMatrix cyCreateFromShared(const shared_ptr[CMyTemplateMatrix]& other)
|
|
|
|
|
|
cdef extern from "folder/path/to/Test.h":
|
|
cdef cppclass CMyFactor "MyFactor"[POSE,POINT]:
|
|
CMyFactor(size_t key1, size_t key2, double measured, const shared_ptr[CnoiseModel_Base]& noiseModel) except +
|
|
|
|
ctypedef CMyFactor[CPose2, MatrixXd] CMyFactorPosePoint2
|
|
|
|
cdef class MyFactorPosePoint2:
|
|
cdef shared_ptr[CMyFactorPosePoint2] shared_CMyFactorPosePoint2_
|
|
@staticmethod
|
|
cdef MyFactorPosePoint2 cyCreateFromShared(const shared_ptr[CMyFactorPosePoint2]& other)
|
|
|
|
|
|
cdef extern from "folder/path/to/Test.h":
|
|
cdef cppclass CMyVector "MyVector"[N]:
|
|
CMyVector() except +
|
|
|
|
|
|
|
|
cdef extern from "folder/path/to/Test.h" namespace "":
|
|
VectorXd pxd_aGlobalFunction "aGlobalFunction"()
|
|
cdef extern from "folder/path/to/Test.h" namespace "":
|
|
VectorXd pxd_overloadedGlobalFunction "overloadedGlobalFunction"(int a)
|
|
VectorXd pxd_overloadedGlobalFunction "overloadedGlobalFunction"(int a, double b)
|