31 template<
typename,
int>
class JointCollectionTpl,
33 static ReturnType run(
40 return boost::apply_visitor(
visitor, jmodel);
43 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
44 static ReturnType run(
50 return boost::apply_visitor(
visitor, jmodel);
53 template<
typename Jo
intModelDerived,
typename ArgsTmp>
54 static ReturnType run(
60 return visitor(jmodel.derived());
63 template<
typename Jo
intModelDerived>
64 static ReturnType run(
69 return visitor(jmodel.derived());
75 template<
typename,
int>
class JointCollectionTpl,
81 return boost::apply_visitor(
visitor, jmodel);
87 template<
typename,
int>
class JointCollectionTpl,
93 return boost::apply_visitor(
visitor, jdata);
96 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
100 return boost::apply_visitor(
visitor, jmodel);
103 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
107 return boost::apply_visitor(
visitor, jdata);
110 template<
typename Jo
intModelDerived,
typename ArgsTmp>
114 return visitor(jmodel.derived());
117 template<
typename Jo
intDataDerived,
typename ArgsTmp>
121 return visitor(jdata.derived());
124 template<
typename Jo
intModelDerived>
128 return visitor(jmodel.derived());
131 template<
typename Jo
intDataDerived>
135 return visitor(jdata.derived());
139 template<
typename Jo
intModel,
typename ArgType>
140 struct InternalVisitorModelAndData :
public boost::static_visitor<ReturnType>
142 typedef typename JointModel::JointDataDerived
JointData;
144 InternalVisitorModelAndData(
JointData & jdata, ArgType args)
150 template<
typename Jo
intModelDerived>
156 boost::ref(jmodel.derived()),
171 template<
typename Jo
intModel>
172 struct InternalVisitorModelAndData<
JointModel, NoArg>
173 :
public boost::static_visitor<ReturnType>
175 typedef typename JointModel::JointDataDerived
JointData;
177 InternalVisitorModelAndData(
JointData & jdata)
182 template<
typename Jo
intModelDerived>
188 boost::ref(jmodel.derived()),
196 template<
typename ArgType,
typename Dummy =
void>
197 struct InternalVisitorModel :
public boost::static_visitor<ReturnType>
199 InternalVisitorModel(ArgType args)
204 template<
typename Jo
intModelDerived>
209 bf::append(boost::ref(jmodel.derived()), args));
212 template<
typename Jo
intDataDerived>
217 bf::append(boost::ref(jdata.derived()), args));
228 template<
typename Dummy>
229 struct InternalVisitorModel<NoArg,
Dummy> :
public boost::static_visitor<ReturnType>
231 InternalVisitorModel()
235 template<
typename Jo
intModelDerived>
241 template<
typename Jo
intDataDerived>