1 // g2o - General Graph Optimization 2 // Copyright (C) 2011 R. Kuemmerle, G. Grisetti, W. Burgard 3 // All rights reserved. 4 // 5 // Redistribution and use in source and binary forms, with or without 6 // modification, are permitted provided that the following conditions are 7 // met: 8 // 9 // * Redistributions of source code must retain the above copyright notice, 10 // this list of conditions and the following disclaimer. 11 // * Redistributions in binary form must reproduce the above copyright 12 // notice, this list of conditions and the following disclaimer in the 13 // documentation and/or other materials provided with the distribution. 14 // 15 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 16 // IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 17 // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 18 // PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 19 // HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 21 // TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 22 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 23 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 24 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 27 #ifndef G2O_OPTIMIZATION_ALGORITHM_PROPERTY_H 28 #define G2O_OPTIMIZATION_ALGORITHM_PROPERTY_H 29 30 #include <string> 31 32 #include "g2o_core_api.h" 33 34 namespace g2o { 35 36 /** 37 * \brief describe the properties of a solver 38 */ 39 struct G2O_CORE_API OptimizationAlgorithmProperty 40 { 41 std::string name; ///< name of the solver, e.g., var 42 std::string desc; ///< short description of the solver 43 std::string type; ///< type of solver, e.g., "CSparse Cholesky", "PCG" 44 bool requiresMarginalize; ///< whether the solver requires marginalization of landmarks 45 int poseDim; ///< dimension of the pose vertices (-1 if variable) 46 int landmarkDim; ///< dimension of the landmar vertices (-1 if variable) OptimizationAlgorithmPropertyOptimizationAlgorithmProperty47 OptimizationAlgorithmProperty() : 48 name(), desc(), type(), requiresMarginalize(false), poseDim(-1), landmarkDim(-1) 49 { 50 } OptimizationAlgorithmPropertyOptimizationAlgorithmProperty51 OptimizationAlgorithmProperty(const std::string& name_, const std::string& desc_, const std::string& type_, bool requiresMarginalize_, int poseDim_, int landmarkDim_) : 52 name(name_), desc(desc_), type(type_), requiresMarginalize(requiresMarginalize_), poseDim(poseDim_), landmarkDim(landmarkDim_) 53 { 54 } 55 }; 56 57 } // end namespace 58 59 #endif 60