OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Model.cpp File Reference
#include "Model.hpp"
#include "calib.hpp"
#include "Format/STEP.hpp"
#include "TriangleMesh.hpp"
#include "Semver.hpp"
#include "Format/OBJ.hpp"
#include "Config.hpp"
#include "Format/STL.hpp"
#include "Format/objparser.hpp"
#include "CustomGCode.hpp"
#include "PrintConfig.hpp"
#include "ObjectID.hpp"
#include "BoundingBox.hpp"
#include "Point.hpp"
#include "Utils.hpp"
#include "Polygon.hpp"
#include "SLA/SupportPoint.hpp"
#include "TextureDisplacement.hpp"
#include "libslic3r.h"
#include "AABBTreeIndirect.hpp"
#include "BuildVolume.hpp"
#include "TexturePainting.hpp"
#include "Format/AssimpImport.hpp"
#include "ClipperUtils.hpp"
#include "Exception.hpp"
#include "ModelArrange.hpp"
#include "Arrange.hpp"
#include "Geometry.hpp"
#include "MTUtils.hpp"
#include "TriangleMeshSlicer.hpp"
#include "TriangleSelector.hpp"
#include "MaterialType.hpp"
#include "Tesselate.hpp"
#include "MeshRepair.hpp"
#include "Format/AMF.hpp"
#include "Format/svg.hpp"
#include "Format/bbs_3mf.hpp"
#include "Format/DRC.hpp"
#include "FaceDetector.hpp"
#include "libslic3r/Geometry/ConvexHull.hpp"
#include <Eigen/Core>
#include <algorithm>
#include <cstddef>
#include <cassert>
#include <cstdlib>
#include <ctime>
#include <boost/filesystem/operations.hpp>
#include <boost/lexical_cast.hpp>
#include <exception>
#include <cmath>
#include <array>
#include <float.h>
#include <boost/algorithm/string/predicate.hpp>
#include <boost/algorithm/string/replace.hpp>
#include <boost/filesystem.hpp>
#include <boost/log/trivial.hpp>
#include <boost/nowide/iostream.hpp>
#include "SVG.hpp"
#include <Eigen/Dense>
#include <functional>
#include <vector>
#include <string>
#include <map>
#include <utility>
#include <memory>
#include <iterator>
#include <limits>
#include <sstream>
#include <iomanip>
#include <set>
#include <optional>
#include <iostream>
#include <ios>
#include <ostream>
#include <initializer_list>
#include "GCodeWriter.hpp"
#include "MeshBoolean.hpp"
#include "Format/3mf.hpp"
#include "I18N.hpp"
#include "ExPolygon.hpp"

Go to the source code of this file.

Classes

struct  Slic3r::anonymous_namespace{Model.cpp}::ExclusionPrismFootprintTriangle

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{Model.cpp}

Macros

#define _L(s)
#define COPY_FACETS(f)

Functions

