Revert "+"

This reverts commit af8f2e0ee8.
This commit is contained in:
Dane Springmeyer 2013-03-07 10:19:29 -08:00
parent 21ce1b8b2a
commit cecba84877

View file

@ -28,24 +28,24 @@ enum clipper_PolyFillType {clipper_even_odd, clipper_non_zero, clipper_positive,
template<class VSA, class VSB> class conv_clipper template<class VSA, class VSB> class conv_clipper
{ {
enum status { status_move_to, status_line_to, status_close_path, status_stop }; enum status { status_move_to, status_line_to, status_stop };
typedef VSA source_a_type; typedef VSA source_a_type;
typedef VSB source_b_type; typedef VSB source_b_type;
typedef conv_clipper<source_a_type, source_b_type> self_type; typedef conv_clipper<source_a_type, source_b_type> self_type;
private: private:
source_a_type* m_src_a; source_a_type* m_src_a;
source_b_type* m_src_b; source_b_type* m_src_b;
status m_status; status m_status;
int m_vertex; int m_vertex;
int m_contour; int m_contour;
int m_scaling_factor; int m_scaling_factor;
clipper_op_e m_operation; clipper_op_e m_operation;
pod_bvector<ClipperLib::IntPoint, 8> m_vertex_accumulator; pod_bvector<ClipperLib::IntPoint, 8> m_vertex_accumulator;
ClipperLib::Polygons m_poly_a; ClipperLib::Polygons m_poly_a;
ClipperLib::Polygons m_poly_b; ClipperLib::Polygons m_poly_b;
ClipperLib::Polygons m_result; ClipperLib::Polygons m_result;
ClipperLib::Clipper m_clipper; ClipperLib::Clipper m_clipper;
clipper_PolyFillType m_subjFillType; clipper_PolyFillType m_subjFillType;
clipper_PolyFillType m_clipFillType; clipper_PolyFillType m_clipFillType;
double start_x_; double start_x_;
@ -288,7 +288,7 @@ unsigned conv_clipper<VSA, VSB>::vertex(double *x, double *y)
{ {
if( next_vertex( x, y ) ) if( next_vertex( x, y ) )
{ {
m_status = status_line_to; m_status =status_line_to;
start_x_ = *x; start_x_ = *x;
start_y_ = *y; start_y_ = *y;
return path_cmd_move_to; return path_cmd_move_to;
@ -297,36 +297,25 @@ unsigned conv_clipper<VSA, VSB>::vertex(double *x, double *y)
{ {
*x = start_x_; *x = start_x_;
*y = start_y_; *y = start_y_;
m_status = status_close_path; m_status = status_stop;
return path_cmd_line_to; return path_cmd_end_poly | path_flags_close;
} }
} }
else else
return path_cmd_stop; return path_cmd_stop;
} }
else if ( m_status == status_close_path)
{
*x = 0;
*y = 0;
m_status = status_move_to;
return path_cmd_end_poly | path_flags_close;
}
else if (m_status == status_stop)
{
return path_cmd_stop;
}
else else
{ {
if( next_vertex( x, y ) ) if( next_vertex( x, y ) )
{ {
return path_cmd_line_to; return path_cmd_line_to;
} }
else else
{ {
m_status = status_move_to;
*x = start_x_; *x = start_x_;
*y = start_y_; *y = start_y_;
m_status = status_close_path; return path_cmd_end_poly | path_flags_close;
return path_cmd_line_to;//path_cmd_end_poly | path_flags_close;
} }
} }
} }