38 setNumberParameters(3);
52 createParameterTypeList(
65 if (dataFields.size() != 1)
67 printf(
"Size of dataFields: %d\n", (
int)dataFields.size());
68 throw InvalidConditionException(
"Wrong number of datafields for condition equals ");
78 return (
sqrt(((typedValue->x - param->x) * (typedValue->x - param->x)) +
79 ((typedValue->y - param->y) * (typedValue->y - param->y)) +
80 ((typedValue->z - param->x) * (typedValue->x - param->z))) <
81 getParameter(1).getFloat());
88 Eigen::Matrix3f diffRot = typedValue->toEigen() * param->toEigen().transpose();
89 Eigen::AngleAxisf aa(diffRot);
90 return fabs(aa.angle()) < getParameter(1).getFloat();
98 return param->
getFrame() == typedValue->getFrame() &&
99 (
sqrt(((typedValue->x - param->x) * (typedValue->x - param->x)) +
100 ((typedValue->y - param->y) * (typedValue->y - param->y)) +
101 ((typedValue->z - param->x) * (typedValue->x - param->z))) <
102 getParameter(1).getFloat());
110 Eigen::Matrix3f diffRot = typedValue->toEigen() * param->toEigen().transpose();
111 Eigen::AngleAxisf aa(diffRot);
112 return fabs(aa.angle()) < getParameter(1).getFloat();
120 bool positionOk = (
sqrt(((typedValue->position->x - param->position->x) *
121 (typedValue->position->x - param->position->x)) +
122 ((typedValue->position->y - param->position->y) *
123 (typedValue->position->y - param->position->y)) +
124 ((typedValue->position->z - param->position->x) *
125 (typedValue->position->x - param->position->z))) <
126 getParameter(1).getFloat());
129 param->toEigen().block<3, 3>(0, 0).
transpose();
130 Eigen::AngleAxisf aa(diffRot);
131 bool orientationOk = fabs(aa.angle()) < getParameter(2).getFloat();
132 return positionOk && orientationOk;