Merging 'master' into 'wrap'

release/4.3a0
Varun Agrawal 2021-03-25 13:32:38 -04:00
commit 1e8973ead1
15 changed files with 240 additions and 192 deletions

View File

@ -15,16 +15,16 @@ macro(get_python_version)
set(Python_VERSION_MAJOR set(Python_VERSION_MAJOR
${PYTHON_VERSION_MAJOR} ${PYTHON_VERSION_MAJOR}
PARENT_SCOPE) CACHE INTERNAL "")
set(Python_VERSION_MINOR set(Python_VERSION_MINOR
${PYTHON_VERSION_MINOR} ${PYTHON_VERSION_MINOR}
PARENT_SCOPE) CACHE INTERNAL "")
set(Python_VERSION_PATCH set(Python_VERSION_PATCH
${PYTHON_VERSION_PATCH} ${PYTHON_VERSION_PATCH}
PARENT_SCOPE) CACHE INTERNAL "")
set(Python_EXECUTABLE set(Python_EXECUTABLE
${PYTHON_EXECUTABLE} ${PYTHON_EXECUTABLE}
PARENT_SCOPE) CACHE INTERNAL "")
else() else()
# Get info about the Python interpreter # Get info about the Python interpreter
@ -37,6 +37,20 @@ macro(get_python_version)
"Cannot find Python interpreter. Please install Python>=3.5.") "Cannot find Python interpreter. Please install Python>=3.5.")
endif() endif()
# Set both sets of variables
set(PYTHON_VERSION_MAJOR
${Python_VERSION_MAJOR}
CACHE INTERNAL "")
set(PYTHON_VERSION_MINOR
${Python_VERSION_MINOR}
CACHE INTERNAL "")
set(PYTHON_VERSION_PATCH
${Python_VERSION_PATCH}
CACHE INTERNAL "")
set(PYTHON_EXECUTABLE
${Python_EXECUTABLE}
CACHE INTERNAL "")
endif() endif()
endmacro() endmacro()

View File

@ -1,5 +1,3 @@
set(PYBIND11_PYTHON_VERSION ${WRAP_PYTHON_VERSION})
if(GTWRAP_PYTHON_PACKAGE_DIR) if(GTWRAP_PYTHON_PACKAGE_DIR)
# packaged # packaged
set(GTWRAP_PACKAGE_DIR "${GTWRAP_PYTHON_PACKAGE_DIR}") set(GTWRAP_PACKAGE_DIR "${GTWRAP_PYTHON_PACKAGE_DIR}")
@ -7,6 +5,14 @@ else()
set(GTWRAP_PACKAGE_DIR ${CMAKE_CURRENT_LIST_DIR}/..) set(GTWRAP_PACKAGE_DIR ${CMAKE_CURRENT_LIST_DIR}/..)
endif() endif()
# Get the Python version
include(GtwrapUtils)
message(status "Checking Python Version")
gtwrap_get_python_version(${WRAP_PYTHON_VERSION})
message(status "Setting Python version for wrapper")
set(PYBIND11_PYTHON_VERSION ${WRAP_PYTHON_VERSION})
# User-friendly Pybind11 wrapping and installing function. # User-friendly Pybind11 wrapping and installing function.
# Builds a Pybind11 module from the provided interface_header. # Builds a Pybind11 module from the provided interface_header.
# For example, for the interface header gtsam.h, this will # For example, for the interface header gtsam.h, this will

View File

@ -348,7 +348,7 @@ class MatlabWrapper(object):
method += instance_method.parent.name + separator method += instance_method.parent.name + separator
method += instance_method.original.name method += instance_method.original.name
method += "<" + instance_method.instantiation.to_cpp() + ">" method += "<" + instance_method.instantiations.to_cpp() + ">"
return method[2 * len(separator):] return method[2 * len(separator):]
@ -1337,9 +1337,9 @@ class MatlabWrapper(object):
method_name = method.to_cpp() method_name = method.to_cpp()
obj_start = 'obj->' obj_start = 'obj->'
if method.instantiation: if method.instantiations:
# method_name += '<{}>'.format( # method_name += '<{}>'.format(
# self._format_type_name(method.instantiation)) # self._format_type_name(method.instantiations))
# method_name = self._format_instance_method(method, '::') # method_name = self._format_instance_method(method, '::')
method = method.to_cpp() method = method.to_cpp()

View File

