| 
									
										
										
										
											2012-07-24 06:15:05 +08:00
										 |  |  | function plot2DPoints(values, linespec, marginals)
 | 
					
						
							| 
									
										
										
										
											2012-07-24 03:21:00 +08:00
										 |  |  | %PLOT2DPOINTS Plots the Point2's in a values, with optional covariances | 
					
						
							|  |  |  | %   Finds all the Point2 objects in the given Values object and plots them. | 
					
						
							|  |  |  | % If a Marginals object is given, this function will also plot marginal | 
					
						
							|  |  |  | % covariance ellipses for each point. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import gtsam.* | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-07-24 06:15:05 +08:00
										 |  |  | if ~exist('linespec', 'var') || isempty(linespec) | 
					
						
							|  |  |  |     linespec = 'g'; | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2012-07-24 03:21:00 +08:00
										 |  |  | haveMarginals = exist('marginals', 'var'); | 
					
						
							|  |  |  | keys = KeyVector(values.keys); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | holdstate = ishold; | 
					
						
							|  |  |  | hold on | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % Plot points and covariance matrices | 
					
						
							|  |  |  | for i = 0:keys.size-1 | 
					
						
							|  |  |  |     key = keys.at(i); | 
					
						
							| 
									
										
										
										
											2014-11-14 07:51:11 +08:00
										 |  |  |     try | 
					
						
							|  |  |  |         p = values.atPoint2(key); | 
					
						
							| 
									
										
										
										
											2012-07-24 03:21:00 +08:00
										 |  |  |         if haveMarginals | 
					
						
							|  |  |  |             P = marginals.marginalCovariance(key); | 
					
						
							| 
									
										
										
										
											2012-08-04 05:02:45 +08:00
										 |  |  |             gtsam.plotPoint2(p, linespec, P); | 
					
						
							| 
									
										
										
										
											2012-07-24 03:21:00 +08:00
										 |  |  |         else | 
					
						
							| 
									
										
										
										
											2012-08-04 05:02:45 +08:00
										 |  |  |             gtsam.plotPoint2(p, linespec); | 
					
						
							| 
									
										
										
										
											2012-07-24 03:21:00 +08:00
										 |  |  |         end | 
					
						
							| 
									
										
										
										
											2014-11-14 07:51:11 +08:00
										 |  |  |     catch err | 
					
						
							|  |  |  |         % I guess it's not a Point2 | 
					
						
							| 
									
										
										
										
											2012-07-24 03:21:00 +08:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2014-11-14 07:51:11 +08:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2012-07-24 03:21:00 +08:00
										 |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if ~holdstate | 
					
						
							|  |  |  |     hold off | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 |