2013-07-14 14:56:43 +02:00
|
|
|
#ifndef slic3r_SurfaceCollection_hpp_
|
|
|
|
|
#define slic3r_SurfaceCollection_hpp_
|
|
|
|
|
|
|
|
|
|
#include "Surface.hpp"
|
2013-11-23 00:07:04 +01:00
|
|
|
#include <vector>
|
2013-07-14 14:56:43 +02:00
|
|
|
|
|
|
|
|
namespace Slic3r {
|
|
|
|
|
|
2013-11-23 00:07:04 +01: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 14:56:43 +02:00
|
|
|
class SurfaceCollection
|
|
|
|
|
{
|
|
|
|
|
public:
|
2013-08-08 02:10:34 +02:00
|
|
|
Surfaces surfaces;
|
2013-11-22 02:16:10 +01:00
|
|
|
void simplify(double tolerance);
|
2013-11-23 18:15:59 +01:00
|
|
|
void group(std::vector<SurfacesPtr> &retval, bool merge_solid = false);
|
2013-07-14 14:56:43 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif
|