141 {
142 if (polygon.points.size() < 3)
143 return;
145 for (const Point &point : polygon.points) {
147 const double a =
cross2(p1, p2);
149 first += a / 6. * (p1 + p2);
151 Vec3d(p1.x() * p1.x() + p1.x() * p2.x() + p2.x() * p2.x(), p1.y() * p1.y() + p1.y() * p2.y() + p2.y() * p2.y(),
152 p1.x() * p1.y() + p2.x() * p2.y() + 0.5 * (p1.x() * p2.y() + p2.x() * p1.y()));
153 p1 = p2;
154 }
155 }
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vec3d
Definition Point.hpp:68
int32_t cross2(const Eigen::MatrixBase< Eigen::Matrix< int32_t, 2, 1, Options > > &v1, const Eigen::MatrixBase< Eigen::Matrix< int32_t, 2, 1, Options > > &v2)=delete
constexpr Eigen::Matrix< Tout, 2, EigenArgs... > unscaled(const Slic3r::Point &v) noexcept
Definition Arrange.cpp:81
Eigen::Matrix< double, 2, 1, Eigen::DontAlign > Vec2d
Definition Point.hpp:67
Vec2d first
Definition ConnectedBodies.cpp:136
Vec3d second
Definition ConnectedBodies.cpp:138
double area
Definition ConnectedBodies.cpp:135