![]() |
Prusa Slicer 2.6.0
|
Classes | |
| struct | ClosePoint |
| struct | IntersectingElement |
| IntersectingElement. More... | |
| struct | IntersectionSources |
| Corefine visitor Store intersection source for vertices of constrained edge of tm1 Must be used with corefine flag no modification of tm2. More... | |
| class | JobException |
| struct | Limit |
| struct | Limits |
| struct | MinMax |
| class | ModelCut2index |
| Keep conversion from VCutAOIs to Index and vice versa Model_index .. contour(or hole) poin from ExPolygons Index .. continous number. More... | |
| struct | ModelCutId |
| struct | ProjectionDistance |
| To select surface near projection distance. More... | |
| struct | SearchData |
| struct | Source |
| struct | SpikeDesc |
| struct | SurfacePatch |
| struct | SurfacePatchEx |
| struct | Visitor |
| Track source of intersection Help for anotate inner and outer faces. More... | |
Typedefs | |
| using | Project = Emboss::IProjection |
| using | Project3d = Emboss::IProject3d |
| using | EpicKernel = CGAL::Exact_predicates_inexact_constructions_kernel |
| using | CutMesh = CGAL::Surface_mesh< EpicKernel::Point_3 > |
| using | CutMeshes = std::vector< CutMesh > |
| using | VI = CGAL::SM_Vertex_index |
| using | HI = CGAL::SM_Halfedge_index |
| using | EI = CGAL::SM_Edge_index |
| using | FI = CGAL::SM_Face_index |
| using | P3 = CGAL::Epick::Point_3 |
| using | EdgeShapeMap = CutMesh::Property_map< EI, IntersectingElement > |
| using | FaceShapeMap = CutMesh::Property_map< FI, IntersectingElement > |
| using | VertexShapeMap = CutMesh::Property_map< VI, const IntersectingElement * > |
| using | FaceTypeMap = CutMesh::Property_map< FI, FaceType > |
| using | CvtVI2VI = CutMesh::Property_map< VI, VI > |
| using | ReductionMap = CvtVI2VI |
| using | EdgeBoolMap = CutMesh::Property_map< EI, bool > |
| using | CutAOI = std::pair< std::vector< FI >, std::vector< HI > > |
| using | CutAOIs = std::vector< CutAOI > |
| using | VCutAOIs = std::vector< CutAOIs > |
| using | Loop = std::vector< VI > |
| using | Loops = std::vector< Loop > |
| using | SurfacePatches = std::vector< SurfacePatch > |
| using | ProjectionDistances = std::vector< ProjectionDistance > |
| using | VDistances = std::vector< ProjectionDistances > |
| using | PointNormal = std::pair< Vec3d, Vec3d > |
| using | PointNormals = std::array< PointNormal, 4 > |
| using | IsOnSides = std::vector< std::array< bool, 4 > > |
| using | Sources = std::vector< Source > |
| using | VertexSourceMap = CutMesh::Property_map< VI, Source > |
| using | SurfacePatchesEx = std::vector< SurfacePatchEx > |
| using | BBS = std::vector< BoundingBoxf3 > |
| using | Primitive = CGAL::AABB_face_graph_triangle_primitive< CutMesh > |
| using | Traits = CGAL::AABB_traits< EpicKernel, Primitive > |
| using | Ray = EpicKernel::Ray_3 |
| using | Tree = CGAL::AABB_tree< Traits > |
| using | Trees = std::vector< Tree > |
| using | PatchNumber = CutMesh::Property_map< FI, size_t > |
| using | Polygon = Slic3r::Polygon |
Enumerations | |
| enum class | FaceType { inside , outside , not_constrained , inside_processed } |
| Flag for faces in CGAL mesh. More... | |
| enum class | IconType : unsigned { rename = 0 , erase , add , save , undo , italic , unitalic , bold , unbold , system_selector , open_file , exclamation , lock , lock_bold , unlock , unlock_bold , _count } |
| enum class | IconState : unsigned { activable = 0 , hovered , disabled } |
Functions | |
| void | set_skip_for_out_of_aoi (std::vector< bool > &skip_indicies, const indexed_triangle_set &its, const Project &projection, const BoundingBox &shapes_bb) |
| Set true for indices out of area of interest. | |
| void | set_skip_by_angle (std::vector< bool > &skip_indicies, const indexed_triangle_set &its, const Project3d &projection, double max_angle=89.) |
| Set true for indicies outward and almost parallel together. Note: internally calculate normals. | |
| Vec3d | to_vec3d (const P3 &p) |
| CutMesh | to_cgal (const indexed_triangle_set &its, const std::vector< bool > &skip_indicies, bool flip=false) |
| Convert triangle mesh model to CGAL Surface_mesh Filtrate out opposite triangles Add property map for source face index. | |
| CutMesh | to_cgal (const ExPolygons &shapes, const Project &projection) |
| Covert 2d shape (e.g. Glyph) to CGAL model NOTE: internaly create edge_shape_map .. Property map to store conversion from edge to contour face_shape_map .. Property map to store conversion from face to contour. | |
| bool | exist_duplicit_vertex (const CutMesh &mesh) |
| void | create_reduce_map (ReductionMap &reduction_map, const CutMesh &meshes) |
| Create map to reduce unnecesary triangles, Triangles are made by divided quad to two triangles on side of cutting shape mesh Note: also use from mesh (have to be created) face_type_map .. Type of shape inside / outside vert_shape_map .. Source of outline vertex. | |
| CutAOIs | cut_from_model (CutMesh &cgal_model, const ExPolygons &shapes, CutMesh &cgal_shape, float projection_ratio, const ExPolygonsIndices &s2i) |
| Create AOIs(area of interest) on model surface. | |
| Loops | create_loops (const std::vector< HI > &outlines, const CutMesh &mesh) |
| Create closed loops of contour vertices created from open half edges. | |
| SurfacePatches | diff_models (VCutAOIs &cuts, CutMeshes &cut_models, CutMeshes &models, const Project3d &projection) |
| Differenciate other models. | |
| bool | is_over_whole_expoly (const CutAOI &cutAOI, const ExPolygon &shape, const CutMesh &mesh) |
| Checking whether patch is uninterrupted cover of whole expolygon it belongs. | |
| bool | is_over_whole_expoly (const SurfacePatch &patch, const ExPolygons &shapes, const VCutAOIs &cutAOIs, const CutMeshes &meshes) |
| Checking whether patch is uninterrupted cover of whole expolygon it belongs. | |
| Polygons | unproject_loops (const SurfacePatch &patch, const Project &projection, Vec2d &depth_range) |
| Unptoject points from outline loops of patch. | |
| ExPolygon | to_expoly (const SurfacePatch &patch, const Project &projection, Vec2d &depth_range) |
| Unproject points from loops and create expolygons. | |
| VDistances | calc_distances (const SurfacePatches &patches, const CutMeshes &models, const CutMesh &shapes_mesh, size_t count_shapes_points, float projection_ratio) |
| Calculate distances for SurfacePatches outline points NOTE: each model has to have "vert_shape_map" .. Know source of new vertices. | |
| ProjectionDistances | choose_best_distance (const VDistances &distances, const ExPolygons &shapes, const Point &start, const ExPolygonsIndices &s2i, const SurfacePatches &patches) |
| Select distances in similar depth between expolygons. | |
| std::vector< bool > | select_patches (const ProjectionDistances &best_distances, const SurfacePatches &patches, const ExPolygons &shapes, const ExPolygonsIndices &s2i, const VCutAOIs &cutAOIs, const CutMeshes &meshes, const Project &projection) |
| Create mask for patches. | |
| void | append (SurfaceCut &sc, SurfaceCut &&sc_add) |
| Merge two surface cuts together Added surface cut will be consumed. | |
| SurfaceCut | patch2cut (SurfacePatch &patch) |
| Convert patch to indexed_triangle_set. | |
| SurfaceCut | merge_patches (SurfacePatches &patches, const std::vector< bool > &mask) |
| Merge masked patches to one surface cut. | |
| bool | is_out_of (const Vec3d &v, const PointNormal &point_normal) |
| Check. | |
| bool | is_all_on_one_side (const Vec3i &t, const IsOnSides &is_on_sides) |
| Check if triangle t has all vertices out of any plane. | |
| bool | is_face_inside (HI hi, const CutMesh &mesh, const CutMesh &shape_mesh, const VertexShapeMap &vertex_shape_map, const ExPolygonsIndices &shape2index) |
| Distiquish face type for half edge. | |
| void | set_face_type (FaceTypeMap &face_type_map, const CutMesh &mesh, const VertexShapeMap &vertex_shape_map, const EdgeBoolMap &ecm, const CutMesh &shape_mesh, const ExPolygonsIndices &shape2index) |
| Face with constrained edge are inside/outside by type of intersection Other set to not_constrained(still it could be inside/outside) | |
| void | flood_fill_inner (const CutMesh &mesh, FaceTypeMap &face_type_map) |
| Change FaceType from not_constrained to inside For neighbor(or neighbor of neighbor of ...) of inside triangles. Process only not_constrained triangles. | |
| void | collect_surface_data (std::queue< FI > &process, std::vector< FI > &faces, std::vector< HI > &outlines, FaceTypeMap &face_type_map, const CutMesh &mesh) |
| Collect connected inside faces Collect outline half edges. | |
| CutAOIs | create_cut_area_of_interests (const CutMesh &mesh, const ExPolygons &shapes, FaceTypeMap &face_type_map) |
| Create areas from mesh surface. | |
| float | calc_distance (const P3 &p, uint32_t pi, const CutMesh &shapes_mesh, float projection_ratio) |
| Calculate projection distance of point [in mm]. | |
| float | calc_size_sq (const Point &p) |
| SearchData | create_search_data (const ExPolygons &shapes, const std::vector< bool > &mask) |
| uint32_t | get_closest_point_index (const SearchData &sd, size_t line_idx, const Vec2d &hit_point, const ExPolygons &shapes, const ExPolygonsIndices &s2i) |
| uint32_t | find_closest_point_index (const Point &p, const ExPolygons &shapes, const ExPolygonsIndices &s2i, const std::vector< bool > &mask) |
| std::pair< uint32_t, uint32_t > | find_closest_point_pair (const ExPolygons &shapes, const std::vector< bool > &done_shapes, const ExPolygonsIndices &s2i, const std::vector< bool > &mask) |
| const ProjectionDistance * | get_closest_projection (const ProjectionDistances &distance, float wanted_distance) |
| void | fill_polygon_distances (const ProjectionDistance &pd, uint32_t index, const ExPolygonsIndex &id, ProjectionDistances &result, const ExPolygon &shape, const VDistances &distances) |
| void | fill_shape_distances (uint32_t start_index, const ProjectionDistance *start_pd, ProjectionDistances &result, const ExPolygonsIndices &s2i, const ExPolygon &shape, const VDistances &distances) |
| ClosePoint | find_close_point (const Point &p, ProjectionDistances &result, std::vector< bool > &finished_shapes, const ExPolygonsIndices &s2i, const ExPolygons &shapes) |
| const VI | default_vi (std::numeric_limits< uint32_t >::max()) |
| void | create_face_types (FaceTypeMap &map, const CutMesh &tm1, const CutMesh &tm2, const EdgeBoolMap &ecm, const VertexSourceMap &sources) |
| Create map1 and map2. | |
| bool | clip_cut (SurfacePatch &cut, CutMesh clipper) |
| Implement 'cut' Minus 'clipper', where clipper is reverse input Volume NOTE: clipper will be modified (corefined by cut) !!! | |
| BoundingBoxf3 | bounding_box (const CutAOI &cut, const CutMesh &mesh) |
| BoundingBoxf3 | bounding_box (const CutMesh &mesh) |
| BoundingBoxf3 | bounding_box (const SurfacePatch &ecut) |
| SurfacePatch | create_surface_patch (const std::vector< FI > &fis, CutMesh &mesh, const ReductionMap *rmap=nullptr) |
| Create patch. | |
| BBS | create_bbs (const VCutAOIs &cuts, const CutMeshes &cut_models) |
| Create bounding boxes for AOI. | |
| Trees | create_trees (const CutMeshes &models) |
| Create AABB trees for check when patch is whole inside of model. | |
| bool | has_bb_intersection (const BoundingBoxf3 &bb, size_t model_index, const BBS &bbs, const ModelCut2index &m2i) |
| Check whether bounding box has intersection with model. | |
| bool | is_patch_inside_of_model (const SurfacePatch &patch, const Tree &tree, const Project3d &projection) |
| Only for model without intersection Use ray (in projection direction) from a point from patch and count intersections: pair .. outside | odd .. inside. | |
| uint32_t | get_shape_point_index (const CutAOI &cut, const CutMesh &model) |
| Return some shape point index which identify shape NOTE: Used to find expolygon index. | |
| SurfacePatch | separate_patch (const std::vector< FI > &fis, SurfacePatch &patch, const CvtVI2VI &cvt_from) |
| Separate triangles singned with number n. | |
| void | divide_patch (size_t i, SurfacePatchesEx &patches) |
| Separate connected triangles into it's own patches new patches are added to back of input patches. | |
| void | collect_open_edges (SurfacePatches &patches) |
| Fill outline in patches by open edges. | |
| bool | is_valid (const FontFile &font, unsigned int index) |
| fontinfo_opt | load_font_info (const unsigned char *data, unsigned int index=0) |
| std::optional< Glyph > | get_glyph (const stbtt_fontinfo &font_info, int unicode_letter, float flatness) |
| const Glyph * | get_glyph (int unicode, const FontFile &font, const FontProp &font_prop, Glyphs &cache, fontinfo_opt &font_info_opt) |
| EmbossStyle | create_style (std::wstring name, std::wstring path) |
| Point | to_point (const stbtt__point &point) |
| void | remove_bad (Polygons &polygons) |
| void | remove_bad (ExPolygons &expolygons) |
| bool | remove_same_neighbor (Polygon &points) |
| bool | remove_same_neighbor (Polygons &polygons) |
| bool | remove_same_neighbor (ExPolygons &expolygons) |
| bool | remove_self_intersections (ExPolygons &shape, unsigned max_iteration=10) |
| ExPolygon | create_bounding_rect (const ExPolygons &shape) |
| void | remove_small_islands (ExPolygons &shape, double minimal_area) |
| Points | collect_close_points (const ExPolygons &expolygons, double distance=.6) |
| bool | heal_dupl_inter (ExPolygons &shape, unsigned max_iteration) |
| void | visualize_heal (const std::string &svg_filepath, const ExPolygons &expolygons) |
| const Points | pts_2x2 ({Point(0, 0), Point(1, 0), Point(1, 1), Point(0, 1)}) |
| const Points | pts_3x3 ({Point(-1, -1), Point(1, -1), Point(1, 1), Point(-1, 1)}) |
| bool | remove_when_spike (Polygon &polygon, size_t index, const SpikeDesc &spike_desc) |
| void | remove_spikes_in_duplicates (ExPolygons &expolygons, const Points &duplicates) |
| void | add_quad (uint32_t i1, uint32_t i2, indexed_triangle_set &result, uint32_t count_point) |
| indexed_triangle_set | polygons2model_unique (const ExPolygons &shape2d, const IProjection &projection, const Points &points) |
| indexed_triangle_set | polygons2model_duplicit (const ExPolygons &shape2d, const IProjection &projection, const Points &points, const Points &duplicits) |
| Slic3r::Pointfs | compute_intersections (const Slic3r::Lines &lines) |
| void | insert_edges (Triangulation::HalfEdges &edges, uint32_t &offset, const Polygon &polygon, const Triangulation::Changes &changes) |
| void | insert_edges (Triangulation::HalfEdges &edges, uint32_t &offset, const Polygon &polygon) |
| bool | has_bidirectional_constrained (const Triangulation::HalfEdges &constrained) |
| bool | is_unique (const Points &points) |
| bool | has_self_intersection (const Points &points, const Triangulation::HalfEdges &constrained_half_edges) |
| template<typename T > | |
| void | to_range_pi_pi (T &angle) |
| static DataBase | create_emboss_data_base (const std::string &text, StyleManager &style_manager, std::shared_ptr< std::atomic< bool > > &cancel) |
| Prepare data for emboss. | |
| static void | start_create_volume_job (const ModelObject *object, const Transform3d volume_trmat, DataBase &emboss_data, ModelVolumeType volume_type) |
| Start job for add new volume to object with given transformation. | |
| static bool | start_create_volume_on_surface_job (DataBase &emboss_data, ModelVolumeType volume_type, const Vec2d &screen_coor, const GLVolume *gl_volume, RaycastManager &raycaster, GLCanvas3D &canvas) |
| Start job for add new volume on surface of object defined by screen coor. | |
| static void | find_closest_volume (const Selection &selection, const Vec2d &screen_center, const Camera &camera, const ModelObjectPtrs &objects, Vec2d *closest_center, const GLVolume **closest_volume) |
| Find volume in selected object with closest convex hull to screen center. Return. | |
| static void | start_create_object_job (DataBase &emboss_data, const Vec2d &coor) |
| Start job for add object with text into scene. | |
| const IconManager::Icon & | get_icon (const IconManager::VIcons &icons, IconType type, IconState state) |
| static bool | draw_button (const IconManager::VIcons &icons, IconType type, bool disable=false) |
| static bool | apply_camera_dir (const Camera &camera, GLCanvas3D &canvas) |
| Apply camera direction for emboss direction. | |
| static ImVec2 | calc_fine_position (const Selection &selection, const ImVec2 &windows_size, const Size &canvas_size) |
| Move window for edit emboss text near to embossed object NOTE: embossed object must be selected. | |
| static void | change_window_position (std::optional< ImVec2 > &output_window_offset, bool try_to_fix) |
| Change position of emboss window. | |
| static bool | is_text_empty (const std::string &text) |
| static void | clear (IconManager::Icons &icons) |
| static const std::vector< std::pair< int, bool > > & | get_states (IconManager::RasterType type) |
| static void | draw_transparent_icon (const IconManager::Icon &icon) |
| bool | check (const DataBase &input, bool check_fontfile=true, bool use_surface=false) |
| Assert check of inputs data. | |
| bool | check (const DataCreateVolume &input, bool is_main_thread=false) |
| bool | check (const DataCreateObject &input) |
| bool | check (const DataUpdate &input, bool is_main_thread=false, bool use_surface=false) |
| bool | check (const CreateSurfaceVolumeData &input, bool is_main_thread=false) |
| bool | check (const UpdateSurfaceVolumeData &input, bool is_main_thread=false) |
| template<typename Fnc > | |
| static ExPolygons | create_shape (DataBase &input, Fnc was_canceled) |
| template<typename Fnc > | |
| static TriangleMesh | try_create_mesh (DataBase &input, Fnc was_canceled) |
| Try to create mesh from text. | |
| template<typename Fnc > | |
| static TriangleMesh | create_mesh (DataBase &input, Fnc was_canceled, Job::Ctl &ctl) |
| static TriangleMesh | create_default_mesh () |
| Create default mesh for embossed text. | |
| static void | update_volume (TriangleMesh &&mesh, const DataUpdate &data, Transform3d *tr=nullptr) |
| Must be called on main thread. | |
| static void | create_volume (TriangleMesh &&mesh, const ObjectID &object_id, const ModelVolumeType type, const Transform3d trmat, const DataBase &data) |
| Add new volume to object. | |
| static ModelVolume * | get_volume (ModelObjectPtrs &objects, const ObjectID &volume_id) |
| Select Volume from objects. | |
| static OrthoProject | create_projection_for_cut (Transform3d tr, double shape_scale, const std::pair< float, float > &z_range) |
| Create projection for cut surface from mesh. | |
| static OrthoProject3d | create_emboss_projection (bool is_outside, float emboss, Transform3d tr, SurfaceCut &cut) |
| Create tranformation for emboss Cutted surface. | |
| static TriangleMesh | cut_surface (DataBase &input1, const SurfaceVolumeData &input2, std::function< bool()> was_canceled) |
| Cut surface into triangle mesh. | |
| static void | create_message (const std::string &message) |
| static bool | process (std::exception_ptr &eptr) |
| static bool | finalize (bool canceled, std::exception_ptr &eptr, const DataBase &input) |
Variables | |
| const std::string | edge_shape_map_name = "e:IntersectingElement" |
| const std::string | face_shape_map_name = "f:IntersectingElement" |
| const std::string | vert_shape_map_name = "v:IntersectingElement" |
| const std::string | face_type_map_name = "f:side" |
| const std::string | patch_source_name = "v:patch_source" |
| const std::string | vertex_reduction_map_name = "v:reduction" |
| const std::string | is_constrained_edge_name = "e:is_constrained" |
| const std::string | vertex_source_map_name = "v:SourceIntersecting" |
| static const struct priv::Limits | limits |
| constexpr double | up_limit = 0.9 |
| constexpr float | safe_extension = 1.0f |
| struct priv::ClosePoint |
| struct priv::Limit |
| struct priv::MinMax |
| struct priv::ProjectionDistance |
| struct priv::SearchData |
| struct priv::Source |
| Class Members | ||
|---|---|---|
| HI | hi | |
| int | sdim =0 | |
| struct priv::SurfacePatch |
Collaboration diagram for priv::SurfacePatch:| Class Members | ||
|---|---|---|
| size_t | aoi_id | |
| BoundingBoxf3 | bb | |
| bool | is_whole_aoi = true | |
| Loops | loops | |
| CutMesh | mesh | |
| size_t | model_id | |
| size_t | shape_id = 0 | |
| struct priv::SurfacePatchEx |
Collaboration diagram for priv::SurfacePatchEx:| Class Members | ||
|---|---|---|
| bool | full_inside = false | |
| bool | just_cliped = false | |
| SurfacePatch | patch | |
| using priv::BBS = typedef std::vector<BoundingBoxf3> |
| using priv::CutAOI = typedef std::pair<std::vector<FI>, std::vector<HI> > |
| using priv::CutAOIs = typedef std::vector<CutAOI> |
| using priv::CutMesh = typedef CGAL::Surface_mesh<EpicKernel::Point_3> |
| using priv::CutMeshes = typedef std::vector<CutMesh> |
| using priv::CvtVI2VI = typedef CutMesh::Property_map<VI, VI> |
| using priv::EdgeBoolMap = typedef CutMesh::Property_map<EI, bool> |
| using priv::EdgeShapeMap = typedef CutMesh::Property_map<EI, IntersectingElement> |
| using priv::EI = typedef CGAL::SM_Edge_index |
| using priv::EpicKernel = typedef CGAL::Exact_predicates_inexact_constructions_kernel |
| using priv::FaceShapeMap = typedef CutMesh::Property_map<FI, IntersectingElement> |
| using priv::FaceTypeMap = typedef CutMesh::Property_map<FI, FaceType> |
| using priv::FI = typedef CGAL::SM_Face_index |
| using priv::HI = typedef CGAL::SM_Halfedge_index |
| using priv::IsOnSides = typedef std::vector<std::array<bool, 4> > |
| using priv::Loop = typedef std::vector<VI> |
| using priv::Loops = typedef std::vector<Loop> |
| using priv::P3 = typedef CGAL::Epick::Point_3 |
| using priv::PatchNumber = typedef CutMesh::Property_map<FI, size_t> |
| using priv::PointNormal = typedef std::pair<Vec3d, Vec3d> |
| using priv::PointNormals = typedef std::array<PointNormal, 4> |
| using priv::Polygon = typedef Slic3r::Polygon |
| using priv::Primitive = typedef CGAL::AABB_face_graph_triangle_primitive<CutMesh> |
| using priv::Project = typedef Emboss::IProjection |
| using priv::Project3d = typedef Emboss::IProject3d |
| using priv::ProjectionDistances = typedef std::vector<ProjectionDistance> |
| using priv::Ray = typedef EpicKernel::Ray_3 |
| using priv::ReductionMap = typedef CvtVI2VI |
| using priv::Sources = typedef std::vector<Source> |
| using priv::SurfacePatches = typedef std::vector<SurfacePatch> |
| using priv::SurfacePatchesEx = typedef std::vector<SurfacePatchEx> |
| using priv::Traits = typedef CGAL::AABB_traits<EpicKernel, Primitive> |
| using priv::Tree = typedef CGAL::AABB_tree<Traits> |
| using priv::Trees = typedef std::vector<Tree> |
| using priv::VCutAOIs = typedef std::vector<CutAOIs> |
| using priv::VDistances = typedef std::vector<ProjectionDistances> |
| using priv::VertexShapeMap = typedef CutMesh::Property_map<VI, const IntersectingElement *> |
| using priv::VertexSourceMap = typedef CutMesh::Property_map<VI, Source> |
| using priv::VI = typedef CGAL::SM_Vertex_index |
|
strong |
Flag for faces in CGAL mesh.
| Enumerator | |
|---|---|
| inside | |
| outside | |
| not_constrained | |
| inside_processed | |
|
strong |
|
strong |
| Enumerator | |
|---|---|
| rename | |
| erase | |
| add | |
| save | |
| undo | |
| italic | |
| unitalic | |
| bold | |
| unbold | |
| system_selector | |
| open_file | |
| exclamation | |
| lock | |
| lock_bold | |
| unlock | |
| unlock_bold | |
| _count | |
| void priv::add_quad | ( | uint32_t | i1, |
| uint32_t | i2, | ||
| indexed_triangle_set & | result, | ||
| uint32_t | count_point | ||
| ) |
References indexed_triangle_set::indices.
Referenced by polygons2model_duplicit(), and polygons2model_unique().
Here is the caller graph for this function:| void priv::append | ( | SurfaceCut & | sc, |
| SurfaceCut && | sc_add | ||
| ) |
Merge two surface cuts together Added surface cut will be consumed.
| sc | Surface cut to extend |
| sc_add | Surface cut to consume |
References Slic3r::append(), Slic3r::SurfaceCut::contours, indexed_triangle_set::empty(), Slic3r::its_merge(), Slic3r::offset(), and indexed_triangle_set::vertices.
Referenced by merge_patches().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Apply camera direction for emboss direction.
| camera | Define view vector |
| canvas | Containe Selected Model to modify |
References Slic3r::angle(), Slic3r::GUI::Camera::get_dir_forward(), Slic3r::Geometry::Transformation::get_matrix(), Slic3r::GUI::Selection::get_model(), Slic3r::GUI::get_model_volume(), Slic3r::GUI::GLCanvas3D::get_selection(), Slic3r::GUI::Selection::get_volume(), Slic3r::GUI::Selection::get_volume_idxs(), Slic3r::GLVolume::get_volume_transformation(), Eigen::Transform< _Scalar, _Dim, _Mode, _Options >::inverse(), Slic3r::is_approx(), Slic3r::GUI::Selection::is_empty(), Eigen::Transform< _Scalar, _Dim, _Mode, _Options >::linear(), Slic3r::Model::objects, Slic3r::offset(), Slic3r::ModelVolume::set_transformation(), Slic3r::GLVolume::set_volume_transformation(), and Slic3r::GUI::world_matrix_fixed().
Referenced by Slic3r::GUI::GLGizmoEmboss::draw_advanced().
Here is the call graph for this function:
Here is the caller graph for this function:| BoundingBoxf3 priv::bounding_box | ( | const CutAOI & | cut, |
| const CutMesh & | mesh | ||
| ) |
References to_vec3d().
Referenced by bounding_box(), create_bbs(), divide_patch(), and separate_patch().
Here is the call graph for this function:
Here is the caller graph for this function:| BoundingBoxf3 priv::bounding_box | ( | const CutMesh & | mesh | ) |
References to_vec3d().
Here is the call graph for this function:| BoundingBoxf3 priv::bounding_box | ( | const SurfacePatch & | ecut | ) |
References bounding_box(), and priv::SurfacePatch::mesh.
Here is the call graph for this function:| float priv::calc_distance | ( | const P3 & | p, |
| uint32_t | pi, | ||
| const CutMesh & | shapes_mesh, | ||
| float | projection_ratio | ||
| ) |
Calculate projection distance of point [in mm].
| p | Point to calc distance |
| pi | Index of point on contour |
| shapes_mesh | Model of cutting shape |
| projection_ratio | Ratio for best projection distance |
Referenced by calc_distances().
Here is the caller graph for this function:| priv::VDistances priv::calc_distances | ( | const SurfacePatches & | patches, |
| const CutMeshes & | models, | ||
| const CutMesh & | shapes_mesh, | ||
| size_t | count_shapes_points, | ||
| float | projection_ratio | ||
| ) |
Calculate distances for SurfacePatches outline points NOTE: each model has to have "vert_shape_map" .. Know source of new vertices.
| patches | Part of surface |
| models | Vertices position |
| shapes_mesh | Mesh created by shapes |
| count_shapes_points | Count of contour points in shapes |
| projection_ratio | Define best distnace |
References priv::IntersectingElement::attr, calc_distance(), patch_source_name, priv::IntersectingElement::shape_point_index, priv::IntersectingElement::undefined, and vert_shape_map_name.
Referenced by Slic3r::cut_surface().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Move window for edit emboss text near to embossed object NOTE: embossed object must be selected.
References Slic3r::GUI::CameraUtils::create_hull2d(), Slic3r::GUI::Size::get_height(), Slic3r::GUI::Selection::get_volume(), Slic3r::GUI::Selection::get_volume_idxs(), Slic3r::GUI::Size::get_width(), Slic3r::offset(), and Slic3r::GUI::ImGuiWrapper::suggest_location().
Referenced by Slic3r::GUI::GLGizmoEmboss::draw_window(), and Slic3r::GUI::GLGizmoEmboss::on_set_state().
Here is the call graph for this function:
Here is the caller graph for this function:Referenced by fill_shape_distances(), and find_close_point().
Here is the caller graph for this function:
|
static |
Change position of emboss window.
| output_window_offset | |
| try_to_fix | When True Only move to be full visible otherwise reset position |
References ImGui::FindWindowByName(), ImGui::GetMainViewport(), ImGuiWindow::Pos, ImGuiViewport::Size, ImGuiWindow::SizeFull, ImVec2::x, and ImVec2::y.
Referenced by Slic3r::GUI::GLGizmoEmboss::on_set_state(), and Slic3r::GUI::GLGizmoEmboss::set_minimal_window_size().
Here is the call graph for this function:
Here is the caller graph for this function:| bool priv::check | ( | const CreateSurfaceVolumeData & | input, |
| bool | is_main_thread = false |
||
| ) |
References check(), and input().
Here is the call graph for this function:Assert check of inputs data.
private namespace implementation
| input |
References input().
Referenced by Slic3r::GUI::Emboss::CreateObjectJob::CreateObjectJob(), Slic3r::GUI::Emboss::CreateSurfaceVolumeJob::CreateSurfaceVolumeJob(), Slic3r::GUI::Emboss::CreateVolumeJob::CreateVolumeJob(), Slic3r::GUI::Emboss::UpdateJob::UpdateJob(), Slic3r::GUI::Emboss::UpdateSurfaceVolumeJob::UpdateSurfaceVolumeJob(), check(), check(), check(), check(), check(), Slic3r::GUI::Emboss::CreateVolumeJob::process(), Slic3r::GUI::Emboss::CreateObjectJob::process(), Slic3r::GUI::Emboss::UpdateJob::process(), Slic3r::GUI::Emboss::CreateSurfaceVolumeJob::process(), Slic3r::GUI::Emboss::UpdateSurfaceVolumeJob::process(), and remove_spikes_in_duplicates().
Here is the call graph for this function:
Here is the caller graph for this function:| bool priv::check | ( | const DataCreateObject & | input | ) |
References check(), and input().
Here is the call graph for this function:| bool priv::check | ( | const DataCreateVolume & | input, |
| bool | is_main_thread = false |
||
| ) |
References check(), input(), and Slic3r::INVALID.
Here is the call graph for this function:| bool priv::check | ( | const DataUpdate & | input, |
| bool | is_main_thread = false, |
||
| bool | use_surface = false |
||
| ) |
References check(), Slic3r::GUI::get_volume(), and input().
Here is the call graph for this function:| bool priv::check | ( | const UpdateSurfaceVolumeData & | input, |
| bool | is_main_thread = false |
||
| ) |
| priv::ProjectionDistances priv::choose_best_distance | ( | const VDistances & | distances, |
| const ExPolygons & | shapes, | ||
| const Point & | start, | ||
| const ExPolygonsIndices & | s2i, | ||
| const SurfacePatches & | patches | ||
| ) |
Select distances in similar depth between expolygons.
| distances | All distances - Vector distances for each shape point |
| shapes | Vector of letters |
| start | Pivot for start projection in 2d |
| s2i | Convert index to addresss inside of shape |
| patches | Cutted parts from surface |
References priv::ProjectionDistance::aoi_index, Slic3r::count_points(), Slic3r::ExPolygonsIndices::cvt(), priv::ProjectionDistance::distance, fill_shape_distances(), find_closest_point_index(), find_closest_point_pair(), get_closest_projection(), and Slic3r::ExPolygonsIndices::get_count().
Referenced by Slic3r::cut_surface().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Referenced by Slic3r::GUI::IconManager::~IconManager(), and Slic3r::GUI::IconManager::init().
Here is the caller graph for this function:| bool priv::clip_cut | ( | SurfacePatch & | cut, |
| CutMesh | clipper | ||
| ) |
Implement 'cut' Minus 'clipper', where clipper is reverse input Volume NOTE: clipper will be modified (corefined by cut) !!!
| cut | differ from |
| clipper | differ what |
References priv::SurfacePatch::mesh.
Referenced by diff_models().
Here is the caller graph for this function:| Points priv::collect_close_points | ( | const ExPolygons & | expolygons, |
| double | distance = .6 |
||
| ) |
References Slic3r::AABBTreeLines::all_lines_in_radius(), Slic3r::AABBTreeLines::build_aabb_tree_over_indexed_lines(), Slic3r::ExPolygon::contour, Slic3r::ExPolygonsIndices::cvt(), Slic3r::ExPolygonsIndices::get_count(), Slic3r::ExPolygon::holes, Slic3r::ExPolygonsIndices::is_last_point(), Slic3r::MultiPoint::points, and Slic3r::to_linesf().
Here is the call graph for this function:| void priv::collect_open_edges | ( | SurfacePatches & | patches | ) |
Fill outline in patches by open edges.
| patches | Input/Output meshes with open edges |
References create_loops().
Referenced by diff_models().
Here is the call graph for this function:
Here is the caller graph for this function:| void priv::collect_surface_data | ( | std::queue< FI > & | process, |
| std::vector< FI > & | faces, | ||
| std::vector< HI > & | outlines, | ||
| FaceTypeMap & | face_type_map, | ||
| const CutMesh & | mesh | ||
| ) |
Collect connected inside faces Collect outline half edges.
| process | Queue of face to process - find connected |
| faces | [Output] collected Face indices from mesh |
| outlines | [Output] collected Halfedge indices from mesh |
| face_type_map | Use flag inside / outside NOTE: Modify in function: inside -> inside_processed |
| mesh | mesh to process |
References inside, inside_processed, outside, and process().
Referenced by create_cut_area_of_interests().
Here is the call graph for this function:
Here is the caller graph for this function:| Slic3r::Pointfs priv::compute_intersections | ( | const Slic3r::Lines & | lines | ) |
References Slic3r::Line::a, Slic3r::Line::b, Slic3r::Line::intersection(), and Slic3r::BoundingBoxBase< PointType, APointsType >::overlap().
Referenced by Slic3r::intersection_points(), Slic3r::intersection_points(), Slic3r::intersection_points(), Slic3r::intersection_points(), and Slic3r::intersection_points().
Here is the call graph for this function:
Here is the caller graph for this function:| std::vector< BoundingBoxf3 > priv::create_bbs | ( | const VCutAOIs & | cuts, |
| const CutMeshes & | cut_models | ||
| ) |
Create bounding boxes for AOI.
| cuts | Cutted AOI from models |
| cut_models | Source points of cuts |
References bounding_box().
Referenced by diff_models().
Here is the call graph for this function:
Here is the caller graph for this function:| ExPolygon priv::create_bounding_rect | ( | const ExPolygons & | shape | ) |
References Slic3r::get_extents(), Slic3r::BoundingBoxBase< PointType, APointsType >::max, Slic3r::BoundingBoxBase< PointType, APointsType >::min, Slic3r::offset(), and Slic3r::BoundingBoxBase< PointType, APointsType >::size().
Referenced by heal_dupl_inter().
Here is the call graph for this function:
Here is the caller graph for this function:| priv::CutAOIs priv::create_cut_area_of_interests | ( | const CutMesh & | mesh, |
| const ExPolygons & | shapes, | ||
| FaceTypeMap & | face_type_map | ||
| ) |
Create areas from mesh surface.
| mesh | Model |
| shapes | Cutted shapes |
| face_type_map | Define Triangles of interest. Edge between inside / outside. NOTE: Not const because it need to flag proccessed faces |
References collect_surface_data(), inside, and process().
Referenced by cut_from_model().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Create default mesh for embossed text.
References Slic3r::its_make_cube(), Slic3r::load_obj(), and Slic3r::resources_dir().
Here is the call graph for this function:
|
static |
Prepare data for emboss.
| text | Text to emboss |
| style_manager | Keep actual selected style |
| cancel | Cancel for previous job |
References Slic3r::GUI::Emboss::StyleManager::get_font_file_with_cache(), Slic3r::GUI::Emboss::StyleManager::get_style(), Slic3r::GUI::Emboss::StyleManager::get_wx_font(), Slic3r::GUI::Emboss::StyleManager::is_active_font(), Slic3r::GUI::Emboss::StyleManager::load_valid_style(), Slic3r::EmbossStyle::path, and Slic3r::GUI::WxFontUtils::store_wxFont().
Referenced by Slic3r::GUI::GLGizmoEmboss::create_volume(), Slic3r::GUI::GLGizmoEmboss::create_volume(), and Slic3r::GUI::GLGizmoEmboss::process().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Create tranformation for emboss Cutted surface.
| is_outside | True .. raise, False .. engrave |
| emboss | Depth of embossing |
| tr | Text voliume transformation inside object |
| cut | Cutted surface from model |
References its_transform(), and Eigen::Transform< _Scalar, _Dim, _Mode, _Options >::pretranslate().
Referenced by cut_surface().
Here is the call graph for this function:
Here is the caller graph for this function:| void priv::create_face_types | ( | FaceTypeMap & | map, |
| const CutMesh & | tm1, | ||
| const CutMesh & | tm2, | ||
| const EdgeBoolMap & | ecm, | ||
| const VertexSourceMap & | sources | ||
| ) |
Create map1 and map2.
| map | Convert tm1.face to type |
| tm1 | Corefined mesh |
| tm2 | Source of intersection |
| ecm1 | Identify constrainde edge |
| sources | Convert tm1.face to type |
References priv::Source::hi, inside, not_constrained, outside, and priv::Source::sdim.
| priv::Loops priv::create_loops | ( | const std::vector< HI > & | outlines, |
| const CutMesh & | mesh | ||
| ) |
Create closed loops of contour vertices created from open half edges.
| outlines | Unsorted half edges |
| mesh | Source mesh for half edges |
Referenced by collect_open_edges().
Here is the caller graph for this function:
|
static |
Referenced by Slic3r::GUI::Emboss::CreateVolumeJob::process(), and Slic3r::GUI::Emboss::CreateObjectJob::process().
Here is the caller graph for this function:References Slic3r::GUI::show_error().
Referenced by create_volume(), Slic3r::GUI::Emboss::CreateVolumeJob::finalize(), Slic3r::GUI::Emboss::CreateObjectJob::finalize(), process(), and update_volume().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Create projection for cut surface from mesh.
| tr | Volume transformation in object |
| shape_scale | Convert shape to milimeters |
| z_range | Bounding box 3d of model volume for projection ranges |
References Eigen::Transform< _Scalar, _Dim, _Mode, _Options >::linear(), safe_extension, Eigen::Transform< _Scalar, _Dim, _Mode, _Options >::scale(), and Eigen::Transform< _Scalar, _Dim, _Mode, _Options >::translate().
Referenced by cut_surface().
Here is the call graph for this function:
Here is the caller graph for this function:| void priv::create_reduce_map | ( | ReductionMap & | reduction_map, |
| const CutMesh & | meshes | ||
| ) |
Create map to reduce unnecesary triangles, Triangles are made by divided quad to two triangles on side of cutting shape mesh Note: also use from mesh (have to be created) face_type_map .. Type of shape inside / outside vert_shape_map .. Source of outline vertex.
| reduction_map | Reduction map from vertex to vertex, when key == value than no reduction |
| faces | Faces of one |
| mesh | Input object |
Append reduction or change existing one.
| hi | HalEdge between outside and inside face. Target vertex will be reduced, source vertex left |
[[maybe_unused]] &face_type_map, &is_reducible_vertex are need only in debug
References priv::IntersectingElement::edge_2, erase, priv::IntersectingElement::get_type(), is_constrained_edge_name, to_vec3d(), and vert_shape_map_name.
Referenced by diff_models().
Here is the call graph for this function:
Here is the caller graph for this function:| priv::SearchData priv::create_search_data | ( | const ExPolygons & | shapes, |
| const std::vector< bool > & | mask | ||
| ) |
References Slic3r::AABBTreeLines::build_aabb_tree_over_indexed_lines(), priv::SearchData::cvt, priv::SearchData::lines, and priv::SearchData::tree.
Referenced by find_closest_point_index(), and find_closest_point_pair().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
| EmbossStyle priv::create_style | ( | std::wstring | name, |
| std::wstring | path | ||
| ) |
References boost::nowide::narrow().
Here is the call graph for this function:| priv::SurfacePatch priv::create_surface_patch | ( | const std::vector< FI > & | fis, |
| CutMesh & | mesh, | ||
| const ReductionMap * | rmap = nullptr |
||
| ) |
Create patch.
| fis | Define patch faces |
| mesh | Source of fis NOTE: Need temporary add property map for convert vertices |
| rmap | Options to reduce vertices from fis. NOTE: Used for skip vertices made by diagonal edge in rectangle of shape side |
References patch_source_name.
Referenced by diff_models(), and separate_patch().
Here is the caller graph for this function:| priv::Trees priv::create_trees | ( | const CutMeshes & | models | ) |
Create AABB trees for check when patch is whole inside of model.
| models | Source for trees |
|
static |
Add new volume to object.
| mesh | triangles of new volume |
| object_id | Object where to add volume |
| type | Type of new volume |
| trmat | Transformation of volume inside of object |
| data | Text configuration and New VolumeName |
References _L, Slic3r::ModelObject::add_volume(), Slic3r::GUI::Plater::canvas3D(), create_message(), Slic3r::GUI::GLGizmosManager::Emboss, Slic3r::GUI::GLGizmosManager::get_current_type(), Slic3r::GUI::GLCanvas3D::get_gizmos_manager(), Slic3r::ObjectBase::id(), Slic3r::make_cube(), Slic3r::GUI::Plater::model(), Slic3r::MODEL_PART, Slic3r::GUI::GUI_App::obj_list(), Slic3r::GUI::obj_list(), Slic3r::Model::objects, Slic3r::GUI::GLGizmosManager::open_gizmo(), Slic3r::GUI::GUI_App::plater(), Slic3r::GUI::plater(), Slic3r::GUI::ObjectList::reorder_volumes_and_get_selection(), Slic3r::GUI::ObjectList::select_item(), Slic3r::GUI::ObjectList::selection_changed(), Slic3r::GUI::Plater::take_snapshot(), Slic3r::GUI::Plater::update(), and Slic3r::GUI::GLCanvas3D::update_instance_printable_state_for_object().
Referenced by Slic3r::GUI::Emboss::CreateVolumeJob::finalize(), and Slic3r::GUI::Emboss::CreateSurfaceVolumeJob::finalize().
Here is the call graph for this function:
Here is the caller graph for this function:| priv::CutAOIs priv::cut_from_model | ( | CutMesh & | cgal_model, |
| const ExPolygons & | shapes, | ||
| CutMesh & | cgal_shape, | ||
| float | projection_ratio, | ||
| const ExPolygonsIndices & | s2i | ||
| ) |
Create AOIs(area of interest) on model surface.
| cgal_model | Input model converted to CGAL NOTE: will be extended by corefine edge |
| shapes | 2d contours |
| cgal_shape | [const]Model made by shapes NOTE: Can't be definde as const because of corefine function input definition, but it is. |
| projection_ratio | Wanted projection distance |
| s2i | Convert index to shape point from ExPolygons |
References create_cut_area_of_interests(), edge_shape_map_name, face_shape_map_name, face_type_map_name, flood_fill_inner(), is_constrained_edge_name, is_valid(), not_constrained, set_face_type(), and vert_shape_map_name.
Referenced by Slic3r::cut_surface().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Cut surface into triangle mesh.
| input1 | (can't be const - cache of font) |
| input2 | SurfaceVolume data |
| was_canceled | Check to interupt execution |
References _u8L, Slic3r::bounding_box(), Slic3r::BoundingBoxBase< PointType, APointsType >::center(), Slic3r::SurfaceCut::contours, create_emboss_projection(), create_projection_for_cut(), create_shape(), Slic3r::cut2model(), Slic3r::cut_surface(), Slic3r::FontProp::emboss, indexed_triangle_set::empty(), Slic3r::Emboss::FontFileWithCache::font_file, Slic3r::GUI::Emboss::DataBase::font_file, Slic3r::get_extents(), Slic3r::Emboss::get_shape_scale(), Slic3r::has_reflection(), indexed_triangle_set::indices, Eigen::Transform< _Scalar, _Dim, _Mode, _Options >::inverse(), Slic3r::GUI::Emboss::SurfaceVolumeData::is_outside, Slic3r::its_cut_AoI(), its_transform(), Slic3r::BoundingBoxBase< PointType, APointsType >::max, Slic3r::BoundingBox3Base< PointType >::merge(), Slic3r::BoundingBoxBase< PointType, APointsType >::min, Slic3r::EmbossStyle::prop, Slic3r::MultiPoint::reverse(), safe_extension, Slic3r::GUI::Emboss::SurfaceVolumeData::sources, Slic3r::TextConfiguration::style, Slic3r::GUI::Emboss::DataBase::text_configuration, Slic3r::GUI::Emboss::SurfaceVolumeData::text_tr, Slic3r::GUI::Emboss::SurfaceVolumeData::ModelSource::tr, Slic3r::BoundingBoxf3::transformed(), Slic3r::BoundingBoxBase< PointType, APointsType >::translate(), and indexed_triangle_set::vertices.
Referenced by Slic3r::GUI::Emboss::CreateSurfaceVolumeJob::process(), and Slic3r::GUI::Emboss::UpdateSurfaceVolumeJob::process().
Here is the call graph for this function:
Here is the caller graph for this function:| priv::SurfacePatches priv::diff_models | ( | VCutAOIs & | cuts, |
| CutMeshes & | cut_models, | ||
| CutMeshes & | models, | ||
| const Project3d & | projection | ||
| ) |
Differenciate other models.
| cuts | Patches from meshes |
| cut_models | Source points for Cutted AOIs NOTE: Create Reduction map as mesh property - clean on end |
| models | Original models without cut modifications used for differenciation NOTE: Clip function modify Mesh |
| projection | Define projection direction |
References priv::SurfacePatch::aoi_id, priv::SurfacePatch::bb, clip_cut(), collect_open_edges(), create_bbs(), create_reduce_map(), create_surface_patch(), divide_patch(), priv::SurfacePatchEx::full_inside, priv::ModelCut2index::get_count(), get_shape_point_index(), has_bb_intersection(), is_patch_inside_of_model(), priv::SurfacePatch::is_whole_aoi, priv::SurfacePatchEx::just_cliped, priv::SurfacePatch::model_id, priv::SurfacePatchEx::patch, priv::SurfacePatch::shape_id, and vertex_reduction_map_name.
Referenced by Slic3r::cut_surface().
Here is the call graph for this function:
Here is the caller graph for this function:| void priv::divide_patch | ( | size_t | i, |
| SurfacePatchesEx & | patches | ||
| ) |
Separate connected triangles into it's own patches new patches are added to back of input patches.
| i | index into patches |
| patches | In/Out Patches |
References priv::SurfacePatch::bb, bounding_box(), priv::SurfacePatch::is_whole_aoi, priv::SurfacePatchEx::just_cliped, priv::SurfacePatch::mesh, priv::SurfacePatchEx::patch, patch_source_name, and separate_patch().
Referenced by diff_models().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
References Slic3r::GUI::button(), and get_icon().
Referenced by Slic3r::GUI::GLGizmoEmboss::draw_bold_button(), Slic3r::GUI::GLGizmoEmboss::draw_delete_style_button(), Slic3r::GUI::GLGizmoEmboss::draw_font_list(), Slic3r::GUI::GLGizmoEmboss::draw_font_list_line(), Slic3r::GUI::GLGizmoEmboss::draw_italic_button(), Slic3r::GUI::GLGizmoEmboss::draw_style_add_button(), Slic3r::GUI::GLGizmoEmboss::draw_style_rename_button(), Slic3r::GUI::GLGizmoEmboss::draw_style_save_button(), and Slic3r::GUI::GLGizmoEmboss::revertible().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
References Slic3r::GUI::IconManager::Icon::br, Slic3r::GUI::draw(), Slic3r::GUI::IconManager::Icon::is_valid(), Slic3r::GUI::IconManager::Icon::size, ImGui::Text(), Slic3r::GUI::IconManager::Icon::tl, ImVec2::x, and ImVec2::y.
Referenced by Slic3r::GUI::clickable().
Here is the call graph for this function:
Here is the caller graph for this function:Referenced by to_cgal().
Here is the caller graph for this function:| void priv::fill_polygon_distances | ( | const ProjectionDistance & | pd, |
| uint32_t | index, | ||
| const ExPolygonsIndex & | id, | ||
| ProjectionDistances & | result, | ||
| const ExPolygon & | shape, | ||
| const VDistances & | distances | ||
| ) |
References Slic3r::ExPolygon::contour, priv::ProjectionDistance::distance, get_closest_projection(), Slic3r::ExPolygon::holes, and Slic3r::MultiPoint::points.
Referenced by fill_shape_distances().
Here is the call graph for this function:
Here is the caller graph for this function:| void priv::fill_shape_distances | ( | uint32_t | start_index, |
| const ProjectionDistance * | start_pd, | ||
| ProjectionDistances & | result, | ||
| const ExPolygonsIndices & | s2i, | ||
| const ExPolygon & | shape, | ||
| const VDistances & | distances | ||
| ) |
References calc_size_sq(), Slic3r::ExPolygonsIndices::cvt(), priv::ClosePoint::dist_sq, fill_polygon_distances(), and priv::ClosePoint::index.
Referenced by choose_best_distance().
Here is the call graph for this function:
Here is the caller graph for this function:References input(), and process().
Referenced by Slic3r::GUI::Emboss::CreateVolumeJob::finalize(), Slic3r::GUI::Emboss::CreateObjectJob::finalize(), Slic3r::GUI::Emboss::UpdateJob::finalize(), Slic3r::GUI::Emboss::CreateSurfaceVolumeJob::finalize(), and Slic3r::GUI::Emboss::UpdateSurfaceVolumeJob::finalize().
Here is the call graph for this function:
Here is the caller graph for this function:| priv::ClosePoint priv::find_close_point | ( | const Point & | p, |
| ProjectionDistances & | result, | ||
| std::vector< bool > & | finished_shapes, | ||
| const ExPolygonsIndices & | s2i, | ||
| const ExPolygons & | shapes | ||
| ) |
References calc_size_sq(), Slic3r::ExPolygon::contour, Slic3r::ExPolygonsIndices::cvt(), Slic3r::ExPolygon::holes, and Slic3r::MultiPoint::points.
Here is the call graph for this function:| uint32_t priv::find_closest_point_index | ( | const Point & | p, |
| const ExPolygons & | shapes, | ||
| const ExPolygonsIndices & | s2i, | ||
| const std::vector< bool > & | mask | ||
| ) |
References create_search_data(), get_closest_point_index(), priv::SearchData::lines, Slic3r::AABBTreeLines::squared_distance_to_indexed_lines(), and priv::SearchData::tree.
Referenced by choose_best_distance().
Here is the call graph for this function:
Here is the caller graph for this function:| std::pair< uint32_t, uint32_t > priv::find_closest_point_pair | ( | const ExPolygons & | shapes, |
| const std::vector< bool > & | done_shapes, | ||
| const ExPolygonsIndices & | s2i, | ||
| const std::vector< bool > & | mask | ||
| ) |
References Slic3r::ExPolygon::contour, Slic3r::count_points(), create_search_data(), get_closest_point_index(), Slic3r::ExPolygonsIndices::get_count(), Slic3r::ExPolygon::holes, and Slic3r::AABBTreeLines::squared_distance_to_indexed_lines().
Referenced by choose_best_distance().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Find volume in selected object with closest convex hull to screen center. Return.
| selection | Define where to search for closest |
| screen_center | Canvas center(dependent on camera settings) |
| objects | Actual objects |
| closest_center | OUT: coordinate of controid of closest volume |
| closest_volume | OUT: closest volume |
References Slic3r::Polygon::centroid(), Slic3r::GUI::CameraUtils::create_hull2d(), Slic3r::GUI::get_model_volume(), Slic3r::GUI::Selection::get_volume(), and Slic3r::GUI::Selection::get_volume_idxs().
Referenced by Slic3r::GUI::GLGizmoEmboss::create_volume().
Here is the call graph for this function:
Here is the caller graph for this function:| void priv::flood_fill_inner | ( | const CutMesh & | mesh, |
| FaceTypeMap & | face_type_map | ||
| ) |
Change FaceType from not_constrained to inside For neighbor(or neighbor of neighbor of ...) of inside triangles. Process only not_constrained triangles.
| mesh | Corefined mesh |
| face_type_map | In/Out map with faces type |
References inside, not_constrained, and process().
Referenced by cut_from_model().
Here is the call graph for this function:
Here is the caller graph for this function:| uint32_t priv::get_closest_point_index | ( | const SearchData & | sd, |
| size_t | line_idx, | ||
| const Vec2d & | hit_point, | ||
| const ExPolygons & | shapes, | ||
| const ExPolygonsIndices & | s2i | ||
| ) |
References Slic3r::Linef::a, Slic3r::Linef::b, Slic3r::ExPolygon::contour, priv::SearchData::cvt, Slic3r::ExPolygonsIndices::cvt(), Slic3r::ExPolygon::holes, priv::SearchData::lines, and Slic3r::MultiPoint::size().
Referenced by find_closest_point_index(), and find_closest_point_pair().
Here is the call graph for this function:
Here is the caller graph for this function:| const priv::ProjectionDistance * priv::get_closest_projection | ( | const ProjectionDistances & | distance, |
| float | wanted_distance | ||
| ) |
Referenced by choose_best_distance(), and fill_polygon_distances().
Here is the caller graph for this function:| std::optional< Glyph > priv::get_glyph | ( | const stbtt_fontinfo & | font_info, |
| int | unicode_letter, | ||
| float | flatness | ||
| ) |
References Slic3r::Emboss::Glyph::advance_width, free(), Slic3r::Emboss::heal_shape(), Slic3r::Emboss::Glyph::left_side_bearing, Slic3r::length(), Slic3r::Emboss::Glyph::shape, stbtt_FindGlyphIndex(), stbtt_GetGlyphHMetrics(), stbtt_GetGlyphShape(), to_point(), and stbtt_fontinfo::userdata.
Referenced by get_glyph(), Slic3r::Emboss::letter2glyph(), and Slic3r::Emboss::text2shapes().
Here is the call graph for this function:
Here is the caller graph for this function:| const Glyph * priv::get_glyph | ( | int | unicode, |
| const FontFile & | font, | ||
| const FontProp & | font_prop, | ||
| Glyphs & | cache, | ||
| fontinfo_opt & | font_info_opt | ||
| ) |
References Slic3r::FontProp::boldness, Slic3r::FontProp::char_gap, Slic3r::FontProp::collection_number, Slic3r::Emboss::FontFile::data, get_glyph(), Slic3r::Emboss::FontFile::infos, is_valid(), load_font_info(), Slic3r::offset_ex(), Slic3r::Emboss::SHAPE_SCALE, Slic3r::FontProp::size_in_mm, Slic3r::FontProp::skew, and Slic3r::union_ex().
Here is the call graph for this function:| const IconManager::Icon & priv::get_icon | ( | const IconManager::VIcons & | icons, |
| IconType | type, | ||
| IconState | state | ||
| ) |
Referenced by Slic3r::GUI::GLGizmoEmboss::draw_advanced(), Slic3r::GUI::GLGizmoEmboss::draw_bold_button(), draw_button(), Slic3r::GUI::GLGizmoEmboss::draw_italic_button(), and Slic3r::GUI::GLGizmoEmboss::draw_text_input().
Here is the caller graph for this function:Return some shape point index which identify shape NOTE: Used to find expolygon index.
| cut | Used to search source shapes poin |
| model |
References priv::IntersectingElement::shape_point_index, and vert_shape_map_name.
Referenced by diff_models().
Here is the caller graph for this function:
|
static |
References Slic3r::GUI::IconManager::color, Slic3r::GUI::IconManager::color_wite_gray, Slic3r::GUI::IconManager::gray_only_data, and Slic3r::GUI::IconManager::white_only_data.
Referenced by Slic3r::GUI::IconManager::init().
Here is the caller graph for this function:
|
static |
Select Volume from objects.
| objects | All objects in scene |
| volume_id | Identifier of volume in object |
| bool priv::has_bb_intersection | ( | const BoundingBoxf3 & | bb, |
| size_t | model_index, | ||
| const BBS & | bbs, | ||
| const ModelCut2index & | m2i | ||
| ) |
Check whether bounding box has intersection with model.
| bb | Bounding box to check |
| model_index | Model to check with |
| bbs | All bounding boxes from VCutAOIs |
| m2i | Help index into VCutAOIs |
References priv::ModelCut2index::get_count(), priv::ModelCut2index::get_offsets(), and Slic3r::BoundingBox3Base< PointType >::intersects().
Referenced by diff_models().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Referenced by Slic3r::Triangulation::triangulate().
Here is the caller graph for this function:
|
inline |
References Slic3r::intersection_points().
Referenced by Slic3r::Triangulation::triangulate().
Here is the call graph for this function:
Here is the caller graph for this function:| bool priv::heal_dupl_inter | ( | ExPolygons & | shape, |
| unsigned | max_iteration | ||
| ) |
References Slic3r::collect_duplicates(), create_bounding_rect(), Slic3r::diff_ex(), Slic3r::holes(), Slic3r::intersection_points(), pts_2x2(), pts_3x3(), remove_same_neighbor(), remove_spikes_in_duplicates(), Slic3r::to_points(), and Slic3r::MultiPoint::translate().
Referenced by Slic3r::Emboss::heal_shape().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
References Slic3r::offset(), and Slic3r::MultiPoint::points.
Here is the call graph for this function:
|
inline |
References Slic3r::offset(), and Slic3r::MultiPoint::points.
Referenced by Slic3r::Triangulation::triangulate(), Slic3r::Triangulation::triangulate(), Slic3r::Triangulation::triangulate(), and Slic3r::Triangulation::triangulate().
Here is the call graph for this function:
Here is the caller graph for this function:Check if triangle t has all vertices out of any plane.
| t | Triangle |
| is_on_sides | Flag is vertex index out of plane |
| bool priv::is_face_inside | ( | HI | hi, |
| const CutMesh & | mesh, | ||
| const CutMesh & | shape_mesh, | ||
| const VertexShapeMap & | vertex_shape_map, | ||
| const ExPolygonsIndices & | shape2index | ||
| ) |
Distiquish face type for half edge.
| hi | Define face |
| mesh | Mesh to process |
| shape_mesh | Vertices of mesh made by shapes |
| vertex_shape_map | Keep information about source of created vertex |
| shape2index | |
| shape2index | Convert index to shape point from ExPolygons |
References priv::IntersectingElement::attr, Slic3r::ExPolygonsIndices::cvt(), priv::IntersectingElement::face_1, priv::IntersectingElement::face_2, priv::IntersectingElement::get_type(), priv::IntersectingElement::is_first(), priv::IntersectingElement::is_last(), Slic3r::ExPolygonsIndex::point_index, priv::IntersectingElement::shape_point_index, and priv::IntersectingElement::undefined.
Referenced by set_face_type().
Here is the call graph for this function:
Here is the caller graph for this function:| bool priv::is_out_of | ( | const Vec3d & | v, |
| const PointNormal & | point_normal | ||
| ) |
Check.
| side | |
| v | |
| point_normals |
References Slic3r::dot().
Referenced by set_skip_for_out_of_aoi().
Here is the call graph for this function:
Here is the caller graph for this function:| bool priv::is_over_whole_expoly | ( | const CutAOI & | cutAOI, |
| const ExPolygon & | shape, | ||
| const CutMesh & | mesh | ||
| ) |
Checking whether patch is uninterrupted cover of whole expolygon it belongs.
References priv::IntersectingElement::attr, priv::IntersectingElement::edge_1, priv::IntersectingElement::face_1, priv::IntersectingElement::get_type(), priv::IntersectingElement::is_first(), priv::IntersectingElement::is_last(), Slic3r::opposite(), priv::IntersectingElement::shape_point_index, priv::IntersectingElement::undefined, and vert_shape_map_name.
Referenced by is_over_whole_expoly(), and select_patches().
Here is the call graph for this function:
Here is the caller graph for this function:| bool priv::is_over_whole_expoly | ( | const SurfacePatch & | patch, |
| const ExPolygons & | shapes, | ||
| const VCutAOIs & | cutAOIs, | ||
| const CutMeshes & | meshes | ||
| ) |
Checking whether patch is uninterrupted cover of whole expolygon it belongs.
| patch | Part of surface to check |
| shape | Source shape |
References priv::SurfacePatch::aoi_id, is_over_whole_expoly(), priv::SurfacePatch::is_whole_aoi, priv::SurfacePatch::model_id, and priv::SurfacePatch::shape_id.
Here is the call graph for this function:| bool priv::is_patch_inside_of_model | ( | const SurfacePatch & | patch, |
| const Tree & | tree, | ||
| const Project3d & | projection | ||
| ) |
Only for model without intersection Use ray (in projection direction) from a point from patch and count intersections: pair .. outside | odd .. inside.
| patch | Patch to check |
| tree | Model converted to AABB tree |
| projection | Define direction of projection |
References priv::SurfacePatch::mesh, Slic3r::Emboss::IProject3d::project(), and to_vec3d().
Referenced by diff_models().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Referenced by Slic3r::GUI::GLGizmoEmboss::close(), and Slic3r::GUI::GLGizmoEmboss::draw_text_input().
Here is the caller graph for this function:Referenced by Slic3r::GUI::GLGizmoEmboss::draw_style_rename_popup(), Slic3r::GUI::GLGizmoEmboss::draw_style_save_as_popup(), and Slic3r::Triangulation::triangulate().
Here is the caller graph for this function:References Slic3r::Emboss::FontFile::data, and Slic3r::Emboss::FontFile::infos.
Referenced by Slic3r::Emboss::create_range_text(), cut_from_model(), get_glyph(), priv::Visitor::intersection_point_detected(), Slic3r::Emboss::letter2glyph(), and Slic3r::Emboss::text2shapes().
Here is the caller graph for this function:| fontinfo_opt priv::load_font_info | ( | const unsigned char * | data, |
| unsigned int | index = 0 |
||
| ) |
References stbtt_GetFontOffsetForIndex(), and stbtt_InitFont().
Referenced by Slic3r::Emboss::create_font_file(), Slic3r::Emboss::create_range_text(), get_glyph(), Slic3r::Emboss::is_italic(), and Slic3r::Emboss::letter2glyph().
Here is the call graph for this function:
Here is the caller graph for this function:| SurfaceCut priv::merge_patches | ( | SurfacePatches & | patches, |
| const std::vector< bool > & | mask | ||
| ) |
Merge masked patches to one surface cut.
| patches | All patches NOTE: Not const because One needs to add property for Convert indices |
| mask | Mash for using patch |
References append(), and patch2cut().
Here is the call graph for this function:| SurfaceCut priv::patch2cut | ( | SurfacePatch & | patch | ) |
Convert patch to indexed_triangle_set.
| patch | Part of surface |
References Slic3r::contour(), Slic3r::SurfaceCut::contours, indexed_triangle_set::indices, priv::SurfacePatch::loops, priv::SurfacePatch::mesh, and indexed_triangle_set::vertices.
Referenced by merge_patches().
Here is the call graph for this function:
Here is the caller graph for this function:| indexed_triangle_set priv::polygons2model_duplicit | ( | const ExPolygons & | shape2d, |
| const IProjection & | projection, | ||
| const Points & | points, | ||
| const Points & | duplicits | ||
| ) |
References add_quad(), Slic3r::Triangulation::create_changes(), Slic3r::Emboss::IProjection::create_front_back(), indexed_triangle_set::indices, Slic3r::Triangulation::triangulate(), and indexed_triangle_set::vertices.
Referenced by Slic3r::Emboss::polygons2model().
Here is the call graph for this function:
Here is the caller graph for this function:| indexed_triangle_set priv::polygons2model_unique | ( | const ExPolygons & | shape2d, |
| const IProjection & | projection, | ||
| const Points & | points | ||
| ) |
References add_quad(), Slic3r::Emboss::IProjection::create_front_back(), indexed_triangle_set::indices, Slic3r::Triangulation::triangulate(), and indexed_triangle_set::vertices.
Referenced by Slic3r::Emboss::polygons2model().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
References create_message().
Referenced by collect_surface_data(), create_cut_area_of_interests(), finalize(), and flood_fill_inner().
Here is the call graph for this function:
Here is the caller graph for this function:Referenced by heal_dupl_inter(), and remove_self_intersections().
Here is the caller graph for this function:Referenced by heal_dupl_inter(), and Slic3r::Emboss::heal_shape().
Here is the caller graph for this function:| void priv::remove_bad | ( | ExPolygons & | expolygons | ) |
References remove_bad().
Here is the call graph for this function:Referenced by remove_bad(), and remove_spikes_in_duplicates().
Here is the caller graph for this function:| bool priv::remove_same_neighbor | ( | ExPolygons & | expolygons | ) |
References remove_same_neighbor().
Here is the call graph for this function:| bool priv::remove_same_neighbor | ( | Slic3r::Polygon & | polygon | ) |
References Slic3r::MultiPoint::points.
Referenced by Slic3r::Emboss::divide_segments_for_close_point(), heal_dupl_inter(), remove_same_neighbor(), remove_same_neighbor(), and remove_self_intersections().
Here is the caller graph for this function:| bool priv::remove_same_neighbor | ( | Polygons & | polygons | ) |
References remove_same_neighbor().
Here is the call graph for this function:| bool priv::remove_self_intersections | ( | ExPolygons & | shape, |
| unsigned | max_iteration = 10 |
||
| ) |
References Slic3r::diff_ex(), Slic3r::holes(), Slic3r::intersection_points(), pts_2x2(), remove_same_neighbor(), and Slic3r::MultiPoint::translate().
Here is the call graph for this function:| void priv::remove_small_islands | ( | ExPolygons & | shape, |
| double | minimal_area | ||
| ) |
References Slic3r::holes().
Here is the call graph for this function:| void priv::remove_spikes_in_duplicates | ( | ExPolygons & | expolygons, |
| const Points & | duplicates | ||
| ) |
References check(), Slic3r::BoundingBoxBase< PointType, APointsType >::contains(), Slic3r::MultiPoint::points, remove_bad(), remove_when_spike(), Slic3r::Emboss::SHAPE_SCALE, and Slic3r::to_points().
Referenced by heal_dupl_inter().
Here is the call graph for this function:
Here is the caller graph for this function:References acos(), add, Slic3r::angle(), cos(), priv::SpikeDesc::cos_angle, priv::SpikeDesc::half_bevel, Slic3r::MultiPoint::points, and sqrt().
Referenced by remove_spikes_in_duplicates().
Here is the call graph for this function:
Here is the caller graph for this function:| std::vector< bool > priv::select_patches | ( | const ProjectionDistances & | best_distances, |
| const SurfacePatches & | patches, | ||
| const ExPolygons & | shapes, | ||
| const ExPolygonsIndices & | s2i, | ||
| const VCutAOIs & | cutAOIs, | ||
| const CutMeshes & | meshes, | ||
| const Project & | projection | ||
| ) |
Create mask for patches.
| best_distances | For each point selected closest distance |
| patches | All patches |
| shapes | All patches |
References Slic3r::BoundingBoxBase< PointType, APointsType >::center(), Slic3r::ExPolygonsIndices::cvt(), Slic3r::diff_ex(), Slic3r::SVG::draw(), Slic3r::SVG::draw_text(), Slic3r::get_extents(), Slic3r::intersection(), Slic3r::intersection_ex(), is_over_whole_expoly(), Slic3r::offset_ex(), Slic3r::Emboss::SHAPE_SCALE, to_expoly(), and Slic3r::union_ex().
Referenced by Slic3r::cut_surface().
Here is the call graph for this function:
Here is the caller graph for this function:| priv::SurfacePatch priv::separate_patch | ( | const std::vector< FI > & | fis, |
| SurfacePatch & | patch, | ||
| const CvtVI2VI & | cvt_from | ||
| ) |
Separate triangles singned with number n.
| fis | Face indices owned by separate patch |
| patch | Original patch NOTE: Can't be const. For indexing vetices need temporary add property map |
| cvt_from | conversion map |
References priv::SurfacePatch::aoi_id, priv::SurfacePatch::bb, bounding_box(), create_surface_patch(), priv::SurfacePatch::mesh, priv::SurfacePatch::model_id, patch_source_name, and priv::SurfacePatch::shape_id.
Referenced by divide_patch().
Here is the call graph for this function:
Here is the caller graph for this function:| void priv::set_face_type | ( | FaceTypeMap & | face_type_map, |
| const CutMesh & | mesh, | ||
| const VertexShapeMap & | vertex_shape_map, | ||
| const EdgeBoolMap & | ecm, | ||
| const CutMesh & | shape_mesh, | ||
| const ExPolygonsIndices & | shape2index | ||
| ) |
Face with constrained edge are inside/outside by type of intersection Other set to not_constrained(still it could be inside/outside)
| face_type_map | [Output] property map with type of faces |
| mesh | Mesh to process |
| vertex_shape_map | Keep information about source of created vertex |
| ecm | Dynamic Edge Constrained Map of bool |
| shape_mesh | Vertices of mesh made by shapes |
| shape2index | Convert index to shape point from ExPolygons |
References inside, is_face_inside(), and outside.
Referenced by cut_from_model().
Here is the call graph for this function:
Here is the caller graph for this function:| void priv::set_skip_by_angle | ( | std::vector< bool > & | skip_indicies, |
| const indexed_triangle_set & | its, | ||
| const Project3d & | projection, | ||
| double | max_angle = 89. |
||
| ) |
Set true for indicies outward and almost parallel together. Note: internally calculate normals.
| skip_indicies | Flag to convert triangle to cgal |
| its | model |
| projection | Direction to measure angle |
| max_angle | Maximal allowed angle between opposit normal and projection direction [in DEG] |
References cos(), indexed_triangle_set::indices, Slic3r::its_face_normal(), M_PI, Slic3r::Emboss::IProject3d::project(), and indexed_triangle_set::vertices.
Referenced by Slic3r::cut_surface().
Here is the call graph for this function:
Here is the caller graph for this function:| void priv::set_skip_for_out_of_aoi | ( | std::vector< bool > & | skip_indicies, |
| const indexed_triangle_set & | its, | ||
| const Project & | projection, | ||
| const BoundingBox & | shapes_bb | ||
| ) |
Set true for indices out of area of interest.
| skip_indicies | Flag to convert triangle to cgal |
| its | model |
| projection | Convert 2d point to pair of 3d points |
| shapes_bb | 2d bounding box define AOI |
References Slic3r::Emboss::IProjection::create_front_back(), indexed_triangle_set::indices, is_out_of(), Slic3r::BoundingBoxBase< PointType, APointsType >::max, Slic3r::BoundingBoxBase< PointType, APointsType >::min, Slic3r::range(), and indexed_triangle_set::vertices.
Referenced by Slic3r::cut_surface(), and Slic3r::its_cut_AoI().
Here is the call graph for this function:
Here is the caller graph for this function:Start job for add object with text into scene.
| emboss_data | Define params of text |
| coor | Screen coordinat, where to create new object laying on bed |
References Slic3r::BuildVolume::bed_shape(), Slic3r::GUI::Plater::build_volume(), Slic3r::FontProp::distance, Slic3r::GUI::Plater::get_camera(), Slic3r::GUI::Plater::get_ui_job_worker(), Slic3r::GUI::plater(), Slic3r::EmbossStyle::prop, Slic3r::GUI::queue_job(), Slic3r::TextConfiguration::style, Slic3r::GUI::Emboss::DataBase::text_configuration, and Slic3r::FontProp::use_surface.
Referenced by Slic3r::GUI::GLGizmoEmboss::create_volume(), and Slic3r::GUI::GLGizmoEmboss::create_volume().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Start job for add new volume to object with given transformation.
| object | Define where to add |
| volume_trmat | Volume transformation |
| emboss_data | Define text |
| volume_type | Type of volume |
References Slic3r::GUI::Emboss::create_sources(), Slic3r::GUI::Plater::get_ui_job_worker(), Slic3r::MODEL_PART, Slic3r::NEGATIVE_VOLUME, Slic3r::PARAMETER_MODIFIER, Slic3r::GUI::plater(), Slic3r::EmbossStyle::prop, Slic3r::GUI::queue_job(), Slic3r::TextConfiguration::style, Slic3r::GUI::Emboss::DataBase::text_configuration, Slic3r::FontProp::use_surface, and Slic3r::ModelObject::volumes.
Referenced by Slic3r::GUI::GLGizmoEmboss::create_volume(), and start_create_volume_on_surface_job().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Start job for add new volume on surface of object defined by screen coor.
| emboss_data | Define params of text |
| volume_type | Emboss / engrave |
| screen_coor | Mouse position which define position |
| gl_volume | Volume to find surface for create |
| raycaster | Ability to ray cast to model |
| canvas | Contain already used scene RayCasters |
References Slic3r::GUI::RaycastManager::actualize(), Slic3r::Emboss::apply_transformation(), Slic3r::GUI::create_meshes(), Slic3r::Emboss::create_transformation_onto_surface(), Slic3r::GUI::Plater::get_camera(), Slic3r::GLVolume::get_instance_transformation(), Slic3r::Geometry::Transformation::get_matrix(), Eigen::Transform< _Scalar, _Dim, _Mode, _Options >::inverse(), Slic3r::GUI::Plater::model(), Slic3r::GLVolume::object_idx(), Slic3r::Model::objects, Slic3r::GUI::plater(), Slic3r::EmbossStyle::prop, Slic3r::GUI::ray_from_camera(), start_create_volume_job(), Slic3r::TextConfiguration::style, Slic3r::GUI::Emboss::DataBase::text_configuration, up_limit, Slic3r::GLVolume::volume_idx(), and Slic3r::ModelObject::volumes.
Referenced by Slic3r::GUI::GLGizmoEmboss::create_volume(), and Slic3r::GUI::GLGizmoEmboss::create_volume().
Here is the call graph for this function:
Here is the caller graph for this function:| priv::CutMesh priv::to_cgal | ( | const ExPolygons & | shapes, |
| const Project & | projection | ||
| ) |
Covert 2d shape (e.g. Glyph) to CGAL model NOTE: internaly create edge_shape_map .. Property map to store conversion from edge to contour face_shape_map .. Property map to store conversion from face to contour.
| shapes | 2d shapes to project |
| projection | Define transformation 2d point into 3d |
References Slic3r::count_points(), Slic3r::Emboss::IProjection::create_front_back(), edge_shape_map_name, exist_duplicit_vertex(), face_shape_map_name, and priv::IntersectingElement::set_is_first().
Here is the call graph for this function:| priv::CutMesh priv::to_cgal | ( | const indexed_triangle_set & | its, |
| const std::vector< bool > & | skip_indicies, | ||
| bool | flip = false |
||
| ) |
Convert triangle mesh model to CGAL Surface_mesh Filtrate out opposite triangles Add property map for source face index.
| its | Model |
| skip_indicies | Flags that triangle should be skiped |
| flip | When true triangle will flip normal |
References Slic3r::f(), indexed_triangle_set::indices, and indexed_triangle_set::vertices.
Referenced by Slic3r::cut_surface().
Here is the call graph for this function:
Here is the caller graph for this function:| ExPolygon priv::to_expoly | ( | const SurfacePatch & | patch, |
| const Project & | projection, | ||
| Vec2d & | depth_range | ||
| ) |
Unproject points from loops and create expolygons.
| patch | Patch to convert on expolygon |
| projection | Convert 3d point to 2d |
| depth_range | Range of unprojected points x .. min, y .. max value |
References Slic3r::ExPolygon::contour, ClipperLib::pftEvenOdd, Slic3r::MultiPoint::size(), Slic3r::union_ex(), and unproject_loops().
Referenced by select_patches().
Here is the call graph for this function:
Here is the caller graph for this function:References Slic3r::Emboss::SHAPE_SCALE.
Referenced by get_glyph().
Here is the caller graph for this function:| void priv::to_range_pi_pi | ( | T & | angle | ) |
References Slic3r::angle(), and PI.
Referenced by Slic3r::GUI::GLGizmoEmboss::draw_advanced(), and Slic3r::GUI::GLGizmoEmboss::on_mouse_for_rotation().
Here is the call graph for this function:
Here is the caller graph for this function:Referenced by bounding_box(), bounding_box(), create_reduce_map(), is_patch_inside_of_model(), and unproject_loops().
Here is the caller graph for this function:
|
static |
Try to create mesh from text.
| input | Text to convert on mesh
|
| font | Font file with cache NOTE: Cache glyphs is changed |
| was_canceled | To check if process was canceled |
Referenced by Slic3r::GUI::Emboss::UpdateJob::process().
Here is the caller graph for this function:| Polygons priv::unproject_loops | ( | const SurfacePatch & | patch, |
| const Project & | projection, | ||
| Vec2d & | depth_range | ||
| ) |
Unptoject points from outline loops of patch.
| patch | Contain loops and vertices |
| projection | Know how to project from 3d to 2d |
| depth_range | Range of unprojected points x .. min, y .. max value |
References priv::SurfacePatch::loops, priv::SurfacePatch::mesh, to_vec3d(), and Slic3r::Emboss::IProjection::unproject().
Referenced by to_expoly().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Must be called on main thread.
| mesh | New mesh data |
| data | Text configuration, ... |
| mesh | Transformation of volume |
References _L, Slic3r::GUI::Plater::canvas3D(), create_message(), Slic3r::GUI::GLGizmosManager::Emboss, Slic3r::TextConfiguration::fix_3mf_tr, Slic3r::GUI::format(), Slic3r::GUI::GLGizmosManager::get_current_type(), Slic3r::GUI::GLCanvas3D::get_gizmos_manager(), Slic3r::GUI::get_volume(), Slic3r::UndoRedo::GizmoAction, Slic3r::GUI::Plater::model(), Slic3r::Model::objects, Slic3r::GUI::plater(), and Slic3r::GUI::Emboss::UpdateJob::update_volume().
Referenced by Slic3r::GUI::Emboss::UpdateJob::finalize(), and Slic3r::GUI::Emboss::UpdateSurfaceVolumeJob::finalize().
Here is the call graph for this function:
Here is the caller graph for this function:| void priv::visualize_heal | ( | const std::string & | svg_filepath, |
| const ExPolygons & | expolygons | ||
| ) |
References Slic3r::collect_duplicates(), Slic3r::SVG::draw(), Slic3r::intersection_points(), Slic3r::Emboss::SHAPE_SCALE, and Slic3r::to_points().
Here is the call graph for this function:| const std::string priv::edge_shape_map_name = "e:IntersectingElement" |
Referenced by cut_from_model(), and to_cgal().
| const std::string priv::face_shape_map_name = "f:IntersectingElement" |
Referenced by cut_from_model(), and to_cgal().
| const std::string priv::face_type_map_name = "f:side" |
Referenced by cut_from_model().
| const std::string priv::is_constrained_edge_name = "e:is_constrained" |
Referenced by create_reduce_map(), and cut_from_model().
|
static |
| const std::string priv::patch_source_name = "v:patch_source" |
Referenced by calc_distances(), create_surface_patch(), divide_patch(), and separate_patch().
|
constexpr |
Referenced by create_projection_for_cut(), and cut_surface().
|
constexpr |
| const std::string priv::vert_shape_map_name = "v:IntersectingElement" |
Referenced by calc_distances(), create_reduce_map(), cut_from_model(), get_shape_point_index(), and is_over_whole_expoly().
| const std::string priv::vertex_reduction_map_name = "v:reduction" |
Referenced by diff_models().
| const std::string priv::vertex_source_map_name = "v:SourceIntersecting" |