22 #ifndef OPENRAVE_IKSOLVER_H
23 #define OPENRAVE_IKSOLVER_H
69 return _action != action;
72 return _action == action;
84 typedef std::map<std::string, std::vector<dReal> >
CustomData;
118 return PT_InverseKinematicsSolver;
136 virtual UserDataPtr RegisterCustomFilter(
int priority,
const IkFilterCallbackFn& filterfn);
141 RAVELOG_WARN(
"IkSolverBase::SetCustomFilter is deprecated, have to use handle=AddCustomFilter. This call will will leak memory\n");
142 if( __listRegisteredFilters.size() > 0 ) {
143 RAVELOG_WARN(
"IkSolverBase::SetCustomFilter is deprecated, deleting all current filters!\n");
151 virtual int GetNumFreeParameters()
const = 0;
158 virtual bool GetFreeParameters(std::vector<dReal>& vFreeParameters)
const = 0;
169 virtual bool Solve(
const IkParameterization& param,
const std::vector<dReal>& q0,
int filteroptions, boost::shared_ptr< std::vector<dReal> > solution = boost::shared_ptr< std::vector<dReal> >()) = 0;
190 virtual bool SolveAll(
const IkParameterization& param,
int filteroptions, std::vector< std::vector<dReal> >& solutions) = 0;
193 virtual bool Solve(
const IkParameterization& param,
int filteroptions, std::vector< std::vector<dReal> >& solutions) RAVE_DEPRECATED {
194 return SolveAll(param,filteroptions,solutions);
205 virtual bool SolveAll(
const IkParameterization& param,
int filteroptions, std::vector<IkReturnPtr>& ikreturns);
217 virtual bool Solve(
const IkParameterization& param,
const std::vector<dReal>& q0,
const std::vector<dReal>& vFreeParameters,
int filteroptions, boost::shared_ptr< std::vector<dReal> > solution=boost::shared_ptr< std::vector<dReal> >()) = 0;
229 virtual bool Solve(
const IkParameterization& param,
const std::vector<dReal>& q0,
const std::vector<dReal>& vFreeParameters,
int filteroptions,
IkReturnPtr ikreturn);
241 virtual bool SolveAll(
const IkParameterization& param,
const std::vector<dReal>& vFreeParameters,
int filteroptions, std::vector< std::vector<dReal> >& solutions) = 0;
244 virtual bool Solve(
const IkParameterization& param,
const std::vector<dReal>& vFreeParameters,
int filteroptions, std::vector< std::vector<dReal> >& solutions) RAVE_DEPRECATED {
245 return SolveAll(param,vFreeParameters,filteroptions,solutions);
258 virtual bool SolveAll(
const IkParameterization& param,
const std::vector<dReal>& vFreeParameters,
int filteroptions, std::vector<IkReturnPtr>& ikreturns);
265 return boost::static_pointer_cast<
IkSolverBase>(shared_from_this());
268 return boost::static_pointer_cast<
IkSolverBase const>(shared_from_this());
279 virtual const char* GetHash()
const {
283 std::list<UserDataWeakPtr> __listRegisteredFilters;