IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Sphere3dCostFunction.h
1 // Sphere3dCostFunction.h:
3 // -----------------------
4 //
14 
15 #ifndef __IPSDKGEOMETRY_SPHERE3DCOSTFUNCTION_H__
16 #define __IPSDKGEOMETRY_SPHERE3DCOSTFUNCTION_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::geom::Sphere3dCostFunction::_dataSet' : class 'std::vector<ipsdk::math::DataType,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'ipsdk::geom::Sphere3dCostFunction'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
25 #include <IPSDKMath/Optimization/BaseCostFunction.h>
26 
27 namespace ipsdk {
28 namespace geom {
29 
32 
34 {
35 // predefined public types
36 public:
39 
41  (eEP_CenterX)
42 
44  (eEP_CenterY)
45 
47  (eEP_CenterZ)
48 
50  (eEP_Radius)
51  )
52 
53 
54  static const ipUInt32 g_parameterSize = eEstimParams::size;
55 
58 
60  (eDT_X)
61 
63  (eDT_Y)
64 
66  (eDT_Z)
67  )
68 
70  static const ipUInt32 g_dataSize = eDataType::size;
71 
72 public:
78 
79 // methods
80 public:
84  void init(const math::DataSet& dataSet);
85 
86 protected:
88  BoolResult processEquations(const math::Vector& parameters,
89  math::Vector& equations) const;
90 
93  BoolResult processJacobian(const math::Vector& parameters,
94  math::Matrix& jacobian) const;
95 
97  void clearDerived();
98 
99 // attributes
100 protected:
102  math::DataSet _dataSet;
103 };
104 
107 
108 } // end of namespace geom
109 } // end of namespace ipsdk
110 
111 #pragma warning (pop)
112 
113 #endif // __IPSDKGEOMETRY_SPHERE3DCOSTFUNCTION_H__
boost::numeric::ublas::matrix< ipReal64 > Matrix
matrix type associated to library
Definition: LinearAlgebraTypes.h:48
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
eDataType
Definition: Sphere3dCostFunction.h:58
std::vector< DataType > DataSet
collection of data associated to estimation
Definition: EstimationTypes.h:67
Base class for cost functions used during optimization process.
Definition: BaseCostFunction.h:33
boost::numeric::ublas::vector< ipReal64 > Vector
vector type associated to library
Definition: LinearAlgebraTypes.h:36
Definition of import/export macro for library.
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
eEstimParams
Definition: Sphere3dCostFunction.h:40
Cost function for sphere 3d parameters non linear optimization.
Definition: Sphere3dCostFunction.h:33
Predefined types for estimation 3d management.
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53