OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Rotfinder.cpp File Reference
#include <array>
#include <cstddef>
#include <cmath>
#include <cstdlib>
#include <cstdint>
#include <algorithm>
#include <iterator>
#include <limits>
#include <libslic3r/SLA/Rotfinder.hpp>
#include <libslic3r/Execution/ExecutionTBB.hpp>
#include <libslic3r/Optimize/BruteforceOptimizer.hpp>
#include "libslic3r/Point.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Execution/Execution.hpp"
#include "libslic3r/Model.hpp"
#include "libslic3r/Optimize/Optimizer.hpp"
#include "libslic3r/BoundingBox.hpp"
#include "libslic3r/PrintConfig.hpp"
#include <libslic3r/Geometry.hpp>
#include <thread>
#include <vector>
#include "libslic3r/Config.hpp"
#include "libslic3r/Polygon.hpp"
#include "libslic3r/TriangleMesh.hpp"
Include dependency graph for Rotfinder.cpp:

Go to the source code of this file.

Classes

struct  Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::Facestats
struct  Slic3r::sla::RotfinderBoilerplate< MAX_ITER >

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::sla
namespace  Slic3r::sla::anonymous_namespace{Rotfinder.cpp}

Typedefs

using Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::XYRotation = std::array<double, 2>

Functions

std::array< Vec3f, 3 > Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::get_triangle_vertices (const TriangleMesh &mesh, size_t faceidx)
std::array< Vec3f, 3 > Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::get_transformed_triangle (const TriangleMesh &mesh, const Transform3f &tr, size_t faceidx)
template<class T>
Vec< 3, T > Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::normal (const std::array< Vec< 3, T >, 3 > &tri)
template<class T, class AccessFn>
T Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::sum_score (AccessFn &&accessfn, size_t facecount, size_t Nthreads)
double Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::get_misalginment_score (const TriangleMesh &mesh, const Transform3f &tr)
double Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::get_supportedness_score (const Facestats &fc)
double Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::get_supportedness_score (const TriangleMesh &mesh, const Transform3f &tr)
float Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::find_ground_level (const TriangleMesh &mesh, const Transform3f &tr, size_t threads)
float Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::get_supportedness_onfloor_score (const TriangleMesh &mesh, const Transform3f &tr)
Transform3f Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::to_transform3f (const XYRotation &rot)
XYRotation Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::from_transform3f (const Transform3f &tr)
bool Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::is_on_floor (const SLAPrintObjectConfig &cfg)
std::vector< XYRotation > Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::get_chull_rotations (const TriangleMesh &mesh, size_t max_count)
template<size_t N, class Fn, class It, class StopCond>
std::array< double, N > Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::find_min_score (Fn &&fn, It from, It to, StopCond &&stopfn)
Vec2d Slic3r::sla::find_best_misalignment_rotation (const ModelObject &mo, const RotOptimizeParams &params)
Vec2d Slic3r::sla::find_least_supports_rotation (const ModelObject &mo, const RotOptimizeParams &params)
BoundingBoxf3 Slic3r::sla::bounding_box_with_tr (const indexed_triangle_set &its, const Transform3f &tr)
Vec2d Slic3r::sla::find_min_z_height_rotation (const ModelObject &mo, const RotOptimizeParams &params)

Variables

const Vec3f Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::DOWN = {0.f, 0.f, -1.f}
constexpr double Slic3r::sla::anonymous_namespace{Rotfinder.cpp}::POINTS_PER_UNIT_AREA = 1.f