OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
SketchEngine.cpp File Reference
#include "libslic3r/CAD/SketchEngine.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/TriangleMesh.hpp"
#include "libslic3r/I18N.hpp"
#include <Standard_Handle.hxx>
#include <GeomAbs_SurfaceType.hxx>
#include <GeomAbs_JoinType.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <Standard_TypeDef.hxx>
#include <TopAbs_Orientation.hxx>
#include <Poly_Triangle.hxx>
#include <TopAbs_State.hxx>
#include <algorithm>
#include <cmath>
#include <cstddef>
#include <limits>
#include <BRepBuilderAPI_MakeWire.hxx>
#include <BRepBuilderAPI_MakeVertex.hxx>
#include <BRepBuilderAPI_MakeEdge.hxx>
#include <BRepBuilderAPI_MakeFace.hxx>
#include <BRepCheck_Analyzer.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <BRepGProp.hxx>
#include <GProp_GProps.hxx>
#include <BRepClass_FaceClassifier.hxx>
#include <TopoDS_Vertex.hxx>
#include <GC_MakeArcOfCircle.hxx>
#include <GC_MakeArcOfEllipse.hxx>
#include <Geom_TrimmedCurve.hxx>
#include <Geom_BSplineCurve.hxx>
#include <NCollection_Array1.hxx>
#include <gp_Circ.hxx>
#include <gp_Elips.hxx>
#include <gp_Ax2.hxx>
#include <gp_Pln.hxx>
#include <BRepPrimAPI_MakePrism.hxx>
#include <BRepOffsetAPI_MakeOffset.hxx>
#include <BRepOffsetAPI_ThruSections.hxx>
#include <BRepBuilderAPI_Transform.hxx>
#include <BRepPrimAPI_MakeRevol.hxx>
#include <BRepOffsetAPI_MakePipe.hxx>
#include <BRepAlgoAPI_Fuse.hxx>
#include <BRepAlgoAPI_Cut.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepMesh_IncrementalMesh.hxx>
#include <BRep_Tool.hxx>
#include <Poly_Triangulation.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Compound.hxx>
#include <BRep_Builder.hxx>
#include <ShapeFix_Face.hxx>
#include <GeomAbs_Shape.hxx>
#include <Standard_Failure.hxx>
#include <Precision.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Wire.hxx>
#include <GeomAPI_IntCS.hxx>
#include <map>
#include <atomic>
#include <math.h>
#include <tuple>
#include <stdexcept>
#include <vector>
#include <utility>

Go to the source code of this file.

Namespaces

namespace  Slic3r
 |/ Copyright (c) Prusa Research 2020 - 2023 Enrico Turri @enricoturri1966 |/ |/ PrusaSlicer is released under the terms of the AGPLv3 or higher |/
namespace  Slic3r::anonymous_namespace{SketchEngine.cpp}

Functions

double Slic3r::sketch_join_tol ()
void Slic3r::set_sketch_auto_close (bool on)
static TopoDS_Shape Slic3r::extrude_face_internal (const TopoDS_Face &face, const gp_Dir &dir, double length, bool symmetric)
std::vector< Vec2d > Slic3r::sketch_open_ends (const std::vector< SketchEntity > &entities, const SketchPlane &)
static TopoDS_Face Slic3r::checked_profile_face (const TopoDS_Face &f)
bool Slic3r::anonymous_namespace{SketchEngine.cpp}::off_same (const Vec2d &a, const Vec2d &b)
bool Slic3r::anonymous_namespace{SketchEngine.cpp}::off_is_open_curve (const SketchEntity &e)
bool Slic3r::anonymous_namespace{SketchEngine.cpp}::off_pick (const std::vector< Vec2d > &cands, const Vec2d &seed, Vec2d &out)
bool Slic3r::anonymous_namespace{SketchEngine.cpp}::off_line_line (const Vec2d &a0, const Vec2d &a1, const Vec2d &b0, const Vec2d &b1, const Vec2d &seed, Vec2d &out)
std::vector< Vec2d > Slic3r::anonymous_namespace{SketchEngine.cpp}::off_line_circle (const Vec2d &p0, const Vec2d &p1, const Vec2d &c, double r)
std::vector< Vec2d > Slic3r::anonymous_namespace{SketchEngine.cpp}::off_circle_circle (const Vec2d &c0, double r0, const Vec2d &c1, double r1)
void Slic3r::anonymous_namespace{SketchEngine.cpp}::off_set_end (SketchEntity &e, bool at_end, const Vec2d &q)
bool Slic3r::anonymous_namespace{SketchEngine.cpp}::off_one (const SketchEntity &e, double d, SketchEntity &out)
bool Slic3r::anonymous_namespace{SketchEngine.cpp}::off_join (SketchEntity &a, SketchEntity &b)
void Slic3r::anonymous_namespace{SketchEngine.cpp}::off_reverse (SketchEntity &e)
static std::vector< double > Slic3r::line_entity_hits (const Vec2d &a0, const Vec2d &adir, const SketchEntity &other)
static std::vector< double > Slic3r::circle_cross_angles (const Vec2d &C, double R, const SketchEntity &other)
static double Slic3r::wrap_2pi (double x)
static void Slic3r::sync_arc_ends (SketchEntity &e)
int Slic3r::sketch_entity_ends (const SketchEntity &e, std::pair< SketchPointRole, Vec2d > out[2])
bool Slic3r::anonymous_namespace{SketchEngine.cpp}::angle_on_arc (const SketchEntity &e, double ang, double tol)
void Slic3r::anonymous_namespace{SketchEngine.cpp}::entity_intersections (const SketchEntity &A, const SketchEntity &B, std::vector< Vec2d > &out)
bool Slic3r::sketch_loop_defect (const std::vector< SketchEntity > &ents, const std::vector< int > &order, Vec2d &at)
bool Slic3r::sketch_closest_ends (const SketchEntity &A, const SketchEntity &B, SketchPointRole &ra, SketchPointRole &rb, Vec2d &pa, Vec2d &pb)
ConstraintPlan Slic3r::plan_entity_constraint (const std::vector< SketchEntity > &ents, int e0, int e1, int e2, SketchConstraintType type)

Variables

static std::atomic< bool > Slic3r::s_auto_close {true}