예제 #1
0
//--------------------------------------------------------------
void ofxClipper::ReversePolylines(ofxPolylines& polys) {
    ClipperLib::Polygons in;
    ofxPolylines_to_Polygons(polys,in);
    ClipperLib::ReversePoints(in);
    polys.clear();
    polygons_to_ofxPolylines(in,polys);
}
예제 #2
0
//--------------------------------------------------------------
void ofxClipper::ReversePath(ofPath& path, ofxPolylines &out_polys) {
    ClipperLib::Polygons in;
    ofPath_to_Polygons(path, in);
    ClipperLib::ReversePoints(in);
    out_polys.clear();
    polygons_to_ofxPolylines(in,out_polys);
}
예제 #3
0
//--------------------------------------------------------------
void ofxClipper::SimplifyPolylines(ofxPolylines &polys) {
    ClipperLib::Polygons in;
    ofxPolylines_to_Polygons(polys,in);
    ClipperLib::SimplifyPolygons(in);
    polys.clear();
    polygons_to_ofxPolylines(in,polys);
}
예제 #4
0
//--------------------------------------------------------------
void ofxClipper::SimplifyPath(ofPath &path, ofxPolylines &out_polys) {
    ClipperLib::Polygons in,out;
    ofPath_to_Polygons(path, in);
    ClipperLib::SimplifyPolygons(in,out);
    out_polys.clear();
    polygons_to_ofxPolylines(out,out_polys);
}
예제 #5
0
//--------------------------------------------------------------
void ofxClipper::SimplifyPolyline(ofPolyline &in_poly, 
                     ofxPolylines  &out_polys) {
    ClipperLib::Polygon in;
    ClipperLib::Polygons out;
    in = ofPolyline_to_Polygon(in_poly);
    ClipperLib::SimplifyPolygon(in,out);
    polygons_to_ofxPolylines(out,out_polys);
}
예제 #6
0
//--------------------------------------------------------------
void ofxClipper::SimplifyPolylines(ofxPolylines &in_polys, 
                      ofxPolylines &out_polys) {
    ClipperLib::Polygons in;
    ClipperLib::Polygons out;
    ofxPolylines_to_Polygons(in_polys,in);
    ClipperLib::SimplifyPolygons(in,out);
    polygons_to_ofxPolylines(out,out_polys);
}
예제 #7
0
//--------------------------------------------------------------
void ofxClipper::SimplifyPolylines(ofxPolylines &polys,
                                   ofPolyWindingMode windingMode) {
    ClipperLib::Polygons in;
    ofxPolylines_to_Polygons(polys,in);
    ClipperLib::SimplifyPolygons(in,convertWindingMode(windingMode));
    polys.clear();
    polygons_to_ofxPolylines(in,polys);
}
예제 #8
0
//--------------------------------------------------------------
void ofxClipper::SimplifyPath(ofPath &path,
                              ofxPolylines &out_polys,
                              ofPolyWindingMode windingMode) {
    ClipperLib::Polygons in,out;
    ofPath_to_Polygons(path, in);
    ClipperLib::SimplifyPolygons(in,out,convertWindingMode(windingMode));
    out_polys.clear();
    polygons_to_ofxPolylines(out,out_polys);
}
예제 #9
0
//--------------------------------------------------------------
void ofxClipper::SimplifyPolylines(ofxPolylines &in_polys, 
                      ofxPolylines &out_polys,
                      ofPolyWindingMode windingMode) {
    ClipperLib::Polygons in;
    ClipperLib::Polygons out;
    ofxPolylines_to_Polygons(in_polys,in);
    ClipperLib::SimplifyPolygons(in,out,convertWindingMode(windingMode));
    polygons_to_ofxPolylines(out,out_polys);
}
예제 #10
0
//--------------------------------------------------------------
void ofxClipper::SimplifyPolyline(ofPolyline &in_poly, 
                     ofxPolylines  &out_polys,
                     ofPolyWindingMode windingMode) {
    ClipperLib::Polygon in;
    ClipperLib::Polygons out;
    in = ofPolyline_to_Polygon(in_poly);
    ClipperLib::SimplifyPolygon(in,out, convertWindingMode(windingMode));
    polygons_to_ofxPolylines(out,out_polys);
}
예제 #11
0
//--------------------------------------------------------------
bool ofxClipper::clip(ofxClipperClipType clipType, 
                      ofxPolylines &solution,
                      ofPolyWindingMode subFillType,
                      ofPolyWindingMode clipFillType) {
    m_UseFullRange = true; // need this for our conversions
    ClipperLib::Polygons out;
    bool success = Execute((ClipperLib::ClipType)clipType,
                            out,
                            convertWindingType(subFillType),
                            convertWindingType(clipFillType));
    polygons_to_ofxPolylines(out,solution);
    return success;
}
예제 #12
0
//--------------------------------------------------------------
void ofxClipper::OffsetPolylines(ofxPolylines &in_polys, 
                    ofxPolylines &out_polys,
                    double offset, 
                    ofxClipperJoinType jointype, 
                    double MiterLimit) {
    
    offset = offset * clipperGlobalScale;
    MiterLimit = MiterLimit * clipperGlobalScale;
    
    ClipperLib::Polygons in, out;
    ofxPolylines_to_Polygons(in_polys,in);
    OffsetPolygons(in,out,offset,(ClipperLib::JoinType)jointype,MiterLimit);
    polygons_to_ofxPolylines(out,out_polys);
}