2013-07-14 12:56:43 +00:00
|
|
|
#ifndef slic3r_SurfaceCollection_hpp_
|
|
|
|
#define slic3r_SurfaceCollection_hpp_
|
|
|
|
|
|
|
|
#include "Surface.hpp"
|
2013-11-22 23:07:04 +00:00
|
|
|
#include <vector>
|
2013-07-14 12:56:43 +00:00
|
|
|
|
|
|
|
namespace Slic3r {
|
|
|
|
|
2013-11-22 23:07:04 +00:00
|
|
|
struct t_surface_group_key {
|
|
|
|
SurfaceType surface_type;
|
|
|
|
double thickness;
|
|
|
|
unsigned short thickness_layers;
|
|
|
|
double bridge_angle;
|
|
|
|
|
|
|
|
bool operator< (const t_surface_group_key &key) const {
|
|
|
|
return (this->surface_type < key.surface_type)
|
|
|
|
|| (this->thickness < key.thickness)
|
|
|
|
|| (this->thickness_layers < key.thickness_layers)
|
|
|
|
|| (this->bridge_angle < key.bridge_angle);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2013-07-14 12:56:43 +00:00
|
|
|
class SurfaceCollection
|
|
|
|
{
|
|
|
|
public:
|
2013-08-08 00:10:34 +00:00
|
|
|
Surfaces surfaces;
|
2013-11-22 01:16:10 +00:00
|
|
|
void simplify(double tolerance);
|
2013-11-22 23:07:04 +00:00
|
|
|
void group(std::vector<Surfaces> &retval, bool merge_solid = false) const;
|
2013-07-14 12:56:43 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|