36 #define BOOST_PARAMETER_MAX_ARITY 7
46 normal_ = Eigen::Vector3f(coefficients[0], coefficients[1], coefficients[2]);
54 normal_ = Eigen::Vector3f(coefficients[0], coefficients[1], coefficients[2]);
61 normal_(normal.normalized()), d_(
d / normal.norm())
67 normal_(normal.normalized()), d_(- normal.
dot(
p) / normal.norm())
109 return normal_.dot(another_normal) > 0;
134 return fabs(fabs(
d_) - fabs(another.
d_));
143 else if (
dot < -1.0) {
146 double theta = acos(
dot);
147 if (theta > M_PI / 2.0) {
160 else if (
dot < -1.0) {
163 double theta = acos(
dot);
164 if (theta > M_PI / 2.0) {
182 Eigen::Vector3f output_f;
183 project(Eigen::Vector3f(
p[0],
p[1],
p[2]), output_f);
184 pointFromVectorToVector<Eigen::Vector3f, Eigen::Vector3d>(output_f, output);
189 project(Eigen::Vector3f(
p[0],
p[1],
p[2]), output);
194 Eigen::Vector3f output_f;
196 pointFromVectorToVector<Eigen::Vector3f, Eigen::Vector3d>(output_f, output);
201 Eigen::Affine3f pose_f, output_f;
209 Eigen::Vector3f
p(pose.translation());
210 Eigen::Vector3f output_p;
212 Eigen::Quaternionf rot;
213 rot.setFromTwoVectors(pose.rotation() * Eigen::Vector3f::UnitZ(),
214 coordinates().rotation() * Eigen::Vector3f::UnitZ());
215 output = Eigen::Affine3f::Identity() * Eigen::Translation3f(output_p) * rot;
220 Eigen::Affine3d transform_d;
233 Eigen::Vector4d n_d = m.transpose() * n;
235 Eigen::Vector4d n_dd = n_d / sqrt(n_d[0] * n_d[0] + n_d[1] * n_d[1] + n_d[2] * n_d[2]);
236 return Plane(Eigen::Vector3f(n_dd[0], n_dd[1], n_dd[2]), n_dd[3]);
241 std::vector<float> ret;
251 output.push_back(
d_);
266 Eigen::Quaternionf rot;
267 rot.setFromTwoVectors(Eigen::Vector3f::UnitZ(),
normal_);
279 = Eigen::Affine3f::Identity() * Eigen::Translation3f(0, 0, z) * rot;