OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
GLGizmoTextureDisplacement.cpp File Reference
#include "GLGizmoTextureDisplacement.hpp"
#include <Eigen/Core>
#include <boost/filesystem.hpp>
#include <boost/filesystem/operations.hpp>
#include <boost/log/trivial.hpp>
#include "ColorSpaceConvert.hpp"
#include "libslic3r/AABBTreeIndirect.hpp"
#include "libslic3r/BoundingBox.hpp"
#include "libslic3r/Color.hpp"
#include "libslic3r/FilamentMixer.hpp"
#include "libslic3r/PresetBundle.hpp"
#include "libslic3r/MeshBoolean.hpp"
#include "libslic3r/Model.hpp"
#include "libslic3r/Utils.hpp"
#include "libslic3r/format.hpp"
#include <slic3r/GUI/AnimatedTexture.hpp>
#include "slic3r/GUI/Camera.hpp"
#include "slic3r/GUI/CameraUtils.hpp"
#include "slic3r/GUI/GLCanvas3D.hpp"
#include "slic3r/GUI/GLToolbar.hpp"
#include "slic3r/GUI/GUI.hpp"
#include "slic3r/GUI/GUI_App.hpp"
#include "slic3r/GUI/GUI_ObjectList.hpp"
#include "slic3r/GUI/GuiColor.hpp"
#include "slic3r/GUI/ImGuiWrapper.hpp"
#include "slic3r/GUI/MainFrame.hpp"
#include "slic3r/GUI/MeshUtils.hpp"
#include "slic3r/GUI/MsgDialog.hpp"
#include "slic3r/GUI/OpenGLManager.hpp"
#include "slic3r/GUI/Plater.hpp"
#include "slic3r/GUI/Shortcuts.hpp"
#include "slic3r/GUI/TextureLibrary.hpp"
#include "slic3r/GUI/TextureProjectorFrame.hpp"
#include "slic3r/GUI/UVEditorCanvas.hpp"
#include "slic3r/GUI/Jobs/TextureDisplacementBakeJob.hpp"
#include "slic3r/GUI/Jobs/TextureDisplacementPrepareJob.hpp"
#include "slic3r/GUI/Jobs/TextureDisplacementDebugJob.hpp"
#include "slic3r/GUI/Jobs/TextureDisplacementPreviewJob.hpp"
#include "slic3r/Utils/UndoRedo.hpp"
#include "GLGizmoUtils.hpp"
#include <cctype>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <chrono>
#include <future>
#include <cstdio>
#include <glad/gl.h>
#include <imgui.h>
#include "libslic3r/Point.hpp"
#include "libslic3r/TriangleSelector.hpp"
#include <memory>
#include "slic3r/GUI/GLTexture.hpp"
#include "libslic3r/TextureDisplacement.hpp"
#include <string>
#include "slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp"
#include "slic3r/GUI/3DScene.hpp"
#include "slic3r/GUI/GLShader.hpp"
#include <math.h>
#include "slic3r/GUI/Gizmos/GLGizmoBase.hpp"
#include "slic3r/GUI/Jobs/Worker.hpp"
#include "libslic3r/Geometry.hpp"
#include "slic3r/GUI/Event.hpp"
#include "slic3r/GUI/IconManager.hpp"
#include <optional>
#include "libslic3r/Config.hpp"
#include "libslic3r/TextureBake/TextureBakeDebug.hpp"
#include <ratio>
#include <tbb/parallel_for.h>
#include <algorithm>
#include <array>
#include <cmath>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <vector>
#include <utility>
#include <wx/gdicmn.h>
#include <wx/busycursor.h>
#include <wx/string.h>
#include <wx/filedlg.h>

Go to the source code of this file.

Namespaces

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

Functions

void Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::push_slim_scrollbar_style (float width, bool dark)
void Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::pop_slim_scrollbar_style ()
std::string Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::ellipsize (std::string s, float max_w, float font_size=0.f)
bool Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::point_in_triangle_coplanar (const Vec3f &p, const std::array< Vec3f, 3 > &t)
TriangleSelector::TriangleSplittingData Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::remap_texture_paint_spatial (const TriangleMesh &src_mesh, const TriangleSelector::TriangleSplittingData &src_data, const AABBTreeIndirect::Tree3f &src_tree, const TriangleMesh &dst_mesh, const Vec3f &dst_to_src)
std::vector< std::string > Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::mixed_slot_signature (const DynamicPrintConfig &project_config)
bool Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::same_palette (const std::vector< PrintableColor > &l, const std::vector< PrintableColor > &r)
static Vec3f Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::srgb_to_lab (const Vec3f &c)
static Vec3f Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::lab_to_srgb (const Vec3f &lab)
std::unique_ptr< GLTexture > Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::upload_height_thumbnail (const DecodedHeightTexture &decoded, int max_px=THUMBNAIL_MAX_PX)
std::unique_ptr< GLTexture > Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::upload_color_texture (const DecodedHeightTexture &decoded, int max_px)
bool Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::ray_plane_hit (const Camera &camera, const Vec2d &mouse_pos, const Transform3d &trafo, const Vec3f &plane_point_local, const Vec3f &plane_normal_local, Vec3d &out_world_hit)
static void Slic3r::GUI::append_paint_patch (GLModel::Geometry &out, const indexed_triangle_set &patch, const std::vector< Vec3f > *displaced)
static double Slic3r::GUI::tip_now ()

Variables

constexpr float Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::ImGuiLogSlider = float(ImGuiSliderFlags_Logarithmic)
constexpr int Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::THUMBNAIL_MAX_PX = 128
constexpr int Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::HEIGHT_TEX_MAX_PX = 2048
constexpr int Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::ADJUST_PREVIEW_MAX_PX = 384
constexpr int Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::PICKER_LOADS_PER_FRAME = 2
constexpr int Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::BORDER_BAND_RINGS = 2
constexpr int Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::PALETTE_LUT_EDGE = 24
constexpr int Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::PALETTE_MAX_ENTRIES = 64
constexpr float Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::PREFER_PURE_DE = 2.f
constexpr size_t Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::MIX_TARGET_SAMPLES = size_t(1) << 20
constexpr size_t Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::MIX_TARGET_BINS = 256
constexpr float Slic3r::GUI::anonymous_namespace{GLGizmoTextureDisplacement.cpp}::MIN_MIX_GAIN = 0.05f
static constexpr double Slic3r::GUI::TIP_DELAY = 0.45
static constexpr double Slic3r::GUI::TIP_DELAY_AGAIN = 0.10
static constexpr double Slic3r::GUI::TIP_STICKY = 0.70
static constexpr float Slic3r::GUI::STD_REMESH_EDGE_MM = 1.0f
static constexpr float Slic3r::GUI::STD_REMESH_SHARP_DEG = 40.f
static constexpr float Slic3r::GUI::STD_SUBDIV_MAX_EDGE_MM = 20.f
static constexpr float Slic3r::GUI::STD_SUBDIV_DETAIL_MM = 0.02f
static constexpr float Slic3r::GUI::STD_SUBDIV_MIN_EDGE_MM = 0.1f
static constexpr float Slic3r::GUI::STD_SUBDIV_BORDER_MM = 0.4f
static constexpr float Slic3r::GUI::STD_SUBDIV_COLOR_MM = 0.25f