#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/Circle.hpp>
Public Member Functions | |
| ArcSegment () | |
| ArcSegment (Point center, double radius, Point start, Point end, ArcDirection dir) | |
| bool | is_valid () const |
| bool | clip_start (const Point &point) |
| bool | clip_end (const Point &point) |
| bool | reverse () |
| bool | split_at (const Point &point, ArcSegment &p1, ArcSegment &p2) |
| bool | is_point_inside (const Point &point) const |
| Point | get_closest_point (const Point &input) |
| double | get_polar_radians (const Point &p1) const |
| bool | is_over_deviation (const Points &points, const double tolerance) |
| bool | get_deviation_sum_squared (const Points &points, const double tolerance, double &sum_deviation) |
Static Public Member Functions | |
| static bool | try_create_arc (const Points &points, ArcSegment &target_arc, double approximate_length, double max_radius=DEFAULT_SCALED_MAX_RADIUS, double tolerance=DEFAULT_SCALED_RESOLUTION, double path_tolerance_percent=DEFAULT_ARC_LENGTH_PERCENT_TOLERANCE) |
| static bool | try_create_arc (const Points3 &points, ArcSegment &target_arc, double approximate_length, double max_radius=DEFAULT_SCALED_MAX_RADIUS, double tolerance=DEFAULT_SCALED_RESOLUTION, double path_tolerance_percent=DEFAULT_ARC_LENGTH_PERCENT_TOLERANCE) |
| static bool | are_points_within_slice (const ArcSegment &test_arc, const Points &points) |
| static bool | are_points_within_slice (const ArcSegment &test_arc, const Points3 &points) |
| static bool | ray_intersects_segment (const Point &rayOrigin, const Vec2d &rayDirection, const Line &segment) |
| static float | calc_arc_radian (Vec3f start_pos, Vec3f end_pos, Vec3f center_pos, bool is_ccw) |
| static float | calc_arc_radius (Vec3f start_pos, Vec3f center_pos) |
| static float | calc_arc_length (Vec3f start_pos, Vec3f end_pos, Vec3f center_pos, bool is_ccw) |
| static bool | try_create_circle (const Point &p1, const Point &p2, const Point &p3, const double max_radius, Circle &new_circle) |
| static bool | try_create_circle (const Points &points, const double max_radius, const double tolerance, Circle &new_circle) |
| static bool | try_create_circle (const Points3 &points, const double max_radius, const double tolerance, Circle &new_circle) |
| static Vec3f | calc_tangential_vector (const Vec3f &pos, const Vec3f ¢er_pos, const bool is_ccw) |
| static bool | get_closest_perpendicular_point (const Point &p1, const Point &p2, const Point &c, Point &out) |
| static bool | is_equal (double x, double y, double tolerance=ZERO_TOLERANCE) |
| static bool | greater_than (double x, double y, double tolerance=ZERO_TOLERANCE) |
| static bool | greater_than_or_equal (double x, double y, double tolerance=ZERO_TOLERANCE) |
| static bool | less_than (double x, double y, double tolerance=ZERO_TOLERANCE) |
| static bool | less_than_or_equal (double x, double y, double tolerance=ZERO_TOLERANCE) |
Public Attributes | |
| bool | is_arc = false |
| double | length = 0 |
| double | angle_radians = 0 |
| double | polar_start_theta = 0 |
| double | polar_end_theta = 0 |
| Point | start_point { Point(0,0) } |
| Point | end_point { Point(0,0) } |
| ArcDirection | direction = ArcDirection::Arc_Dir_unknow |
| Point | center |
| double | radius |
Private Member Functions | |
| void | update_angle_and_length () |
Static Private Member Functions | |
| static bool | try_create_arc (const Circle &c, const Point &start_point, const Point &mid_point, const Point &end_point, ArcSegment &target_arc, double approximate_length, double path_tolerance_percent=DEFAULT_ARC_LENGTH_PERCENT_TOLERANCE) |
|
inline |
References Slic3r::Circle::Circle().
Referenced by are_points_within_slice(), are_points_within_slice(), split_at(), try_create_arc(), try_create_arc(), and try_create_arc().
|
inline |
References Slic3r::Circle::Circle(), Slic3r::Circle::center, direction, end_point, is_arc, Slic3r::Circle::radius, start_point, and update_angle_and_length().
|
static |
References ArcSegment(), Slic3r::Arc_Dir_CCW, Slic3r::Circle::center, direction, end_point, Slic3r::Circle::get_polar_radians(), polar_end_theta, polar_start_theta, Slic3r::Circle::radius, ray_intersects_segment(), and start_point.
Referenced by try_create_arc(), and try_create_arc().
|
static |
References ArcSegment(), Slic3r::Arc_Dir_CCW, Slic3r::Circle::center, direction, end_point, Slic3r::Circle::get_polar_radians(), polar_end_theta, polar_start_theta, Slic3r::Circle::radius, ray_intersects_segment(), and start_point.
|
static |
References calc_arc_radian(), calc_arc_radius(), and Slic3r::Geometry::is_ccw().
Referenced by Slic3r::CoolingBuffer::parse_layer_gcode().
|
static |
References Slic3r::cross(), Slic3r::dot(), Slic3r::Geometry::is_ccw(), and M_PI.
Referenced by calc_arc_length().
|
staticinherited |
References Slic3r::Geometry::is_ccw().
| bool Slic3r::ArcSegment::clip_end | ( | const Point & | point | ) |
References Slic3r::Circle::center, end_point, Slic3r::Circle::get_closest_point(), is_point_inside(), is_valid(), and update_angle_and_length().
| bool Slic3r::ArcSegment::clip_start | ( | const Point & | point | ) |
References Slic3r::Circle::center, Slic3r::Circle::get_closest_point(), is_point_inside(), is_valid(), start_point, and update_angle_and_length().
|
staticinherited |
References greater_than_or_equal(), and less_than_or_equal().
Referenced by get_deviation_sum_squared(), and is_over_deviation().
References Slic3r::cast(), center, and radius.
Referenced by Slic3r::ArcSegment::clip_end(), Slic3r::ArcSegment::clip_start(), and Slic3r::ArcSegment::split_at().
|
inherited |
References center, get_closest_perpendicular_point(), and radius.
Referenced by try_create_circle().
|
inherited |
Referenced by Slic3r::ArcSegment::are_points_within_slice(), Slic3r::ArcSegment::are_points_within_slice(), Slic3r::ArcSegment::is_point_inside(), Slic3r::ArcSegment::try_create_arc(), and Slic3r::ArcSegment::update_angle_and_length().
|
inlinestaticinherited |
References is_equal(), and Slic3r::ZERO_TOLERANCE.
|
inlinestaticinherited |
References is_equal(), and Slic3r::ZERO_TOLERANCE.
Referenced by get_closest_perpendicular_point().
|
inlinestaticinherited |
References Slic3r::ZERO_TOLERANCE.
Referenced by greater_than(), greater_than_or_equal(), less_than(), and less_than_or_equal().
|
inherited |
References center, get_closest_perpendicular_point(), and radius.
Referenced by try_create_circle().
| bool Slic3r::ArcSegment::is_point_inside | ( | const Point & | point | ) | const |
References angle_radians, Slic3r::Arc_Dir_CCW, Slic3r::Arc_Dir_CW, direction, Slic3r::Circle::get_polar_radians(), M_PI, and polar_start_theta.
Referenced by clip_end(), clip_start(), and split_at().
|
inline |
References is_arc.
Referenced by clip_end(), clip_start(), reverse(), and split_at().
|
inlinestaticinherited |
|
inlinestaticinherited |
References is_equal(), and Slic3r::ZERO_TOLERANCE.
Referenced by get_closest_perpendicular_point().
|
static |
References Slic3r::dot(), and SCALED_EPSILON.
Referenced by are_points_within_slice(), and are_points_within_slice().
| bool Slic3r::ArcSegment::reverse | ( | ) |
References angle_radians, Slic3r::Arc_Dir_CCW, Slic3r::Arc_Dir_CW, direction, end_point, is_valid(), polar_end_theta, polar_start_theta, and start_point.
| bool Slic3r::ArcSegment::split_at | ( | const Point & | point, |
| ArcSegment & | p1, | ||
| ArcSegment & | p2 ) |
References ArcSegment(), Slic3r::Circle::center, direction, end_point, Slic3r::Circle::get_closest_point(), is_point_inside(), is_valid(), Slic3r::Circle::radius, and start_point.
|
staticprivate |
References ArcSegment(), Slic3r::Circle::Circle(), angle_radians, Slic3r::Arc_Dir_CCW, Slic3r::Arc_Dir_CW, Slic3r::Arc_Dir_unknow, Slic3r::Circle::center, direction, end_point, EPSILON, Slic3r::Circle::get_polar_radians(), is_arc, length, PI, polar_end_theta, polar_start_theta, Slic3r::Circle::radius, and start_point.
|
static |
References ArcSegment(), Slic3r::Circle::Circle(), are_points_within_slice(), try_create_arc(), and Slic3r::Circle::try_create_circle().
Referenced by Slic3r::ArcFitter::do_arc_fitting(), try_create_arc(), and try_create_arc().
|
static |
References ArcSegment(), Slic3r::Circle::Circle(), are_points_within_slice(), try_create_arc(), and Slic3r::Circle::try_create_circle().
|
staticinherited |
References Circle(), center, Slic3r::Parallel_area_threshold, radius, scale_, and SCALED_EPSILON.
Referenced by Slic3r::ArcSegment::try_create_arc(), Slic3r::ArcSegment::try_create_arc(), try_create_circle(), and try_create_circle().
|
staticinherited |
References Circle(), count, get_deviation_sum_squared(), is_over_deviation(), and try_create_circle().
|
staticinherited |
References Circle(), Slic3r::to_points(), and try_create_circle().
|
private |
References angle_radians, Slic3r::Arc_Dir_CCW, Slic3r::Arc_Dir_CW, direction, end_point, Slic3r::Circle::get_polar_radians(), is_arc, length, M_PI, polar_end_theta, polar_start_theta, Slic3r::Circle::radius, and start_point.
Referenced by ArcSegment(), clip_end(), and clip_start().
| double Slic3r::ArcSegment::angle_radians = 0 |
Referenced by Slic3r::from_json(), is_point_inside(), reverse(), Slic3r::to_json(), try_create_arc(), and update_angle_and_length().
|
inherited |
Referenced by Slic3r::ArcSegment::ArcSegment(), Circle(), Circle(), Slic3r::GCode::_extrude(), Slic3r::ArcSegment::are_points_within_slice(), Slic3r::ArcSegment::are_points_within_slice(), Slic3r::ArcSegment::clip_end(), Slic3r::ArcSegment::clip_start(), Slic3r::from_json(), get_closest_point(), get_deviation_sum_squared(), get_polar_radians(), is_over_deviation(), Slic3r::ArcSegment::split_at(), Slic3r::to_json(), Slic3r::ArcSegment::try_create_arc(), and try_create_circle().
| ArcDirection Slic3r::ArcSegment::direction = ArcDirection::Arc_Dir_unknow |
| bool Slic3r::ArcSegment::is_arc = false |
Referenced by ArcSegment(), Slic3r::from_json(), is_valid(), Slic3r::to_json(), Slic3r::to_json(), try_create_arc(), and update_angle_and_length().
| double Slic3r::ArcSegment::length = 0 |
Referenced by Slic3r::from_json(), Slic3r::to_json(), try_create_arc(), and update_angle_and_length().
| double Slic3r::ArcSegment::polar_end_theta = 0 |
| double Slic3r::ArcSegment::polar_start_theta = 0 |
|
inherited |
Referenced by Slic3r::ArcSegment::ArcSegment(), Circle(), Circle(), Slic3r::ArcSegment::are_points_within_slice(), Slic3r::ArcSegment::are_points_within_slice(), Slic3r::from_json(), get_closest_point(), get_deviation_sum_squared(), is_over_deviation(), Slic3r::ArcSegment::split_at(), Slic3r::to_json(), Slic3r::ArcSegment::try_create_arc(), try_create_circle(), and Slic3r::ArcSegment::update_angle_and_length().
Referenced by ArcSegment(), Slic3r::GCode::_extrude(), are_points_within_slice(), are_points_within_slice(), clip_start(), Slic3r::from_json(), reverse(), split_at(), Slic3r::to_json(), try_create_arc(), and update_angle_and_length().