mirror of
https://github.com/FULU-Foundation/OrcaSlicer-bambulab.git
synced 2026-06-25 03:56:42 +03:00
86 lines
1.8 KiB
C++
86 lines
1.8 KiB
C++
#include "BoundingBox.hpp"
|
|
#include "Surface.hpp"
|
|
|
|
namespace Slic3r {
|
|
|
|
Surface::operator Polygons() const
|
|
{
|
|
return this->expolygon;
|
|
}
|
|
|
|
double
|
|
Surface::area() const
|
|
{
|
|
return this->expolygon.area();
|
|
}
|
|
|
|
bool
|
|
Surface::is_solid() const
|
|
{
|
|
return this->surface_type == stTop
|
|
|| this->surface_type == stBottom
|
|
|| this->surface_type == stBottomBridge
|
|
|| this->surface_type == stInternalSolid
|
|
|| this->surface_type == stInternalBridge;
|
|
}
|
|
|
|
bool
|
|
Surface::is_external() const
|
|
{
|
|
return this->surface_type == stTop
|
|
|| this->surface_type == stBottom
|
|
|| this->surface_type == stBottomBridge;
|
|
}
|
|
|
|
bool
|
|
Surface::is_internal() const
|
|
{
|
|
return this->surface_type == stInternal
|
|
|| this->surface_type == stInternalBridge
|
|
|| this->surface_type == stInternalSolid
|
|
|| this->surface_type == stInternalVoid;
|
|
}
|
|
|
|
bool
|
|
Surface::is_bottom() const
|
|
{
|
|
return this->surface_type == stBottom
|
|
|| this->surface_type == stBottomBridge;
|
|
}
|
|
|
|
bool
|
|
Surface::is_bridge() const
|
|
{
|
|
return this->surface_type == stBottomBridge
|
|
|| this->surface_type == stInternalBridge;
|
|
}
|
|
|
|
BoundingBox get_extents(const Surface &surface)
|
|
{
|
|
return get_extents(surface.expolygon.contour);
|
|
}
|
|
|
|
BoundingBox get_extents(const Surfaces &surfaces)
|
|
{
|
|
BoundingBox bbox;
|
|
if (! surfaces.empty()) {
|
|
bbox = get_extents(surfaces.front());
|
|
for (size_t i = 1; i < surfaces.size(); ++ i)
|
|
bbox.merge(get_extents(surfaces[i]));
|
|
}
|
|
return bbox;
|
|
}
|
|
|
|
BoundingBox get_extents(const SurfacesPtr &surfaces)
|
|
{
|
|
BoundingBox bbox;
|
|
if (! surfaces.empty()) {
|
|
bbox = get_extents(*surfaces.front());
|
|
for (size_t i = 1; i < surfaces.size(); ++ i)
|
|
bbox.merge(get_extents(*surfaces[i]));
|
|
}
|
|
return bbox;
|
|
}
|
|
|
|
}
|