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 ");
71 const Variant& value = dataFields.begin()->second;
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))) <
88 Eigen::Matrix3f diffRot = typedValue->toEigen() * param->toEigen().transpose();
89 Eigen::AngleAxisf aa(diffRot);
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))) <
110 Eigen::Matrix3f diffRot = typedValue->toEigen() * param->toEigen().transpose();
111 Eigen::AngleAxisf aa(diffRot);
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))) <
128 Eigen::Matrix3f diffRot = typedValue->toEigen().block<3, 3>(0, 0) *
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;