@ -206,35 +206,30 @@ class InstantiatedMethod(parser.Method):
""" """
We can only instantiate template methods with a single template parameter. We can only instantiate template methods with a single template parameter.
""" """
def __init__(self, original, instantiation=''): def __init__(self, original, instantiations=''):
self.original = original self.original = original
self.instantiation = instantiation self.instantiations = instantiations
self.template = '' self.template = ''
self.is_const = original.is_const self.is_const = original.is_const
self.parent = original.parent self.parent = original.parent
if not original.template: # Check for typenames if templated.
self.name = original.name # This way, we can gracefully handle bot templated and non-templated methois.
self.return_type = original.return_type typenames = self.original.template.typenames if self.original.template else []
self.args = original.args self.name = instantiate_name(original.name, self.instantiations)
else:
#TODO(Varun) enable multiple templates for methods
if len(self.original.template.typenames) > 1:
raise ValueError("Can only instantiate template method with "
"single template parameter.")
self.name = instantiate_name(original.name, [self.instantiation])
self.return_type = instantiate_return_type( self.return_type = instantiate_return_type(
original.return_type, original.return_type,
[self.original.template.typenames[0]], typenames,
[self.instantiation], self.instantiations,
# Keyword type name `This` should already be replaced in the # Keyword type name `This` should already be replaced in the
# previous class template instantiation round. # previous class template instantiation round.
cpp_typename='', cpp_typename='',
) )
instantiated_args = instantiate_args_list( instantiated_args = instantiate_args_list(
original.args.args_list, original.args.args_list,
[self.original.template.typenames[0]], typenames,
[self.instantiation], self.instantiations,
# Keyword type name `This` should already be replaced in the # Keyword type name `This` should already be replaced in the
# previous class template instantiation round. # previous class template instantiation round.
cpp_typename='', cpp_typename='',
@ -251,7 +246,13 @@ class InstantiatedMethod(parser.Method):
def to_cpp(self): def to_cpp(self):
"""Generate the C++ code for wrapping.""" """Generate the C++ code for wrapping."""
if self.original.template: if self.original.template:
ret = "{}<{}>".format(self.original.name, self.instantiation) instantiation_list = [
# Get the fully qualified name
"::".join(x.namespaces + [x.name])
for x in self.instantiations
]
ret = "{}<{}>".format(self.original.name,
",".join(instantiation_list))
else: else:
ret = self.original.name ret = self.original.name
return ret return ret
@ -293,12 +294,13 @@ class InstantiatedClass(parser.Class):
# This will allow the `This` keyword to be used in both templated and non-templated classes. # This will allow the `This` keyword to be used in both templated and non-templated classes.
typenames = self.original.template.typenames if self.original.template else [] typenames = self.original.template.typenames if self.original.template else []
# Instantiate the constructors, static methods, properties and instance methods, respectively. # Instantiate the constructors, static methods, properties
# and instance methods, respectively.
self.ctors = self.instantiate_ctors(typenames) self.ctors = self.instantiate_ctors(typenames)
self.static_methods = self.instantiate_static_methods(typenames) self.static_methods = self.instantiate_static_methods(typenames)
self.properties = self.instantiate_properties(typenames) self.properties = self.instantiate_properties(typenames)
instantiated_methods = self.instantiate_class_templates_in_methods( instantiated_methods = \
typenames) self.instantiate_class_templates_in_methods(typenames)
# Second instantiation round to instantiate templated methods. # Second instantiation round to instantiate templated methods.
# This is done in case both the class and the method are templated. # This is done in case both the class and the method are templated.
@ -307,11 +309,12 @@ class InstantiatedClass(parser.Class):
if not method.template: if not method.template:
self.methods.append(InstantiatedMethod(method, '')) self.methods.append(InstantiatedMethod(method, ''))
else: else:
assert len( instantiations = []
method.template.typenames) == 1, ""\ # Get all combinations of template parameters
"Can only instantiate single template methods" for instantiations in itertools.product(
for inst in method.template.instantiations[0]: *method.template.instantiations):
self.methods.append(InstantiatedMethod(method, inst)) self.methods.append(
InstantiatedMethod(method, instantiations))
super().__init__( super().__init__(
self.template, self.template,

View File

@ -2,10 +2,11 @@
%at https://gtsam.org/doxygen/ %at https://gtsam.org/doxygen/
% %
%-------Methods------- %-------Methods-------
%dhamaalString(double d, string t) : returns Fun<double> %multiTemplatedMethodStringSize_t(double d, string t, size_t u) : returns Fun<double>
%templatedMethodString(double d, string t) : returns Fun<double>
% %
%-------Static Methods------- %-------Static Methods-------
%divertido() : returns Fun<double> %staticMethodWithThis() : returns Fun<double>
% %
%-------Serialization Interface------- %-------Serialization Interface-------
%string_serialize() : returns string %string_serialize() : returns string
@ -34,28 +35,38 @@ classdef FunDouble < handle
%DISPLAY Calls print on the object %DISPLAY Calls print on the object
function disp(obj), obj.display; end function disp(obj), obj.display; end
%DISP Calls print on the object %DISP Calls print on the object
function varargout = dhamaalString(this, varargin) function varargout = multiTemplatedMethodStringSize_t(this, varargin)
% DHAMAALSTRING usage: dhamaalString(double d, string t) : returns Fun<double> % MULTITEMPLATEDMETHODSTRINGSIZE_T usage: multiTemplatedMethodStringSize_t(double d, string t, size_t u) : returns Fun<double>
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 2 && isa(varargin{1},'double') && isa(varargin{2},'char') if length(varargin) == 3 && isa(varargin{1},'double') && isa(varargin{2},'char') && isa(varargin{3},'numeric')
varargout{1} = class_wrapper(7, this, varargin{:}); varargout{1} = class_wrapper(7, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function FunDouble.dhamaalString'); error('Arguments do not match any overload of function FunDouble.multiTemplatedMethodStringSize_t');
end
function varargout = templatedMethodString(this, varargin)
% TEMPLATEDMETHODSTRING usage: templatedMethodString(double d, string t) : returns Fun<double>
% Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 2 && isa(varargin{1},'double') && isa(varargin{2},'char')
varargout{1} = class_wrapper(8, this, varargin{:});
return
end
error('Arguments do not match any overload of function FunDouble.templatedMethodString');
end end
end end
methods(Static = true) methods(Static = true)
function varargout = Divertido(varargin) function varargout = StaticMethodWithThis(varargin)
% DIVERTIDO usage: divertido() : returns Fundouble % STATICMETHODWITHTHIS usage: staticMethodWithThis() : returns Fundouble
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 0 if length(varargin) == 0
varargout{1} = class_wrapper(8, varargin{:}); varargout{1} = class_wrapper(9, varargin{:});
return return
end end
error('Arguments do not match any overload of function FunDouble.divertido'); error('Arguments do not match any overload of function FunDouble.staticMethodWithThis');
end end
end end

View File

@ -9,7 +9,7 @@ classdef MultipleTemplatesIntDouble < handle
function obj = MultipleTemplatesIntDouble(varargin) function obj = MultipleTemplatesIntDouble(varargin)
if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682) if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682)
my_ptr = varargin{2}; my_ptr = varargin{2};
class_wrapper(43, my_ptr); class_wrapper(44, my_ptr);
else else
error('Arguments do not match any overload of MultipleTemplatesIntDouble constructor'); error('Arguments do not match any overload of MultipleTemplatesIntDouble constructor');
end end
@ -17,7 +17,7 @@ classdef MultipleTemplatesIntDouble < handle
end end
function delete(obj) function delete(obj)
class_wrapper(44, obj.ptr_MultipleTemplatesIntDouble); class_wrapper(45, obj.ptr_MultipleTemplatesIntDouble);
end end
function display(obj), obj.print(''); end function display(obj), obj.print(''); end

View File

@ -9,7 +9,7 @@ classdef MultipleTemplatesIntFloat < handle
function obj = MultipleTemplatesIntFloat(varargin) function obj = MultipleTemplatesIntFloat(varargin)
if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682) if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682)
my_ptr = varargin{2}; my_ptr = varargin{2};
class_wrapper(45, my_ptr); class_wrapper(46, my_ptr);
else else
error('Arguments do not match any overload of MultipleTemplatesIntFloat constructor'); error('Arguments do not match any overload of MultipleTemplatesIntFloat constructor');
end end
@ -17,7 +17,7 @@ classdef MultipleTemplatesIntFloat < handle
end end
function delete(obj) function delete(obj)
class_wrapper(46, obj.ptr_MultipleTemplatesIntFloat); class_wrapper(47, obj.ptr_MultipleTemplatesIntFloat);
end end
function display(obj), obj.print(''); end function display(obj), obj.print(''); end

View File

@ -12,9 +12,9 @@ classdef MyFactorPosePoint2 < handle
function obj = MyFactorPosePoint2(varargin) function obj = MyFactorPosePoint2(varargin)
if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682) if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682)
my_ptr = varargin{2}; my_ptr = varargin{2};
class_wrapper(47, my_ptr); class_wrapper(48, my_ptr);
elseif nargin == 4 && isa(varargin{1},'numeric') && isa(varargin{2},'numeric') && isa(varargin{3},'double') && isa(varargin{4},'gtsam.noiseModel.Base') elseif nargin == 4 && isa(varargin{1},'numeric') && isa(varargin{2},'numeric') && isa(varargin{3},'double') && isa(varargin{4},'gtsam.noiseModel.Base')
my_ptr = class_wrapper(48, varargin{1}, varargin{2}, varargin{3}, varargin{4}); my_ptr = class_wrapper(49, varargin{1}, varargin{2}, varargin{3}, varargin{4});
else else
error('Arguments do not match any overload of MyFactorPosePoint2 constructor'); error('Arguments do not match any overload of MyFactorPosePoint2 constructor');
end end
@ -22,7 +22,7 @@ classdef MyFactorPosePoint2 < handle
end end
function delete(obj) function delete(obj)
class_wrapper(49, obj.ptr_MyFactorPosePoint2); class_wrapper(50, obj.ptr_MyFactorPosePoint2);
end end
function display(obj), obj.print(''); end function display(obj), obj.print(''); end

View File

@ -12,9 +12,9 @@ classdef MyVector12 < handle
function obj = MyVector12(varargin) function obj = MyVector12(varargin)
if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682) if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682)
my_ptr = varargin{2}; my_ptr = varargin{2};
class_wrapper(40, my_ptr); class_wrapper(41, my_ptr);
elseif nargin == 0 elseif nargin == 0
my_ptr = class_wrapper(41); my_ptr = class_wrapper(42);
else else
error('Arguments do not match any overload of MyVector12 constructor'); error('Arguments do not match any overload of MyVector12 constructor');
end end
@ -22,7 +22,7 @@ classdef MyVector12 < handle
end end
function delete(obj) function delete(obj)
class_wrapper(42, obj.ptr_MyVector12); class_wrapper(43, obj.ptr_MyVector12);
end end
function display(obj), obj.print(''); end function display(obj), obj.print(''); end

