ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ccColorScalesManager.cpp
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #include <pybind11/native_enum.h>
9 #include <pybind11/pybind11.h>
10 #include <pybind11/stl.h>
11 #include <pybind11/stl_bind.h>
12 
13 #include <ecvColorScalesManager.h>
14 
15 #include <QColor>
16 
17 #include "../casters.h"
18 
19 namespace py = pybind11;
20 using namespace pybind11::literals;
21 
22 void define_ccColorScalesManager(py::module &m)
23 {
24  py::class_<ccColorScalesManager> pyColorScalesManager(m, "ccColorScalesManager");
25 
26  py::native_enum<ccColorScalesManager::DEFAULT_SCALES>(pyColorScalesManager,
27  "DEFAULT_SCALES",
28  "enum.Enum",
29  "ccColorScalesManager::DEFAULT_SCALES.")
30  .value("BGYR", ccColorScalesManager::DEFAULT_SCALES::BGYR)
31  .value("GREY", ccColorScalesManager::DEFAULT_SCALES::GREY)
32  .value("BWR", ccColorScalesManager::DEFAULT_SCALES::BWR)
33  .value("RY", ccColorScalesManager::DEFAULT_SCALES::RY)
34  .value("RW", ccColorScalesManager::DEFAULT_SCALES::RW)
35  .value("ABS_NORM_GREY", ccColorScalesManager::DEFAULT_SCALES::ABS_NORM_GREY)
36  .value("HSV_360_DEG", ccColorScalesManager::DEFAULT_SCALES::HSV_360_DEG)
37  .value("VERTEX_QUALITY", ccColorScalesManager::DEFAULT_SCALES::VERTEX_QUALITY)
38  .value("DIP_BRYW", ccColorScalesManager::DEFAULT_SCALES::DIP_BRYW)
39  .value("DIP_DIR_REPEAT", ccColorScalesManager::DEFAULT_SCALES::DIP_DIR_REPEAT)
40  .value("VIRIDIS", ccColorScalesManager::DEFAULT_SCALES::VIRIDIS)
41  .value("BROWN_YELLOW", ccColorScalesManager::DEFAULT_SCALES::BROWN_YELLOW)
42  .value("YELLOW_BROWN", ccColorScalesManager::DEFAULT_SCALES::YELLOW_BROWN)
43  .value("TOPO_LANDSERF", ccColorScalesManager::DEFAULT_SCALES::TOPO_LANDSERF)
44  .value("HIGH_CONTRAST", ccColorScalesManager::DEFAULT_SCALES::HIGH_CONTRAST)
45  .value("CIVIDIS", ccColorScalesManager::DEFAULT_SCALES::CIVIDIS)
46  .export_values()
47  .finalize();
48 
49  pyColorScalesManager
50  .def_static("GetUniqueInstance",
52  py::return_value_policy::reference)
53  .def_static("ReleaseUniqueInstance", &ccColorScalesManager::ReleaseUniqueInstance)
54  .def_static("GetDefaultScaleUUID", &ccColorScalesManager::GetDefaultScaleUUID, "scale"_a)
55  .def_static("GetDefaultScale",
57  "scale"_a = ccColorScalesManager::DEFAULT_SCALES::BGYR)
58  .def("getDefaultScale", &ccColorScalesManager::getDefaultScale, "scale"_a)
59  .def("getScale", &ccColorScalesManager::getScale, "UUID"_a)
60  .def("addScale", &ccColorScalesManager::addScale, "scale"_a)
61  .def("removeScale", &ccColorScalesManager::removeScale, "UUID"_a)
62  .def("removeScale", &ccColorScalesManager::removeScale, "UUID"_a)
63  // TODO map()
64  .def("fromPersistentSettings", &ccColorScalesManager::fromPersistentSettings)
65  .def("toPersistentSettings", &ccColorScalesManager::toPersistentSettings);
66 }
void define_ccColorScalesManager(py::module &m)
ccColorScale::Shared getScale(QString UUID) const
Returns a color scale based on its UUID.
void addScale(ccColorScale::Shared scale)
Adds a new color scale.
static ccColorScale::Shared GetDefaultScale(DEFAULT_SCALES scale=BGYR)
Returns a pre-defined color scale (static shortcut)
void removeScale(QString UUID)
Removes a color scale.
static QString GetDefaultScaleUUID(int scale)
Returns a pre-defined color scale UUID.
void toPersistentSettings() const
Save custom color scales to persistent settings.
static void ReleaseUniqueInstance()
Releases unique instance.
void fromPersistentSettings()
Loads custom color scales from persistent settings.
ccColorScale::Shared getDefaultScale(DEFAULT_SCALES scale) const
Returns a pre-defined color scale.
static ccColorScalesManager * GetUniqueInstance()
Returns unique instance.