68 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.0 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    IndexConditional.h
 | |
|  * @brief   
 | |
|  * @author  Richard Roberts
 | |
|  * @created Oct 17, 2010
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <gtsam/inference/Conditional.h>
 | |
| #include <gtsam/inference/IndexFactor.h>
 | |
| 
 | |
| namespace gtsam {
 | |
| 
 | |
| class IndexFactor;
 | |
| 
 | |
| class IndexConditional : public ConditionalBase<Index> {
 | |
| 
 | |
| public:
 | |
| 
 | |
|   typedef IndexConditional This;
 | |
|   typedef ConditionalBase<Index> Base;
 | |
|   typedef IndexFactor Factor;
 | |
|   typedef boost::shared_ptr<IndexConditional> shared_ptr;
 | |
| 
 | |
|   /** Empty Constructor to make serialization possible */
 | |
|   IndexConditional() {}
 | |
| 
 | |
|   /** No parents */
 | |
|   IndexConditional(Index j) : Base(j) {}
 | |
| 
 | |
|   /** Single parent */
 | |
|   IndexConditional(Index j, Index parent) : Base(j, parent) {}
 | |
| 
 | |
|   /** Two parents */
 | |
|   IndexConditional(Index j, Index parent1, Index parent2) : Base(j, parent1, parent2) {}
 | |
| 
 | |
|   /** Three parents */
 | |
|   IndexConditional(Index j, Index parent1, Index parent2, Index parent3) : Base(j, parent1, parent2, parent3) {}
 | |
| 
 | |
|   /** Constructor from a frontal variable and a vector of parents */
 | |
|   IndexConditional(Index j, const std::vector<Index>& parents) : Base(j, parents) {}
 | |
| 
 | |
|   /** Constructor from a frontal variable and an iterator range of parents */
 | |
|   template<typename ITERATOR>
 | |
|   static shared_ptr FromRange(Index j, ITERATOR firstParent, ITERATOR lastParent) {
 | |
|     return Base::FromRange<This>(j, firstParent, lastParent); }
 | |
| 
 | |
|   /** Named constructor from any number of frontal variables and parents */
 | |
|   template<typename ITERATOR>
 | |
|   static shared_ptr FromRange(ITERATOR firstKey, ITERATOR lastKey, size_t nrFrontals) {
 | |
|     return Base::FromRange<This>(firstKey, lastKey, nrFrontals); }
 | |
| 
 | |
| };
 | |
| 
 | |
| }
 |