View File

@ -12,9 +12,9 @@ classdef MyVector3 < handle
function obj = MyVector3(varargin) function obj = MyVector3(varargin)
if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682) if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682)
my_ptr = varargin{2}; my_ptr = varargin{2};
class_wrapper(37, my_ptr); class_wrapper(38, my_ptr);
elseif nargin == 0 elseif nargin == 0
my_ptr = class_wrapper(38); my_ptr = class_wrapper(39);
else else
error('Arguments do not match any overload of MyVector3 constructor'); error('Arguments do not match any overload of MyVector3 constructor');
end end
@ -22,7 +22,7 @@ classdef MyVector3 < handle
end end
function delete(obj) function delete(obj)
class_wrapper(39, obj.ptr_MyVector3); class_wrapper(40, obj.ptr_MyVector3);
end end
function display(obj), obj.print(''); end function display(obj), obj.print(''); end

View File

@ -19,9 +19,9 @@ classdef PrimitiveRefDouble < handle
function obj = PrimitiveRefDouble(varargin) function obj = PrimitiveRefDouble(varargin)
if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682) if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682)
my_ptr = varargin{2}; my_ptr = varargin{2};
class_wrapper(33, my_ptr); class_wrapper(34, my_ptr);
elseif nargin == 0 elseif nargin == 0
my_ptr = class_wrapper(34); my_ptr = class_wrapper(35);
else else
error('Arguments do not match any overload of PrimitiveRefDouble constructor'); error('Arguments do not match any overload of PrimitiveRefDouble constructor');
end end
@ -29,7 +29,7 @@ classdef PrimitiveRefDouble < handle
end end
function delete(obj) function delete(obj)
class_wrapper(35, obj.ptr_PrimitiveRefDouble); class_wrapper(36, obj.ptr_PrimitiveRefDouble);
end end
function display(obj), obj.print(''); end function display(obj), obj.print(''); end
@ -43,7 +43,7 @@ classdef PrimitiveRefDouble < handle
% BRUTAL usage: Brutal(double t) : returns PrimitiveRefdouble % BRUTAL usage: Brutal(double t) : returns PrimitiveRefdouble
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'double') if length(varargin) == 1 && isa(varargin{1},'double')
varargout{1} = class_wrapper(36, varargin{:}); varargout{1} = class_wrapper(37, varargin{:});
return return
end end

View File

