35 lines
		
	
	
		
			796 B
		
	
	
	
		
			C
		
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			796 B
		
	
	
	
		
			C
		
	
	
|  | /**
 | ||
|  |  * file: Method.h | ||
|  |  * brief: describes and generates code for methods | ||
|  |  * Author: Frank Dellaert | ||
|  |  **/ | ||
|  | 
 | ||
|  | #pragma once
 | ||
|  | 
 | ||
|  | #include <string>
 | ||
|  | #include <list>
 | ||
|  | 
 | ||
|  | #include "Argument.h"
 | ||
|  | 
 | ||
|  | // Method class
 | ||
|  | struct Method { | ||
|  |   bool is_const; | ||
|  |   ArgumentList args; | ||
|  |   std::string returns, returns2, name; | ||
|  |   bool returns_ptr, returns_ptr2, returns_pair; | ||
|  | 
 | ||
|  | Method() : returns_ptr(false), returns_ptr2(false), returns_pair(false) {} | ||
|  | 
 | ||
|  |   enum pairing {arg1, arg2, pair}; | ||
|  |   std::string return_type(bool add_ptr, pairing p); | ||
|  | 
 | ||
|  |   // MATLAB code generation
 | ||
|  |   // classPath is class directory, e.g., ../matlab/@Point2
 | ||
|  | 
 | ||
|  |   void matlab_mfile  (const std::string& classPath); // m-file
 | ||
|  |   void matlab_wrapper(const std::string& classPath,  | ||
|  | 		      const std::string& className,  | ||
|  | 		      const std::string& nameSpace); // wrapper
 | ||
|  | }; | ||
|  | 
 |