62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
		
		
			
		
	
	
			62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
|  | /* ----------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  |  * GTSAM Copyright 2010, Georgia Tech Research Corporation,  | ||
|  |  * Atlanta, Georgia 30332-0415 | ||
|  |  * All Rights Reserved | ||
|  |  * Authors: Frank Dellaert, et al. (see THANKS for the full author list) | ||
|  | 
 | ||
|  |  * See LICENSE for the license information | ||
|  | 
 | ||
|  |  * -------------------------------------------------------------------------- */ | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @file Deconstructor.h | ||
|  |  * @brief class describing a constructor + code generation | ||
|  |  * @author Frank Dellaert | ||
|  |  * @author Andrew Melim | ||
|  |  **/ | ||
|  | 
 | ||
|  | #pragma once
 | ||
|  | 
 | ||
|  | #include <string>
 | ||
|  | #include <vector>
 | ||
|  | 
 | ||
|  | #include "Argument.h"
 | ||
|  | 
 | ||
|  | namespace wrap { | ||
|  | 
 | ||
|  | // Deconstructor class
 | ||
|  | struct Deconstructor { | ||
|  | 
 | ||
|  | 	/// Deconstructor creates an empty class
 | ||
|  | 	Deconstructor(bool verbose = true) : | ||
|  | 			verbose_(verbose) { | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// Then the instance variables are set directly by the Module deconstructor
 | ||
|  |     ArgumentList args;	 | ||
|  | 	std::string name; | ||
|  | 	bool verbose_; | ||
|  | 
 | ||
|  | 	// MATLAB code generation
 | ||
|  | 	// toolboxPath is main toolbox directory, e.g., ../matlab
 | ||
|  | 	// classFile is class proxy file, e.g., ../matlab/@Point2/Point2.m
 | ||
|  | 
 | ||
|  | 	/// wrapper name
 | ||
|  | 	std::string matlab_wrapper_name(const std::string& className) const; | ||
|  | 
 | ||
|  | 	/// m-file
 | ||
|  | 	void matlab_mfile(const std::string& toolboxPath, | ||
|  | 			const std::string& qualifiedMatlabName) const; | ||
|  | 
 | ||
|  | 	/// cpp wrapper
 | ||
|  | 	void matlab_wrapper(const std::string& toolboxPath, | ||
|  | 			 const std::string& cppClassName, | ||
|  | 			 const std::string& matlabClassName, | ||
|  | 			 const std::vector<std::string>& using_namespaces, | ||
|  | 			 const std::vector<std::string>& includes) const; | ||
|  | }; | ||
|  | 
 | ||
|  | } // \namespace wrap
 | ||
|  | 
 |