![]() |
Prusa Slicer 2.6.0
|
Classes | |
| struct | CoordinateFunctor |
| class | Frame |
| Coordinate frame. More... | |
| struct | GlobalModelInfo |
| struct | Perimeter |
| struct | SeamCandidate |
| struct | SeamCandidateCoordinateFunctor |
| struct | SeamComparator |
Enumerations | |
| enum class | EnforcedBlockedSeamPoint { Blocked = 0 , Neutral = 1 , Enforced = 2 } |
Functions | |
| template<typename T > | |
| int | sgn (T val) |
| float | gauss (float value, float mean_x_coord, float mean_value, float falloff_speed) |
| float | compute_angle_penalty (float ccw_angle) |
| Vec3f | sample_sphere_uniform (const Vec2f &samples) |
| Vec3f | sample_hemisphere_uniform (const Vec2f &samples) |
| Vec3f | sample_power_cosine_hemisphere (const Vec2f &samples, float power) |
| std::vector< float > | raycast_visibility (const AABBTreeIndirect::Tree< 3, float > &raycasting_tree, const indexed_triangle_set &triangles, const TriangleSetSamples &samples, size_t negative_volumes_start_index) |
| std::vector< float > | calculate_polygon_angles_at_vertices (const Polygon &polygon, const std::vector< float > &lengths, float min_arm_length) |
| Polygons | extract_perimeter_polygons (const Layer *layer, std::vector< const LayerRegion * > &corresponding_regions_out) |
| void | process_perimeter_polygon (const Polygon &orig_polygon, float z_coord, const LayerRegion *region, const GlobalModelInfo &global_model_info, PrintObjectSeamData::LayerSeams &result) |
| std::pair< size_t, size_t > | find_previous_and_next_perimeter_point (const std::vector< SeamCandidate > &perimeter_points, size_t point_index) |
| void | compute_global_occlusion (GlobalModelInfo &result, const PrintObject *po, std::function< void(void)> throw_if_canceled) |
| void | gather_enforcers_blockers (GlobalModelInfo &result, const PrintObject *po) |
| void | pick_seam_point (std::vector< SeamCandidate > &perimeter_points, size_t start_index, const SeamComparator &comparator) |
| size_t | pick_nearest_seam_point_index (const std::vector< SeamCandidate > &perimeter_points, size_t start_index, const Vec2f &preffered_location) |
| void | pick_random_seam_point (const std::vector< SeamCandidate > &perimeter_points, size_t start_index) |
| struct Slic3r::SeamPlacerImpl::Perimeter |
Collaboration diagram for Slic3r::SeamPlacerImpl::Perimeter:| Class Members | ||
|---|---|---|
| size_t | end_index {} | |
| Vec3f | final_seam_position = Vec3f::Zero() | |
| bool | finalized = false | |
| float | flow_width {} | |
| size_t | seam_index {} | |
| size_t | start_index {} | |
|
strong |
| std::vector< float > Slic3r::SeamPlacerImpl::calculate_polygon_angles_at_vertices | ( | const Polygon & | polygon, |
| const std::vector< float > & | lengths, | ||
| float | min_arm_length | ||
| ) |
References Slic3r::angle(), calculate_polygon_angles_at_vertices(), Slic3r::next_idx_modulo(), Slic3r::MultiPoint::points, Slic3r::prev_idx_modulo(), and Slic3r::MultiPoint::size().
Referenced by calculate_polygon_angles_at_vertices(), and process_perimeter_polygon().
Here is the call graph for this function:
Here is the caller graph for this function:| float Slic3r::SeamPlacerImpl::compute_angle_penalty | ( | float | ccw_angle | ) |
References gauss().
Referenced by Slic3r::SeamPlacerImpl::SeamComparator::is_first_not_much_worse().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::SeamPlacerImpl::compute_global_occlusion | ( | GlobalModelInfo & | result, |
| const PrintObject * | po, | ||
| std::function< void(void)> | throw_if_canceled | ||
| ) |
References Slic3r::AABBTreeIndirect::build_aabb_tree_over_indexed_triangle_set(), compute_global_occlusion(), Slic3r::SeamPlacer::fast_decimation_triangle_count_target, indexed_triangle_set::indices, Slic3r::its_merge(), Slic3r::its_short_edge_collpase(), its_transform(), Slic3r::SeamPlacerImpl::GlobalModelInfo::mesh_samples, Slic3r::SeamPlacerImpl::GlobalModelInfo::mesh_samples_coordinate_functor, Slic3r::SeamPlacerImpl::GlobalModelInfo::mesh_samples_radius, Slic3r::SeamPlacerImpl::GlobalModelInfo::mesh_samples_tree, Slic3r::SeamPlacerImpl::GlobalModelInfo::mesh_samples_visibility, Slic3r::PrintObjectBase::model_object(), Slic3r::MODEL_PART, Slic3r::NEGATIVE_VOLUME, PI, Slic3r::TriangleSetSamples::positions, raycast_visibility(), Slic3r::SeamPlacer::raycasting_visibility_samples_count, Slic3r::sample_its_uniform_parallel(), sqrt(), Slic3r::TriangleSetSamples::total_area, Slic3r::PrintObject::trafo_centered(), indexed_triangle_set::vertices, and Slic3r::ModelObject::volumes.
Referenced by compute_global_occlusion().
Here is the call graph for this function:
Here is the caller graph for this function:| Polygons Slic3r::SeamPlacerImpl::extract_perimeter_polygons | ( | const Layer * | layer, |
| std::vector< const LayerRegion * > & | corresponding_regions_out | ||
| ) |
References Slic3r::ExtrusionRole::ExternalPerimeter, extract_perimeter_polygons(), and Slic3r::Layer::regions().
Referenced by extract_perimeter_polygons().
Here is the call graph for this function:
Here is the caller graph for this function:| std::pair< size_t, size_t > Slic3r::SeamPlacerImpl::find_previous_and_next_perimeter_point | ( | const std::vector< SeamCandidate > & | perimeter_points, |
| size_t | point_index | ||
| ) |
References Slic3r::SeamPlacerImpl::Perimeter::end_index, find_previous_and_next_perimeter_point(), Slic3r::SeamPlacerImpl::SeamCandidate::perimeter, and Slic3r::SeamPlacerImpl::Perimeter::start_index.
Referenced by find_previous_and_next_perimeter_point().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::SeamPlacerImpl::gather_enforcers_blockers | ( | GlobalModelInfo & | result, |
| const PrintObject * | po | ||
| ) |
References Slic3r::BLOCKER, Slic3r::SeamPlacerImpl::GlobalModelInfo::blockers, Slic3r::SeamPlacerImpl::GlobalModelInfo::blockers_tree, Slic3r::AABBTreeIndirect::build_aabb_tree_over_indexed_triangle_set(), Slic3r::ENFORCER, Slic3r::SeamPlacerImpl::GlobalModelInfo::enforcers, Slic3r::SeamPlacerImpl::GlobalModelInfo::enforcers_tree, gather_enforcers_blockers(), indexed_triangle_set::indices, Slic3r::its_merge(), its_transform(), Slic3r::PrintObjectBase::model_object(), Slic3r::PrintObject::trafo_centered(), indexed_triangle_set::vertices, and Slic3r::ModelObject::volumes.
Referenced by gather_enforcers_blockers().
Here is the call graph for this function:
Here is the caller graph for this function:| float Slic3r::SeamPlacerImpl::gauss | ( | float | value, |
| float | mean_x_coord, | ||
| float | mean_value, | ||
| float | falloff_speed | ||
| ) |
Referenced by compute_angle_penalty().
Here is the caller graph for this function:| size_t Slic3r::SeamPlacerImpl::pick_nearest_seam_point_index | ( | const std::vector< SeamCandidate > & | perimeter_points, |
| size_t | start_index, | ||
| const Vec2f & | preffered_location | ||
| ) |
References pick_nearest_seam_point_index(), and Slic3r::spNearest.
Referenced by pick_nearest_seam_point_index().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::SeamPlacerImpl::pick_random_seam_point | ( | const std::vector< SeamCandidate > & | perimeter_points, |
| size_t | start_index | ||
| ) |
References Slic3r::SeamPlacerImpl::Perimeter::final_seam_position, Slic3r::SeamPlacerImpl::Perimeter::finalized, pick_random_seam_point(), Slic3r::SeamPlacerImpl::Perimeter::seam_index, sin(), and Slic3r::spRandom.
Referenced by pick_random_seam_point().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::SeamPlacerImpl::pick_seam_point | ( | std::vector< SeamCandidate > & | perimeter_points, |
| size_t | start_index, | ||
| const SeamComparator & | comparator | ||
| ) |
References Slic3r::SeamPlacerImpl::SeamComparator::is_first_better(), and pick_seam_point().
Referenced by pick_seam_point().
Here is the call graph for this function:
Here is the caller graph for this function:| void Slic3r::SeamPlacerImpl::process_perimeter_polygon | ( | const Polygon & | orig_polygon, |
| float | z_coord, | ||
| const LayerRegion * | region, | ||
| const GlobalModelInfo & | global_model_info, | ||
| PrintObjectSeamData::LayerSeams & | result | ||
| ) |
References calculate_polygon_angles_at_vertices(), Slic3r::SeamPlacerImpl::Perimeter::end_index, Slic3r::SeamPlacer::enforcer_oversampling_distance, Slic3r::LayerRegion::flow(), Slic3r::SeamPlacerImpl::Perimeter::flow_width, Slic3r::frExternalPerimeter, Slic3r::SeamPlacerImpl::GlobalModelInfo::is_blocked(), Slic3r::SeamPlacerImpl::GlobalModelInfo::is_enforced(), Slic3r::Polygon::make_counter_clockwise(), Slic3r::next_idx_modulo(), Slic3r::Flow::nozzle_diameter(), Slic3r::PrintObjectSeamData::LayerSeams::perimeters, Slic3r::PrintObjectSeamData::LayerSeams::points, process_perimeter_polygon(), Slic3r::SeamPlacer::sharp_angle_snapping_threshold, Slic3r::MultiPoint::size(), Slic3r::SeamPlacerImpl::Perimeter::start_index, Slic3r::unscale(), and Slic3r::Flow::width().
Referenced by process_perimeter_polygon().
Here is the call graph for this function:
Here is the caller graph for this function:| std::vector< float > Slic3r::SeamPlacerImpl::raycast_visibility | ( | const AABBTreeIndirect::Tree< 3, float > & | raycasting_tree, |
| const indexed_triangle_set & | triangles, | ||
| const TriangleSetSamples & | samples, | ||
| size_t | negative_volumes_start_index | ||
| ) |
References indexed_triangle_set::indices, Slic3r::TriangleSetSamples::positions, sample_hemisphere_uniform(), and Slic3r::SeamPlacer::sqr_rays_per_sample_point.
Referenced by compute_global_occlusion().
Here is the call graph for this function:
Here is the caller graph for this function:References cos(), PI, sin(), and sqrt().
Referenced by raycast_visibility().
Here is the call graph for this function:
Here is the caller graph for this function:| int Slic3r::SeamPlacerImpl::sgn | ( | T | val | ) |