#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/CAD/SketchConstraints.hpp>
Classes | |
| struct | Con |
Public Member Functions | |
| int | add_point (double x, double y) |
| void | set_point (int id, double x, double y) |
| Vec2d | get_point (int id) const |
| int | point_count () const |
| void | fix_point (int id) |
| void | coincident (int a, int b) |
| void | horizontal (int a, int b) |
| void | vertical (int a, int b) |
| void | distance (int a, int b, double d) |
| void | lock_x (int id, double x) |
| void | lock_y (int id, double y) |
| void | equal_length (int a, int b, int c, int d) |
| void | parallel (int a, int b, int c, int d) |
| void | perpendicular (int a, int b, int c, int d) |
| void | midpoint (int m, int a, int b) |
| void | symmetric (int a, int b, int c, int d) |
| void | angle (int a, int b, int c, int d, double radians) |
| void | point_line_distance (int p, int a, int b, double dist) |
| bool | solve (int max_iter=200, double tol=1e-10) |
| double | residual_norm () const |
Private Types | |
| enum | ConType : int { FIX_POINT = 0 , COINCIDENT , HORIZONTAL , VERTICAL , DISTANCE , LOCK_X , LOCK_Y , EQUAL_LENGTH , PARALLEL , PERPENDICULAR , MIDPOINT , SYMMETRIC , ANGLE , PT_LINE_DIST } |
Private Member Functions | |
| Eigen::VectorXd | residuals (const std::vector< double > &v) const |
| Eigen::MatrixXd | jacobian (const std::vector< double > &v) const |
Private Attributes | |
| std::vector< double > | m_vars |
| std::vector< Con > | m_cons |
| struct Slic3r::SketchConstraints::Con |
|
private |
| Enumerator | |
|---|---|
| FIX_POINT | |
| COINCIDENT | |
| HORIZONTAL | |
| VERTICAL | |
| DISTANCE | |
| LOCK_X | |
| LOCK_Y | |
| EQUAL_LENGTH | |
| PARALLEL | |
| PERPENDICULAR | |
| MIDPOINT | |
| SYMMETRIC | |
| ANGLE | |
| PT_LINE_DIST | |
| int Slic3r::SketchConstraints::add_point | ( | double | x, |
| double | y ) |
References m_vars.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| void Slic3r::SketchConstraints::angle | ( | int | a, |
| int | b, | ||
| int | c, | ||
| int | d, | ||
| double | radians ) |
References Slic3r::SketchConstraints::Con::a, ANGLE, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, m_cons, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| void Slic3r::SketchConstraints::coincident | ( | int | a, |
| int | b ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, COINCIDENT, Slic3r::SketchConstraints::Con::d, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, m_cons, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| void Slic3r::SketchConstraints::distance | ( | int | a, |
| int | b, | ||
| double | d ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, DISTANCE, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, m_cons, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| void Slic3r::SketchConstraints::equal_length | ( | int | a, |
| int | b, | ||
| int | c, | ||
| int | d ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, EQUAL_LENGTH, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, m_cons, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| void Slic3r::SketchConstraints::fix_point | ( | int | id | ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, FIX_POINT, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, m_cons, m_vars, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| Vec2d Slic3r::SketchConstraints::get_point | ( | int | id | ) | const |
References m_vars.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| void Slic3r::SketchConstraints::horizontal | ( | int | a, |
| int | b ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, HORIZONTAL, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, m_cons, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
|
private |
References Slic3r::J, and residuals().
Referenced by solve().
| void Slic3r::SketchConstraints::lock_x | ( | int | id, |
| double | x ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, LOCK_X, m_cons, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| void Slic3r::SketchConstraints::lock_y | ( | int | id, |
| double | y ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, LOCK_Y, m_cons, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| void Slic3r::SketchConstraints::midpoint | ( | int | m, |
| int | a, | ||
| int | b ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, m_cons, MIDPOINT, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| void Slic3r::SketchConstraints::parallel | ( | int | a, |
| int | b, | ||
| int | c, | ||
| int | d ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, m_cons, PARALLEL, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| void Slic3r::SketchConstraints::perpendicular | ( | int | a, |
| int | b, | ||
| int | c, | ||
| int | d ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, m_cons, PERPENDICULAR, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| int Slic3r::SketchConstraints::point_count | ( | ) | const |
| void Slic3r::SketchConstraints::point_line_distance | ( | int | p, |
| int | a, | ||
| int | b, | ||
| double | dist ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, Slic3r::Geometry::dist(), Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, m_cons, PT_LINE_DIST, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| double Slic3r::SketchConstraints::residual_norm | ( | ) | const |
|
private |
References ANGLE, COINCIDENT, Slic3r::cross(), DISTANCE, Slic3r::dot(), EQUAL_LENGTH, FIX_POINT, HORIZONTAL, L, LOCK_X, LOCK_Y, m_cons, MIDPOINT, PARALLEL, PERPENDICULAR, PT_LINE_DIST, SYMMETRIC, VERTICAL, Slic3r::X, and Slic3r::Y.
Referenced by jacobian(), residual_norm(), and solve().
| void Slic3r::SketchConstraints::set_point | ( | int | id, |
| double | x, | ||
| double | y ) |
| bool Slic3r::SketchConstraints::solve | ( | int | max_iter = 200, |
| double | tol = 1e-10 ) |
References Slic3r::J, jacobian(), m_cons, m_vars, and residuals().
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| void Slic3r::SketchConstraints::symmetric | ( | int | a, |
| int | b, | ||
| int | c, | ||
| int | d ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, m_cons, SYMMETRIC, and Slic3r::SketchConstraints::Con::type.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
| void Slic3r::SketchConstraints::vertical | ( | int | a, |
| int | b ) |
References Slic3r::SketchConstraints::Con::a, Slic3r::SketchConstraints::Con::b, Slic3r::SketchConstraints::Con::c, Slic3r::SketchConstraints::Con::d, Slic3r::SketchConstraints::Con::k0, Slic3r::SketchConstraints::Con::k1, m_cons, Slic3r::SketchConstraints::Con::type, and VERTICAL.
Referenced by Slic3r::CadDocument::solve_sketch_feature().
|
private |
Referenced by angle(), coincident(), distance(), equal_length(), fix_point(), horizontal(), lock_x(), lock_y(), midpoint(), parallel(), perpendicular(), point_line_distance(), residuals(), solve(), symmetric(), and vertical().
|
private |
Referenced by add_point(), fix_point(), get_point(), point_count(), residual_norm(), set_point(), and solve().