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
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 |