@ -35,11 +35,11 @@ classdef Test < handle
function obj = Test(varargin) function obj = Test(varargin)
if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682) if nargin == 2 && isa(varargin{1}, 'uint64') && varargin{1} == uint64(5139824614673773682)
my_ptr = varargin{2}; my_ptr = varargin{2};
class_wrapper(9, my_ptr); class_wrapper(10, my_ptr);
elseif nargin == 0 elseif nargin == 0
my_ptr = class_wrapper(10); my_ptr = class_wrapper(11);
elseif nargin == 2 && isa(varargin{1},'double') && isa(varargin{2},'double') elseif nargin == 2 && isa(varargin{1},'double') && isa(varargin{2},'double')
my_ptr = class_wrapper(11, varargin{1}, varargin{2}); my_ptr = class_wrapper(12, varargin{1}, varargin{2});
else else
error('Arguments do not match any overload of Test constructor'); error('Arguments do not match any overload of Test constructor');
end end
@ -47,7 +47,7 @@ classdef Test < handle
end end
function delete(obj) function delete(obj)
class_wrapper(12, obj.ptr_Test); class_wrapper(13, obj.ptr_Test);
end end
function display(obj), obj.print(''); end function display(obj), obj.print(''); end
@ -58,7 +58,7 @@ classdef Test < handle
% ARG_EIGENCONSTREF usage: arg_EigenConstRef(Matrix value) : returns void % ARG_EIGENCONSTREF usage: arg_EigenConstRef(Matrix value) : returns void
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'double') if length(varargin) == 1 && isa(varargin{1},'double')
class_wrapper(13, this, varargin{:}); class_wrapper(14, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.arg_EigenConstRef'); error('Arguments do not match any overload of function Test.arg_EigenConstRef');
@ -68,7 +68,7 @@ classdef Test < handle
% CREATE_MIXEDPTRS usage: create_MixedPtrs() : returns pair< Test, Test > % CREATE_MIXEDPTRS usage: create_MixedPtrs() : returns pair< Test, Test >
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 0 if length(varargin) == 0
[ varargout{1} varargout{2} ] = class_wrapper(14, this, varargin{:}); [ varargout{1} varargout{2} ] = class_wrapper(15, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.create_MixedPtrs'); error('Arguments do not match any overload of function Test.create_MixedPtrs');
@ -78,7 +78,7 @@ classdef Test < handle
% CREATE_PTRS usage: create_ptrs() : returns pair< Test, Test > % CREATE_PTRS usage: create_ptrs() : returns pair< Test, Test >
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 0 if length(varargin) == 0
[ varargout{1} varargout{2} ] = class_wrapper(15, this, varargin{:}); [ varargout{1} varargout{2} ] = class_wrapper(16, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.create_ptrs'); error('Arguments do not match any overload of function Test.create_ptrs');
@ -88,7 +88,7 @@ classdef Test < handle
% PRINT usage: print() : returns void % PRINT usage: print() : returns void
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 0 if length(varargin) == 0
class_wrapper(16, this, varargin{:}); class_wrapper(17, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.print'); error('Arguments do not match any overload of function Test.print');
@ -98,7 +98,7 @@ classdef Test < handle
% RETURN_POINT2PTR usage: return_Point2Ptr(bool value) : returns Point2 % RETURN_POINT2PTR usage: return_Point2Ptr(bool value) : returns Point2
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'logical') if length(varargin) == 1 && isa(varargin{1},'logical')
varargout{1} = class_wrapper(17, this, varargin{:}); varargout{1} = class_wrapper(18, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_Point2Ptr'); error('Arguments do not match any overload of function Test.return_Point2Ptr');
@ -108,7 +108,7 @@ classdef Test < handle
% RETURN_TEST usage: return_Test(Test value) : returns Test % RETURN_TEST usage: return_Test(Test value) : returns Test
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'Test') if length(varargin) == 1 && isa(varargin{1},'Test')
varargout{1} = class_wrapper(18, this, varargin{:}); varargout{1} = class_wrapper(19, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_Test'); error('Arguments do not match any overload of function Test.return_Test');
@ -118,7 +118,7 @@ classdef Test < handle
% RETURN_TESTPTR usage: return_TestPtr(Test value) : returns Test % RETURN_TESTPTR usage: return_TestPtr(Test value) : returns Test
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'Test') if length(varargin) == 1 && isa(varargin{1},'Test')
varargout{1} = class_wrapper(19, this, varargin{:}); varargout{1} = class_wrapper(20, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_TestPtr'); error('Arguments do not match any overload of function Test.return_TestPtr');
@ -128,7 +128,7 @@ classdef Test < handle
% RETURN_BOOL usage: return_bool(bool value) : returns bool % RETURN_BOOL usage: return_bool(bool value) : returns bool
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'logical') if length(varargin) == 1 && isa(varargin{1},'logical')
varargout{1} = class_wrapper(20, this, varargin{:}); varargout{1} = class_wrapper(21, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_bool'); error('Arguments do not match any overload of function Test.return_bool');
@ -138,7 +138,7 @@ classdef Test < handle
% RETURN_DOUBLE usage: return_double(double value) : returns double % RETURN_DOUBLE usage: return_double(double value) : returns double
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'double') if length(varargin) == 1 && isa(varargin{1},'double')
varargout{1} = class_wrapper(21, this, varargin{:}); varargout{1} = class_wrapper(22, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_double'); error('Arguments do not match any overload of function Test.return_double');
@ -148,7 +148,7 @@ classdef Test < handle
% RETURN_FIELD usage: return_field(Test t) : returns bool % RETURN_FIELD usage: return_field(Test t) : returns bool
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'Test') if length(varargin) == 1 && isa(varargin{1},'Test')
varargout{1} = class_wrapper(22, this, varargin{:}); varargout{1} = class_wrapper(23, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_field'); error('Arguments do not match any overload of function Test.return_field');
@ -158,7 +158,7 @@ classdef Test < handle
% RETURN_INT usage: return_int(int value) : returns int % RETURN_INT usage: return_int(int value) : returns int
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'numeric') if length(varargin) == 1 && isa(varargin{1},'numeric')
varargout{1} = class_wrapper(23, this, varargin{:}); varargout{1} = class_wrapper(24, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_int'); error('Arguments do not match any overload of function Test.return_int');
@ -168,7 +168,7 @@ classdef Test < handle
% RETURN_MATRIX1 usage: return_matrix1(Matrix value) : returns Matrix % RETURN_MATRIX1 usage: return_matrix1(Matrix value) : returns Matrix
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'double') if length(varargin) == 1 && isa(varargin{1},'double')
varargout{1} = class_wrapper(24, this, varargin{:}); varargout{1} = class_wrapper(25, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_matrix1'); error('Arguments do not match any overload of function Test.return_matrix1');
@ -178,7 +178,7 @@ classdef Test < handle
% RETURN_MATRIX2 usage: return_matrix2(Matrix value) : returns Matrix % RETURN_MATRIX2 usage: return_matrix2(Matrix value) : returns Matrix
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'double') if length(varargin) == 1 && isa(varargin{1},'double')
varargout{1} = class_wrapper(25, this, varargin{:}); varargout{1} = class_wrapper(26, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_matrix2'); error('Arguments do not match any overload of function Test.return_matrix2');
@ -188,13 +188,13 @@ classdef Test < handle
% RETURN_PAIR usage: return_pair(Vector v, Matrix A) : returns pair< Vector, Matrix > % RETURN_PAIR usage: return_pair(Vector v, Matrix A) : returns pair< Vector, Matrix >
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 2 && isa(varargin{1},'double') && size(varargin{1},2)==1 && isa(varargin{2},'double') if length(varargin) == 2 && isa(varargin{1},'double') && size(varargin{1},2)==1 && isa(varargin{2},'double')
[ varargout{1} varargout{2} ] = class_wrapper(26, this, varargin{:}); [ varargout{1} varargout{2} ] = class_wrapper(27, this, varargin{:});
return return
end end
% RETURN_PAIR usage: return_pair(Vector v) : returns pair< Vector, Matrix > % RETURN_PAIR usage: return_pair(Vector v) : returns pair< Vector, Matrix >
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'double') && size(varargin{1},2)==1 if length(varargin) == 1 && isa(varargin{1},'double') && size(varargin{1},2)==1
[ varargout{1} varargout{2} ] = class_wrapper(27, this, varargin{:}); [ varargout{1} varargout{2} ] = class_wrapper(28, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_pair'); error('Arguments do not match any overload of function Test.return_pair');
@ -204,7 +204,7 @@ classdef Test < handle
% RETURN_PTRS usage: return_ptrs(Test p1, Test p2) : returns pair< Test, Test > % RETURN_PTRS usage: return_ptrs(Test p1, Test p2) : returns pair< Test, Test >
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 2 && isa(varargin{1},'Test') && isa(varargin{2},'Test') if length(varargin) == 2 && isa(varargin{1},'Test') && isa(varargin{2},'Test')
[ varargout{1} varargout{2} ] = class_wrapper(28, this, varargin{:}); [ varargout{1} varargout{2} ] = class_wrapper(29, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_ptrs'); error('Arguments do not match any overload of function Test.return_ptrs');
@ -214,7 +214,7 @@ classdef Test < handle
% RETURN_SIZE_T usage: return_size_t(size_t value) : returns size_t % RETURN_SIZE_T usage: return_size_t(size_t value) : returns size_t
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'numeric') if length(varargin) == 1 && isa(varargin{1},'numeric')
varargout{1} = class_wrapper(29, this, varargin{:}); varargout{1} = class_wrapper(30, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_size_t'); error('Arguments do not match any overload of function Test.return_size_t');
@ -224,7 +224,7 @@ classdef Test < handle
% RETURN_STRING usage: return_string(string value) : returns string % RETURN_STRING usage: return_string(string value) : returns string
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'char') if length(varargin) == 1 && isa(varargin{1},'char')
varargout{1} = class_wrapper(30, this, varargin{:}); varargout{1} = class_wrapper(31, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_string'); error('Arguments do not match any overload of function Test.return_string');
@ -234,7 +234,7 @@ classdef Test < handle
% RETURN_VECTOR1 usage: return_vector1(Vector value) : returns Vector % RETURN_VECTOR1 usage: return_vector1(Vector value) : returns Vector
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'double') && size(varargin{1},2)==1 if length(varargin) == 1 && isa(varargin{1},'double') && size(varargin{1},2)==1
varargout{1} = class_wrapper(31, this, varargin{:}); varargout{1} = class_wrapper(32, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_vector1'); error('Arguments do not match any overload of function Test.return_vector1');
@ -244,7 +244,7 @@ classdef Test < handle
% RETURN_VECTOR2 usage: return_vector2(Vector value) : returns Vector % RETURN_VECTOR2 usage: return_vector2(Vector value) : returns Vector
% Doxygen can be found at https://gtsam.org/doxygen/ % Doxygen can be found at https://gtsam.org/doxygen/
if length(varargin) == 1 && isa(varargin{1},'double') && size(varargin{1},2)==1 if length(varargin) == 1 && isa(varargin{1},'double') && size(varargin{1},2)==1
varargout{1} = class_wrapper(32, this, varargin{:}); varargout{1} = class_wrapper(33, this, varargin{:});
return return
end end
error('Arguments do not match any overload of function Test.return_vector2'); error('Arguments do not match any overload of function Test.return_vector2');

View File

@ -200,22 +200,32 @@ void FunDouble_deconstructor_6(int nargout, mxArray *out[], int nargin, const mx
} }
} }
void FunDouble_dhamaal_7(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void FunDouble_multiTemplatedMethod_7(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("dhamaalString",nargout,nargin-1,2); checkArguments("multiTemplatedMethodStringSize_t",nargout,nargin-1,3);
auto obj = unwrap_shared_ptr<Fun<double>>(in[0], "ptr_FunDouble"); auto obj = unwrap_shared_ptr<Fun<double>>(in[0], "ptr_FunDouble");
double d = unwrap< double >(in[1]); double d = unwrap< double >(in[1]);
string t = unwrap< string >(in[2]); string t = unwrap< string >(in[2]);
out[0] = wrap_shared_ptr(boost::make_shared<Fun<double>>(obj->dhamaal<string>(d,t)),"Fun<double>", false); size_t u = unwrap< size_t >(in[3]);
out[0] = wrap_shared_ptr(boost::make_shared<Fun<double>>(obj->multiTemplatedMethod<string,size_t>(d,t,u)),"Fun<double>", false);
} }
void FunDouble_divertido_8(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void FunDouble_templatedMethod_8(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("FunDouble.divertido",nargout,nargin,0); checkArguments("templatedMethodString",nargout,nargin-1,2);
out[0] = wrap_shared_ptr(boost::make_shared<Fun<double>>(Fun<double>::divertido()),"Fundouble", false); auto obj = unwrap_shared_ptr<Fun<double>>(in[0], "ptr_FunDouble");
double d = unwrap< double >(in[1]);
string t = unwrap< string >(in[2]);
out[0] = wrap_shared_ptr(boost::make_shared<Fun<double>>(obj->templatedMethod<string>(d,t)),"Fun<double>", false);
} }
void Test_collectorInsertAndMakeBase_9(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void FunDouble_staticMethodWithThis_9(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{
checkArguments("FunDouble.staticMethodWithThis",nargout,nargin,0);
out[0] = wrap_shared_ptr(boost::make_shared<Fun<double>>(Fun<double>::staticMethodWithThis()),"Fundouble", false);
}
void Test_collectorInsertAndMakeBase_10(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<Test> Shared; typedef boost::shared_ptr<Test> Shared;
@ -224,7 +234,7 @@ void Test_collectorInsertAndMakeBase_9(int nargout, mxArray *out[], int nargin,
collector_Test.insert(self); collector_Test.insert(self);
} }
void Test_constructor_10(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_constructor_11(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<Test> Shared; typedef boost::shared_ptr<Test> Shared;
@ -235,7 +245,7 @@ void Test_constructor_10(int nargout, mxArray *out[], int nargin, const mxArray
*reinterpret_cast<Shared**> (mxGetData(out[0])) = self; *reinterpret_cast<Shared**> (mxGetData(out[0])) = self;
} }
void Test_constructor_11(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_constructor_12(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<Test> Shared; typedef boost::shared_ptr<Test> Shared;
@ -248,7 +258,7 @@ void Test_constructor_11(int nargout, mxArray *out[], int nargin, const mxArray
*reinterpret_cast<Shared**> (mxGetData(out[0])) = self; *reinterpret_cast<Shared**> (mxGetData(out[0])) = self;
} }
void Test_deconstructor_12(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_deconstructor_13(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
typedef boost::shared_ptr<Test> Shared; typedef boost::shared_ptr<Test> Shared;
checkArguments("delete_Test",nargout,nargin,1); checkArguments("delete_Test",nargout,nargin,1);
@ -261,7 +271,7 @@ void Test_deconstructor_12(int nargout, mxArray *out[], int nargin, const mxArra
} }
} }
void Test_arg_EigenConstRef_13(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_arg_EigenConstRef_14(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("arg_EigenConstRef",nargout,nargin-1,1); checkArguments("arg_EigenConstRef",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -269,7 +279,7 @@ void Test_arg_EigenConstRef_13(int nargout, mxArray *out[], int nargin, const mx
obj->arg_EigenConstRef(value); obj->arg_EigenConstRef(value);
} }
void Test_create_MixedPtrs_14(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_create_MixedPtrs_15(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("create_MixedPtrs",nargout,nargin-1,0); checkArguments("create_MixedPtrs",nargout,nargin-1,0);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -278,7 +288,7 @@ void Test_create_MixedPtrs_14(int nargout, mxArray *out[], int nargin, const mxA
out[1] = wrap_shared_ptr(pairResult.second,"Test", false); out[1] = wrap_shared_ptr(pairResult.second,"Test", false);
} }
void Test_create_ptrs_15(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_create_ptrs_16(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("create_ptrs",nargout,nargin-1,0); checkArguments("create_ptrs",nargout,nargin-1,0);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -287,14 +297,14 @@ void Test_create_ptrs_15(int nargout, mxArray *out[], int nargin, const mxArray
out[1] = wrap_shared_ptr(pairResult.second,"Test", false); out[1] = wrap_shared_ptr(pairResult.second,"Test", false);
} }
void Test_print_16(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_print_17(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("print",nargout,nargin-1,0); checkArguments("print",nargout,nargin-1,0);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
obj->print(); obj->print();
} }
void Test_return_Point2Ptr_17(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_Point2Ptr_18(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_Point2Ptr",nargout,nargin-1,1); checkArguments("return_Point2Ptr",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -305,7 +315,7 @@ void Test_return_Point2Ptr_17(int nargout, mxArray *out[], int nargin, const mxA
} }
} }
void Test_return_Test_18(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_Test_19(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_Test",nargout,nargin-1,1); checkArguments("return_Test",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -313,7 +323,7 @@ void Test_return_Test_18(int nargout, mxArray *out[], int nargin, const mxArray
out[0] = wrap_shared_ptr(boost::make_shared<Test>(obj->return_Test(value)),"Test", false); out[0] = wrap_shared_ptr(boost::make_shared<Test>(obj->return_Test(value)),"Test", false);
} }
void Test_return_TestPtr_19(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_TestPtr_20(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_TestPtr",nargout,nargin-1,1); checkArguments("return_TestPtr",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -321,7 +331,7 @@ void Test_return_TestPtr_19(int nargout, mxArray *out[], int nargin, const mxArr
out[0] = wrap_shared_ptr(obj->return_TestPtr(value),"Test", false); out[0] = wrap_shared_ptr(obj->return_TestPtr(value),"Test", false);
} }
void Test_return_bool_20(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_bool_21(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_bool",nargout,nargin-1,1); checkArguments("return_bool",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -329,7 +339,7 @@ void Test_return_bool_20(int nargout, mxArray *out[], int nargin, const mxArray
out[0] = wrap< bool >(obj->return_bool(value)); out[0] = wrap< bool >(obj->return_bool(value));
} }
void Test_return_double_21(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_double_22(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_double",nargout,nargin-1,1); checkArguments("return_double",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -337,7 +347,7 @@ void Test_return_double_21(int nargout, mxArray *out[], int nargin, const mxArra
out[0] = wrap< double >(obj->return_double(value)); out[0] = wrap< double >(obj->return_double(value));
} }
void Test_return_field_22(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_field_23(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_field",nargout,nargin-1,1); checkArguments("return_field",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -345,7 +355,7 @@ void Test_return_field_22(int nargout, mxArray *out[], int nargin, const mxArray
out[0] = wrap< bool >(obj->return_field(t)); out[0] = wrap< bool >(obj->return_field(t));
} }
void Test_return_int_23(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_int_24(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_int",nargout,nargin-1,1); checkArguments("return_int",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -353,7 +363,7 @@ void Test_return_int_23(int nargout, mxArray *out[], int nargin, const mxArray *
out[0] = wrap< int >(obj->return_int(value)); out[0] = wrap< int >(obj->return_int(value));
} }
void Test_return_matrix1_24(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_matrix1_25(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_matrix1",nargout,nargin-1,1); checkArguments("return_matrix1",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -361,7 +371,7 @@ void Test_return_matrix1_24(int nargout, mxArray *out[], int nargin, const mxArr
out[0] = wrap< Matrix >(obj->return_matrix1(value)); out[0] = wrap< Matrix >(obj->return_matrix1(value));
} }
void Test_return_matrix2_25(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_matrix2_26(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_matrix2",nargout,nargin-1,1); checkArguments("return_matrix2",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -369,7 +379,7 @@ void Test_return_matrix2_25(int nargout, mxArray *out[], int nargin, const mxArr
out[0] = wrap< Matrix >(obj->return_matrix2(value)); out[0] = wrap< Matrix >(obj->return_matrix2(value));
} }
void Test_return_pair_26(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_pair_27(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_pair",nargout,nargin-1,2); checkArguments("return_pair",nargout,nargin-1,2);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -380,7 +390,7 @@ void Test_return_pair_26(int nargout, mxArray *out[], int nargin, const mxArray
out[1] = wrap< Matrix >(pairResult.second); out[1] = wrap< Matrix >(pairResult.second);
} }
void Test_return_pair_27(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_pair_28(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_pair",nargout,nargin-1,1); checkArguments("return_pair",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -390,7 +400,7 @@ void Test_return_pair_27(int nargout, mxArray *out[], int nargin, const mxArray
out[1] = wrap< Matrix >(pairResult.second); out[1] = wrap< Matrix >(pairResult.second);
} }
void Test_return_ptrs_28(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_ptrs_29(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_ptrs",nargout,nargin-1,2); checkArguments("return_ptrs",nargout,nargin-1,2);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -401,7 +411,7 @@ void Test_return_ptrs_28(int nargout, mxArray *out[], int nargin, const mxArray
out[1] = wrap_shared_ptr(pairResult.second,"Test", false); out[1] = wrap_shared_ptr(pairResult.second,"Test", false);
} }
void Test_return_size_t_29(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_size_t_30(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_size_t",nargout,nargin-1,1); checkArguments("return_size_t",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -409,7 +419,7 @@ void Test_return_size_t_29(int nargout, mxArray *out[], int nargin, const mxArra
out[0] = wrap< size_t >(obj->return_size_t(value)); out[0] = wrap< size_t >(obj->return_size_t(value));
} }
void Test_return_string_30(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_string_31(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_string",nargout,nargin-1,1); checkArguments("return_string",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -417,7 +427,7 @@ void Test_return_string_30(int nargout, mxArray *out[], int nargin, const mxArra
out[0] = wrap< string >(obj->return_string(value)); out[0] = wrap< string >(obj->return_string(value));
} }
void Test_return_vector1_31(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_vector1_32(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_vector1",nargout,nargin-1,1); checkArguments("return_vector1",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -425,7 +435,7 @@ void Test_return_vector1_31(int nargout, mxArray *out[], int nargin, const mxArr
out[0] = wrap< Vector >(obj->return_vector1(value)); out[0] = wrap< Vector >(obj->return_vector1(value));
} }
void Test_return_vector2_32(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void Test_return_vector2_33(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("return_vector2",nargout,nargin-1,1); checkArguments("return_vector2",nargout,nargin-1,1);
auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test"); auto obj = unwrap_shared_ptr<Test>(in[0], "ptr_Test");
@ -433,7 +443,7 @@ void Test_return_vector2_32(int nargout, mxArray *out[], int nargin, const mxArr
out[0] = wrap< Vector >(obj->return_vector2(value)); out[0] = wrap< Vector >(obj->return_vector2(value));
} }
void PrimitiveRefDouble_collectorInsertAndMakeBase_33(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void PrimitiveRefDouble_collectorInsertAndMakeBase_34(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<PrimitiveRef<double>> Shared; typedef boost::shared_ptr<PrimitiveRef<double>> Shared;
@ -442,7 +452,7 @@ void PrimitiveRefDouble_collectorInsertAndMakeBase_33(int nargout, mxArray *out[
collector_PrimitiveRefDouble.insert(self); collector_PrimitiveRefDouble.insert(self);
} }
void PrimitiveRefDouble_constructor_34(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void PrimitiveRefDouble_constructor_35(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<PrimitiveRef<double>> Shared; typedef boost::shared_ptr<PrimitiveRef<double>> Shared;
@ -453,7 +463,7 @@ void PrimitiveRefDouble_constructor_34(int nargout, mxArray *out[], int nargin,
*reinterpret_cast<Shared**> (mxGetData(out[0])) = self; *reinterpret_cast<Shared**> (mxGetData(out[0])) = self;
} }
void PrimitiveRefDouble_deconstructor_35(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void PrimitiveRefDouble_deconstructor_36(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
typedef boost::shared_ptr<PrimitiveRef<double>> Shared; typedef boost::shared_ptr<PrimitiveRef<double>> Shared;
checkArguments("delete_PrimitiveRefDouble",nargout,nargin,1); checkArguments("delete_PrimitiveRefDouble",nargout,nargin,1);
@ -466,14 +476,14 @@ void PrimitiveRefDouble_deconstructor_35(int nargout, mxArray *out[], int nargin
} }
} }
void PrimitiveRefDouble_Brutal_36(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void PrimitiveRefDouble_Brutal_37(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
checkArguments("PrimitiveRefDouble.Brutal",nargout,nargin,1); checkArguments("PrimitiveRefDouble.Brutal",nargout,nargin,1);
double t = unwrap< double >(in[0]); double t = unwrap< double >(in[0]);
out[0] = wrap_shared_ptr(boost::make_shared<PrimitiveRef<double>>(PrimitiveRef<double>::Brutal(t)),"PrimitiveRefdouble", false); out[0] = wrap_shared_ptr(boost::make_shared<PrimitiveRef<double>>(PrimitiveRef<double>::Brutal(t)),"PrimitiveRefdouble", false);
} }
void MyVector3_collectorInsertAndMakeBase_37(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MyVector3_collectorInsertAndMakeBase_38(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<MyVector<3>> Shared; typedef boost::shared_ptr<MyVector<3>> Shared;
@ -482,7 +492,7 @@ void MyVector3_collectorInsertAndMakeBase_37(int nargout, mxArray *out[], int na
collector_MyVector3.insert(self); collector_MyVector3.insert(self);
} }
void MyVector3_constructor_38(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MyVector3_constructor_39(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<MyVector<3>> Shared; typedef boost::shared_ptr<MyVector<3>> Shared;
@ -493,7 +503,7 @@ void MyVector3_constructor_38(int nargout, mxArray *out[], int nargin, const mxA
*reinterpret_cast<Shared**> (mxGetData(out[0])) = self; *reinterpret_cast<Shared**> (mxGetData(out[0])) = self;
} }
void MyVector3_deconstructor_39(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MyVector3_deconstructor_40(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
typedef boost::shared_ptr<MyVector<3>> Shared; typedef boost::shared_ptr<MyVector<3>> Shared;
checkArguments("delete_MyVector3",nargout,nargin,1); checkArguments("delete_MyVector3",nargout,nargin,1);
@ -506,7 +516,7 @@ void MyVector3_deconstructor_39(int nargout, mxArray *out[], int nargin, const m
} }
} }
void MyVector12_collectorInsertAndMakeBase_40(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MyVector12_collectorInsertAndMakeBase_41(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<MyVector<12>> Shared; typedef boost::shared_ptr<MyVector<12>> Shared;
@ -515,7 +525,7 @@ void MyVector12_collectorInsertAndMakeBase_40(int nargout, mxArray *out[], int n
collector_MyVector12.insert(self); collector_MyVector12.insert(self);
} }
void MyVector12_constructor_41(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MyVector12_constructor_42(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<MyVector<12>> Shared; typedef boost::shared_ptr<MyVector<12>> Shared;
@ -526,7 +536,7 @@ void MyVector12_constructor_41(int nargout, mxArray *out[], int nargin, const mx
*reinterpret_cast<Shared**> (mxGetData(out[0])) = self; *reinterpret_cast<Shared**> (mxGetData(out[0])) = self;
} }
void MyVector12_deconstructor_42(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MyVector12_deconstructor_43(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
typedef boost::shared_ptr<MyVector<12>> Shared; typedef boost::shared_ptr<MyVector<12>> Shared;
checkArguments("delete_MyVector12",nargout,nargin,1); checkArguments("delete_MyVector12",nargout,nargin,1);
@ -539,7 +549,7 @@ void MyVector12_deconstructor_42(int nargout, mxArray *out[], int nargin, const
} }
} }
void MultipleTemplatesIntDouble_collectorInsertAndMakeBase_43(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MultipleTemplatesIntDouble_collectorInsertAndMakeBase_44(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<MultipleTemplates<int, double>> Shared; typedef boost::shared_ptr<MultipleTemplates<int, double>> Shared;
@ -548,7 +558,7 @@ void MultipleTemplatesIntDouble_collectorInsertAndMakeBase_43(int nargout, mxArr
collector_MultipleTemplatesIntDouble.insert(self); collector_MultipleTemplatesIntDouble.insert(self);
} }
void MultipleTemplatesIntDouble_deconstructor_44(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MultipleTemplatesIntDouble_deconstructor_45(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
typedef boost::shared_ptr<MultipleTemplates<int, double>> Shared; typedef boost::shared_ptr<MultipleTemplates<int, double>> Shared;
checkArguments("delete_MultipleTemplatesIntDouble",nargout,nargin,1); checkArguments("delete_MultipleTemplatesIntDouble",nargout,nargin,1);
@ -561,7 +571,7 @@ void MultipleTemplatesIntDouble_deconstructor_44(int nargout, mxArray *out[], in
} }
} }
void MultipleTemplatesIntFloat_collectorInsertAndMakeBase_45(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MultipleTemplatesIntFloat_collectorInsertAndMakeBase_46(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<MultipleTemplates<int, float>> Shared; typedef boost::shared_ptr<MultipleTemplates<int, float>> Shared;
@ -570,7 +580,7 @@ void MultipleTemplatesIntFloat_collectorInsertAndMakeBase_45(int nargout, mxArra
collector_MultipleTemplatesIntFloat.insert(self); collector_MultipleTemplatesIntFloat.insert(self);
} }
void MultipleTemplatesIntFloat_deconstructor_46(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MultipleTemplatesIntFloat_deconstructor_47(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
typedef boost::shared_ptr<MultipleTemplates<int, float>> Shared; typedef boost::shared_ptr<MultipleTemplates<int, float>> Shared;
checkArguments("delete_MultipleTemplatesIntFloat",nargout,nargin,1); checkArguments("delete_MultipleTemplatesIntFloat",nargout,nargin,1);
@ -583,7 +593,7 @@ void MultipleTemplatesIntFloat_deconstructor_46(int nargout, mxArray *out[], int
} }
} }
void MyFactorPosePoint2_collectorInsertAndMakeBase_47(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MyFactorPosePoint2_collectorInsertAndMakeBase_48(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<MyFactor<gtsam::Pose2, gtsam::Matrix>> Shared; typedef boost::shared_ptr<MyFactor<gtsam::Pose2, gtsam::Matrix>> Shared;
@ -592,7 +602,7 @@ void MyFactorPosePoint2_collectorInsertAndMakeBase_47(int nargout, mxArray *out[
collector_MyFactorPosePoint2.insert(self); collector_MyFactorPosePoint2.insert(self);
} }
void MyFactorPosePoint2_constructor_48(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MyFactorPosePoint2_constructor_49(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
mexAtExit(&_deleteAllObjects); mexAtExit(&_deleteAllObjects);
typedef boost::shared_ptr<MyFactor<gtsam::Pose2, gtsam::Matrix>> Shared; typedef boost::shared_ptr<MyFactor<gtsam::Pose2, gtsam::Matrix>> Shared;
@ -607,7 +617,7 @@ void MyFactorPosePoint2_constructor_48(int nargout, mxArray *out[], int nargin,
*reinterpret_cast<Shared**> (mxGetData(out[0])) = self; *reinterpret_cast<Shared**> (mxGetData(out[0])) = self;
} }
void MyFactorPosePoint2_deconstructor_49(int nargout, mxArray *out[], int nargin, const mxArray *in[]) void MyFactorPosePoint2_deconstructor_50(int nargout, mxArray *out[], int nargin, const mxArray *in[])
{ {
typedef boost::shared_ptr<MyFactor<gtsam::Pose2, gtsam::Matrix>> Shared; typedef boost::shared_ptr<MyFactor<gtsam::Pose2, gtsam::Matrix>> Shared;
checkArguments("delete_MyFactorPosePoint2",nargout,nargin,1); checkArguments("delete_MyFactorPosePoint2",nargout,nargin,1);
@ -654,133 +664,136 @@ void mexFunction(int nargout, mxArray *out[], int nargin, const mxArray *in[])
FunDouble_deconstructor_6(nargout, out, nargin-1, in+1); FunDouble_deconstructor_6(nargout, out, nargin-1, in+1);
break; break;
case 7: case 7:
FunDouble_dhamaal_7(nargout, out, nargin-1, in+1); FunDouble_multiTemplatedMethod_7(nargout, out, nargin-1, in+1);
break; break;
case 8: case 8:
FunDouble_divertido_8(nargout, out, nargin-1, in+1); FunDouble_templatedMethod_8(nargout, out, nargin-1, in+1);
break; break;
case 9: case 9:
Test_collectorInsertAndMakeBase_9(nargout, out, nargin-1, in+1); FunDouble_staticMethodWithThis_9(nargout, out, nargin-1, in+1);
break; break;
case 10: case 10:
Test_constructor_10(nargout, out, nargin-1, in+1); Test_collectorInsertAndMakeBase_10(nargout, out, nargin-1, in+1);
break; break;
case 11: case 11:
Test_constructor_11(nargout, out, nargin-1, in+1); Test_constructor_11(nargout, out, nargin-1, in+1);
break; break;
case 12: case 12:
Test_deconstructor_12(nargout, out, nargin-1, in+1); Test_constructor_12(nargout, out, nargin-1, in+1);
break; break;
case 13: case 13:
Test_arg_EigenConstRef_13(nargout, out, nargin-1, in+1); Test_deconstructor_13(nargout, out, nargin-1, in+1);
break; break;
case 14: case 14:
Test_create_MixedPtrs_14(nargout, out, nargin-1, in+1); Test_arg_EigenConstRef_14(nargout, out, nargin-1, in+1);
break; break;
case 15: case 15:
Test_create_ptrs_15(nargout, out, nargin-1, in+1); Test_create_MixedPtrs_15(nargout, out, nargin-1, in+1);
break; break;
case 16: case 16:
Test_print_16(nargout, out, nargin-1, in+1); Test_create_ptrs_16(nargout, out, nargin-1, in+1);
break; break;
case 17: case 17:
Test_return_Point2Ptr_17(nargout, out, nargin-1, in+1); Test_print_17(nargout, out, nargin-1, in+1);
break; break;
case 18: case 18:
Test_return_Test_18(nargout, out, nargin-1, in+1); Test_return_Point2Ptr_18(nargout, out, nargin-1, in+1);
break; break;
case 19: case 19:
Test_return_TestPtr_19(nargout, out, nargin-1, in+1); Test_return_Test_19(nargout, out, nargin-1, in+1);
break; break;
case 20: case 20:
Test_return_bool_20(nargout, out, nargin-1, in+1); Test_return_TestPtr_20(nargout, out, nargin-1, in+1);
break; break;
case 21: case 21:
Test_return_double_21(nargout, out, nargin-1, in+1); Test_return_bool_21(nargout, out, nargin-1, in+1);
break; break;
case 22: case 22:
Test_return_field_22(nargout, out, nargin-1, in+1); Test_return_double_22(nargout, out, nargin-1, in+1);
break; break;
case 23: case 23:
Test_return_int_23(nargout, out, nargin-1, in+1); Test_return_field_23(nargout, out, nargin-1, in+1);
break; break;
case 24: case 24:
Test_return_matrix1_24(nargout, out, nargin-1, in+1); Test_return_int_24(nargout, out, nargin-1, in+1);
break; break;
case 25: case 25:
Test_return_matrix2_25(nargout, out, nargin-1, in+1); Test_return_matrix1_25(nargout, out, nargin-1, in+1);
break; break;
case 26: case 26:
Test_return_pair_26(nargout, out, nargin-1, in+1); Test_return_matrix2_26(nargout, out, nargin-1, in+1);
break; break;
case 27: case 27:
Test_return_pair_27(nargout, out, nargin-1, in+1); Test_return_pair_27(nargout, out, nargin-1, in+1);
break; break;
case 28: case 28:
Test_return_ptrs_28(nargout, out, nargin-1, in+1); Test_return_pair_28(nargout, out, nargin-1, in+1);
break; break;
case 29: case 29:
Test_return_size_t_29(nargout, out, nargin-1, in+1); Test_return_ptrs_29(nargout, out, nargin-1, in+1);
break; break;
case 30: case 30:
Test_return_string_30(nargout, out, nargin-1, in+1); Test_return_size_t_30(nargout, out, nargin-1, in+1);
break; break;
case 31: case 31:
Test_return_vector1_31(nargout, out, nargin-1, in+1); Test_return_string_31(nargout, out, nargin-1, in+1);
break; break;
case 32: case 32:
Test_return_vector2_32(nargout, out, nargin-1, in+1); Test_return_vector1_32(nargout, out, nargin-1, in+1);
break; break;
case 33: case 33:
PrimitiveRefDouble_collectorInsertAndMakeBase_33(nargout, out, nargin-1, in+1); Test_return_vector2_33(nargout, out, nargin-1, in+1);
break; break;
case 34: case 34:
PrimitiveRefDouble_constructor_34(nargout, out, nargin-1, in+1); PrimitiveRefDouble_collectorInsertAndMakeBase_34(nargout, out, nargin-1, in+1);
break; break;
case 35: case 35:
PrimitiveRefDouble_deconstructor_35(nargout, out, nargin-1, in+1); PrimitiveRefDouble_constructor_35(nargout, out, nargin-1, in+1);
break; break;
case 36: case 36:
PrimitiveRefDouble_Brutal_36(nargout, out, nargin-1, in+1); PrimitiveRefDouble_deconstructor_36(nargout, out, nargin-1, in+1);
break; break;
case 37: case 37:
MyVector3_collectorInsertAndMakeBase_37(nargout, out, nargin-1, in+1); PrimitiveRefDouble_Brutal_37(nargout, out, nargin-1, in+1);
break; break;
case 38: case 38:
MyVector3_constructor_38(nargout, out, nargin-1, in+1); MyVector3_collectorInsertAndMakeBase_38(nargout, out, nargin-1, in+1);
break; break;
case 39: case 39:
MyVector3_deconstructor_39(nargout, out, nargin-1, in+1); MyVector3_constructor_39(nargout, out, nargin-1, in+1);
break; break;
case 40: case 40:
MyVector12_collectorInsertAndMakeBase_40(nargout, out, nargin-1, in+1); MyVector3_deconstructor_40(nargout, out, nargin-1, in+1);
break; break;
case 41: case 41:
MyVector12_constructor_41(nargout, out, nargin-1, in+1); MyVector12_collectorInsertAndMakeBase_41(nargout, out, nargin-1, in+1);
break; break;
case 42: case 42:
MyVector12_deconstructor_42(nargout, out, nargin-1, in+1); MyVector12_constructor_42(nargout, out, nargin-1, in+1);
break; break;
case 43: case 43:
MultipleTemplatesIntDouble_collectorInsertAndMakeBase_43(nargout, out, nargin-1, in+1); MyVector12_deconstructor_43(nargout, out, nargin-1, in+1);
break; break;
case 44: case 44:
MultipleTemplatesIntDouble_deconstructor_44(nargout, out, nargin-1, in+1); MultipleTemplatesIntDouble_collectorInsertAndMakeBase_44(nargout, out, nargin-1, in+1);
break; break;
case 45: case 45:
MultipleTemplatesIntFloat_collectorInsertAndMakeBase_45(nargout, out, nargin-1, in+1); MultipleTemplatesIntDouble_deconstructor_45(nargout, out, nargin-1, in+1);
break; break;
case 46: case 46:
MultipleTemplatesIntFloat_deconstructor_46(nargout, out, nargin-1, in+1); MultipleTemplatesIntFloat_collectorInsertAndMakeBase_46(nargout, out, nargin-1, in+1);
break; break;
case 47: case 47:
MyFactorPosePoint2_collectorInsertAndMakeBase_47(nargout, out, nargin-1, in+1); MultipleTemplatesIntFloat_deconstructor_47(nargout, out, nargin-1, in+1);
break; break;
case 48: case 48:
MyFactorPosePoint2_constructor_48(nargout, out, nargin-1, in+1); MyFactorPosePoint2_collectorInsertAndMakeBase_48(nargout, out, nargin-1, in+1);
break; break;
case 49: case 49:
MyFactorPosePoint2_deconstructor_49(nargout, out, nargin-1, in+1); MyFactorPosePoint2_constructor_49(nargout, out, nargin-1, in+1);
break;
case 50:
MyFactorPosePoint2_deconstructor_50(nargout, out, nargin-1, in+1);
break; break;
} }
} catch(const std::exception& e) { } catch(const std::exception& e) {

View File

@ -28,8 +28,9 @@ PYBIND11_MODULE(class_py, m_) {
.def_static("create",[](){return FunRange::create();}); .def_static("create",[](){return FunRange::create();});
py::class_<Fun<double>, std::shared_ptr<Fun<double>>>(m_, "FunDouble") py::class_<Fun<double>, std::shared_ptr<Fun<double>>>(m_, "FunDouble")
.def("dhamaalString",[](Fun<double>* self, double d, string t){return self->dhamaal<string>(d, t);}, py::arg("d"), py::arg("t")) .def("templatedMethodString",[](Fun<double>* self, double d, string t){return self->templatedMethod<string>(d, t);}, py::arg("d"), py::arg("t"))
.def_static("divertido",[](){return Fun<double>::divertido();}); .def("multiTemplatedMethodStringSize_t",[](Fun<double>* self, double d, string t, size_t u){return self->multiTemplatedMethod<string,size_t>(d, t, u);}, py::arg("d"), py::arg("t"), py::arg("u"))
.def_static("staticMethodWithThis",[](){return Fun<double>::staticMethodWithThis();});
py::class_<Test, std::shared_ptr<Test>>(m_, "Test") py::class_<Test, std::shared_ptr<Test>>(m_, "Test")
.def(py::init<>()) .def(py::init<>())

View File

@ -7,13 +7,13 @@ class FunRange {
template<M={double}> template<M={double}>
class Fun { class Fun {
static This divertido(); static This staticMethodWithThis();
template<T={string}> template<T={string}>
This dhamaal(double d, T t); This templatedMethod(double d, T t);
// template<T={string}, U={size_t}> template<T={string}, U={size_t}>
// This pret(double d, T t, U u); This multiTemplatedMethod(double d, T t, U u);
}; };