31 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
Frank Dellaert
 | 
						|
October 2011
 | 
						|
 | 
						|
The wrap library wraps the GTSAM library into a MATLAB toolbox. 
 | 
						|
 | 
						|
It was designed to be more general than just wrapping GTSAM, but a small amount of 
 | 
						|
GTSAM specific code exists in matlab.h, the include file that is included by the
 | 
						|
mex files. The GTSAM-specific functionality consists primarily of handling of
 | 
						|
Eigen Matrix and Vector classes.  
 | 
						|
 | 
						|
For notes on creating a wrap interface, see gtsam.h for what features can be 
 | 
						|
wrapped into a toolbox, as well as the current state of the toolbox for gtsam.
 | 
						|
For more technical details on the interface, please read comments in matlab.h
 | 
						|
 | 
						|
Some good things to know:
 | 
						|
 | 
						|
OBJECT CREATION
 | 
						|
- Classes are created by special constructors, e.g., new_GaussianFactorGraph_.cpp.
 | 
						|
	These constructors are called from the MATLAB class @GaussianFactorGraph.
 | 
						|
	new_GaussianFactorGraph_ calls wrap_constructed in matlab.h, see documentation there
 | 
						|
	
 | 
						|
METHOD (AND CONSTRUCTOR) ARGUMENTS
 | 
						|
- Simple argument types of methods, such as "double", will be converted in the
 | 
						|
  mex wrappers by calling unwrap<double>, defined in matlab.h
 | 
						|
- Vector and Matrix arguments are normally passed by reference in GTSAM, but
 | 
						|
  in gtsam.h you need to pretend they are passed by value, to trigger the 
 | 
						|
  generation of the correct conversion routines unwrap<Vector> and unwrap<Matrix>
 | 
						|
- passing classes as arguments works, provided they are passed by reference.
 | 
						|
	This triggers a call to unwrap_shared_ptr
 | 
						|
 | 
						|
    |