#include "chop.h"#include "oldheap.h"#include "seam.h"#include "blobs.h"#include "chop.h"#include <math.h>#include "tessclas.h"#include "general.h"#include "tordvars.h"#include "callcpp.h"#include "oldlist.h"#include "split.h"#include "const.h"Defines | |
length_product | |
| #define | length_product(p1, p2) |
Functions | |
point_priority | |
| PRIORITY | point_priority (EDGEPT *point) |
add_point_to_list | |
| void | add_point_to_list (POINT_GROUP point_list, EDGEPT *point) |
angle_change | |
| int | angle_change (EDGEPT *point1, EDGEPT *point2, EDGEPT *point3) |
is_little_chunk | |
| int | is_little_chunk (EDGEPT *point1, EDGEPT *point2) |
is_small_area | |
| int | is_small_area (EDGEPT *point1, EDGEPT *point2) |
pick_close_point | |
| EDGEPT * | pick_close_point (EDGEPT *critical_point, EDGEPT *vertical_point, int *best_dist) |
prioritize_points | |
| void | prioritize_points (TESSLINE *outline, POINT_GROUP points) |
new_min_point | |
| void | new_min_point (EDGEPT *local_min, POINT_GROUP points) |
new_max_point | |
| void | new_max_point (EDGEPT *local_max, POINT_GROUP points) |
vertical_projection_point | |
For one point on the outline, find the corresponding point on the other side of the outline that is a likely projection for a split point. This is done by iterating through the edge points until the X value of the point being looked at is greater than the X value of the split point. Ensure that the point being returned is not right next to the split point. Return the edge point as a result. | |
| void | vertical_projection_point (EDGEPT *split_point, EDGEPT *target_point, EDGEPT **best_point) |
Variables | |
| int | chop_debug = 0 |
| bool | chop_enable = 1 |
| bool | chop_vertical_creep = 0 |
| int | chop_split_length = 10000 |
| int | chop_same_distance = 2 |
| int | chop_min_outline_points = 6 |
| int | chop_inside_angle = -50 |
| int | chop_min_outline_area = 2000 |
| double | chop_split_dist_knob = 0.5 |
| double | chop_overlap_knob = 0.9 |
| double | chop_center_knob = 0.15 |
| double | chop_sharpness_knob = 0.06 |
| double | chop_width_change_knob = 5.0 |
| double | chop_ok_split = 100.0 |
| double | chop_good_split = 50.0 |
| int | chop_x_y_weight = 3 |
| #define length_product | ( | p1, | |||
| p2 | ) |
(sqrt ((((float) (p1).x * (p1).x + (float) (p1).y * (p1).y) * \ ((float) (p2).x * (p2).x + (float) (p2).y * (p2).y))))
| void add_point_to_list | ( | POINT_GROUP | point_list, | |
| EDGEPT * | point | |||
| ) |
| void new_max_point | ( | EDGEPT * | local_max, | |
| POINT_GROUP | points | |||
| ) |
| void new_min_point | ( | EDGEPT * | local_min, | |
| POINT_GROUP | points | |||
| ) |
| void prioritize_points | ( | TESSLINE * | outline, | |
| POINT_GROUP | points | |||
| ) |
| void vertical_projection_point | ( | EDGEPT * | split_point, | |
| EDGEPT * | target_point, | |||
| EDGEPT ** | best_point | |||
| ) |
| double chop_center_knob = 0.15 |
"Split center adjustment"
| int chop_debug = 0 |
"Chop debug"
| bool chop_enable = 1 |
"Chop enable"
| double chop_good_split = 50.0 |
"Good split limit"
| int chop_inside_angle = -50 |
"Min Inside Angle Bend"
| int chop_min_outline_area = 2000 |
"Min Outline Area"
| int chop_min_outline_points = 6 |
"Min Number of Points on Outline"
| double chop_ok_split = 100.0 |
"OK split limit"
| double chop_overlap_knob = 0.9 |
"Split overlap adjustment"
| int chop_same_distance = 2 |
"Same distance"
| double chop_sharpness_knob = 0.06 |
"Split sharpness adjustment"
| double chop_split_dist_knob = 0.5 |
"Split length adjustment"
| int chop_split_length = 10000 |
"Split Length"
"Vertical creep"
| double chop_width_change_knob = 5.0 |
"Width change adjustment"
| int chop_x_y_weight = 3 |
"X / Y length weight"
1.6.3