| 
									
										
										
										
											2011-10-21 13:06:51 +08:00
										 |  |  | Frank Dellaert | 
					
						
							|  |  |  | October 2011 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-05 03:45:32 +08:00
										 |  |  | The wrap library wraps the GTSAM library into a MATLAB toolbox.  | 
					
						
							| 
									
										
										
										
											2011-10-21 13:06:51 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							| 
									
										
										
										
											2012-06-05 03:45:32 +08:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2011-10-21 13:06:51 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							| 
									
										
										
										
											2011-12-02 10:32:18 +08:00
										 |  |  | - Simple argument types of methods, such as "double", will be converted in the | 
					
						
							| 
									
										
										
										
											2012-01-28 10:39:50 +08:00
										 |  |  |   mex wrappers by calling unwrap<double>, defined in matlab.h | 
					
						
							| 
									
										
										
										
											2011-12-02 10:32:18 +08:00
										 |  |  | - 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  | 
					
						
							| 
									
										
										
										
											2011-10-21 13:06:51 +08:00
										 |  |  |   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 | 
					
						
							| 
									
										
										
										
											2012-06-05 03:45:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-21 13:06:51 +08:00
										 |  |  |     |