static void Slic3r::add_textured_mesh_to_model (Model &model, const TexturedMesh &tex_mesh, const std::string &input_file)
static int Slic3r::auto_extruder_id (unsigned int max_extruders, unsigned int &cntr)
static void Slic3r::add_cut_volume (TriangleMesh &mesh, ModelObject *object, const ModelVolume *src_volume, const Transform3d &cut_matrix, const std::string &suffix={}, ModelVolumeType type=ModelVolumeType::MODEL_PART)
static void Slic3r::invalidate_translations (ModelObject *object, const ModelInstance *src_instance)
static void Slic3r::get_real_filament_id (const unsigned char &id, std::string &result)
static double Slic3r::anonymous_namespace{Model.cpp}::cross_2d (const Vec2d &a, const Vec2d &b)
template<class DistanceFn>
static std::vector< Vec3d > Slic3r::anonymous_namespace{Model.cpp}::clip_polygon_by_signed_distance (const std::vector< Vec3d > &input, DistanceFn distance)
static std::vector< ExclusionPrismFootprintTriangle > Slic3r::anonymous_namespace{Model.cpp}::triangulated_prism_footprints (const Polygon &polygon)
static bool Slic3r::anonymous_namespace{Model.cpp}::triangle_bbox_intersects_prism_footprint (const Vec3d &p0, const Vec3d &p1, const Vec3d &p2, const ExclusionPrismFootprintTriangle &footprint)
static std::vector< Vec3d > Slic3r::anonymous_namespace{Model.cpp}::clip_model_triangle_to_prism (const Vec3d &p0, const Vec3d &p1, const Vec3d &p2, const double z_min, const double z_max, const ExclusionPrismFootprintTriangle &footprint)
static double Slic3r::anonymous_namespace{Model.cpp}::polygon_3d_area2 (const std::vector< Vec3d > &polygon)
static void Slic3r::anonymous_namespace{Model.cpp}::append_clipped_polygon (indexed_triangle_set &out, const std::vector< Vec3d > &polygon)
static bool Slic3r::anonymous_namespace{Model.cpp}::mesh_contains_point_linear (const indexed_triangle_set &its, const Vec3d &point)
double Slic3r::getadhesionCoeff (const ModelVolumePtrs objectVolumes)
double Slic3r::getTemperatureFromExtruder (const ModelVolumePtrs objectVolumes)
bool Slic3r::model_object_list_equal (const Model &model_old, const Model &model_new)
bool Slic3r::model_object_list_extended (const Model &model_old, const Model &model_new)
template<typename TypeFilterFn>
bool Slic3r::model_volume_list_changed (const ModelObject &model_object_old, const ModelObject &model_object_new, TypeFilterFn type_filter)
bool Slic3r::model_volume_list_changed (const ModelObject &model_object_old, const ModelObject &model_object_new, const ModelVolumeType type)
bool Slic3r::model_volume_list_changed (const ModelObject &model_object_old, const ModelObject &model_object_new, const std::initializer_list< ModelVolumeType > &types)
template<typename TypeFilterFn, typename CompareFn>
bool Slic3r::model_property_changed (const ModelObject &model_object_old, const ModelObject &model_object_new, TypeFilterFn type_filter, CompareFn compare)
bool Slic3r::model_custom_supports_data_changed (const ModelObject &mo, const ModelObject &mo_new)
bool Slic3r::model_custom_seam_data_changed (const ModelObject &mo, const ModelObject &mo_new)
bool Slic3r::model_mmu_segmentation_data_changed (const ModelObject &mo, const ModelObject &mo_new)
bool Slic3r::model_fuzzy_skin_data_changed (const ModelObject &mo, const ModelObject &mo_new)
bool Slic3r::model_brim_points_data_changed (const ModelObject &mo, const ModelObject &mo_new)
bool Slic3r::model_has_multi_part_objects (const Model &model)
bool Slic3r::model_has_advanced_features (const Model &model)
void Slic3r::remap_model_filament_slots (Model &model, const std::map< int, int > &slot_relocations)
void Slic3r::check_model_ids_validity (const Model &model)
void Slic3r::check_model_ids_equal (const Model &model1, const Model &model2)

Variables

const std::vector< std::string > Slic3r::CONST_FILAMENTS
static constexpr const double Slic3r::volume_threshold_inches = 8.0
static constexpr const double Slic3r::volume_threshold_meters = 0.008
static constexpr const double Slic3r::zero_volume = 0.0000000001

Class Documentation

◆ Slic3r::anonymous_namespace{Model.cpp}::ExclusionPrismFootprintTriangle

struct Slic3r::anonymous_namespace{Model.cpp}::ExclusionPrismFootprintTriangle
Collaboration diagram for Slic3r::anonymous_namespace{Model.cpp}::ExclusionPrismFootprintTriangle:
Class Members
Vec2d max = Vec2d::Zero()
Vec2d min = Vec2d::Zero()
array< Vec2d, 3 > vertices

Macro Definition Documentation

◆ _L

#define _L ( s)
Value:
std::string translate(const std::string &s)
Definition I18N.hpp:18

Referenced by Slic3r::Model::read_from_archive().

◆ COPY_FACETS

#define COPY_FACETS ( f)
Value:
if (new_vol->f.timestamp() == volume->f.timestamp()) new_vol->f.reset(); /* BBS: let next assign take effect */ new_vol->f.assign(volume->f)

Referenced by Slic3r::ModelObject::split().