Add the ability to query the Problem about parameter blocks. Change-Id: Ieda1aefa28e7a1d18fe6c8d1665882e4d9c274f2
diff --git a/include/ceres/problem.h b/include/ceres/problem.h index 0a449cb..707a8eb 100644 --- a/include/ceres/problem.h +++ b/include/ceres/problem.h
@@ -328,6 +328,19 @@ // sizes of all of the residual blocks. int NumResiduals() const; + // The size of the parameter block. + int ParameterBlockSize(double* values) const; + + // The size of local parameterization for the parameter block. If + // there is no local parameterization associated with this parameter + // block, then ParmeterBlockLocalSize = ParameterBlockSize. + int ParameterBlockLocalSize(double* values) const; + + // Fills the passed parameter_blocks vector with pointers to the + // parameter blocks currently in the problem. After this call, + // parameter_block.size() == NumParameterBlocks. + void GetParameterBlocks(vector<double*>* parameter_blocks) const; + // Options struct to control Problem::Evaluate. struct EvaluateOptions { EvaluateOptions()