mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-01-12 09:40:35 +05:00
[bos #43815][EDF 31529] Dependency of libGEOMEngine. Removed Qt dependencies.
This commit is contained in:
parent
1e56cfc237
commit
42b1e5a1ea
@ -26,7 +26,6 @@ INCLUDE_DIRECTORIES(
|
|||||||
${KERNEL_INCLUDE_DIRS}
|
${KERNEL_INCLUDE_DIRS}
|
||||||
${PROJECT_SOURCE_DIR}/src/SKETCHER
|
${PROJECT_SOURCE_DIR}/src/SKETCHER
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
${PROJECT_BINARY_DIR}/idl
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# additional preprocessor / compiler flags
|
# additional preprocessor / compiler flags
|
||||||
@ -41,7 +40,6 @@ SET(_link_LIBRARIES
|
|||||||
${KERNEL_SALOMELocalTrace}
|
${KERNEL_SALOMELocalTrace}
|
||||||
${KERNEL_OpUtil}
|
${KERNEL_OpUtil}
|
||||||
GEOMSketcher
|
GEOMSketcher
|
||||||
${QT_LIBRARIES}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# --- headers ---
|
# --- headers ---
|
||||||
|
@ -22,21 +22,56 @@
|
|||||||
|
|
||||||
#include "GEOM_ColorUtils.hxx"
|
#include "GEOM_ColorUtils.hxx"
|
||||||
|
|
||||||
#include <QRandomGenerator>
|
#include <vector>
|
||||||
#include <QColor>
|
#include <cmath>
|
||||||
|
#include <random>
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
struct ColorRGB
|
||||||
|
{
|
||||||
|
double r{0.0};
|
||||||
|
double g{0.0};
|
||||||
|
double b{0.0};
|
||||||
|
};
|
||||||
|
|
||||||
|
ColorRGB fromHsv(const int h, const int s, const int v)
|
||||||
|
{
|
||||||
|
const double hh = h / 60.0;
|
||||||
|
const double ss = s / 255.0;
|
||||||
|
const double vv = v / 255.0;
|
||||||
|
|
||||||
|
const int i = static_cast<int>(std::floor(hh)) % 6;
|
||||||
|
const double f = hh - std::floor(hh);
|
||||||
|
const double p = vv * (1.0 - ss);
|
||||||
|
const double q = vv * (1.0 - f * ss);
|
||||||
|
const double t = vv * (1.0 - (1.0 - f) * ss);
|
||||||
|
|
||||||
|
switch (i)
|
||||||
|
{
|
||||||
|
case 0: return { vv, t, p };
|
||||||
|
case 1: return { q, vv, p };
|
||||||
|
case 2: return { p, vv, t };
|
||||||
|
case 3: return { p, q, vv };
|
||||||
|
case 4: return { t, p, vv };
|
||||||
|
case 5: return { vv, p, q };
|
||||||
|
default: return { 0.0, 0.0, 0.0 };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SALOMEDS::Color GEOM_ColorUtils::getPredefinedUniqueColor()
|
SALOMEDS::Color GEOM_ColorUtils::getPredefinedUniqueColor()
|
||||||
{
|
{
|
||||||
static QList<QColor> colors = []() {
|
static const std::vector<ColorRGB> colors = []()
|
||||||
QList<QColor> tempColors;
|
{
|
||||||
|
std::vector<ColorRGB> tempColors;
|
||||||
for (int s = 0; s < 2; s++)
|
for (int s = 0; s < 2; s++)
|
||||||
{
|
{
|
||||||
for (int v = 100; v >= 40; v = v - 20)
|
for (int v = 100; v >= 40; v -= 20)
|
||||||
{
|
{
|
||||||
for (int h = 0; h < 359; h = h + 60)
|
for (int h = 0; h < 359; h += 60)
|
||||||
{
|
{
|
||||||
tempColors.append(QColor::fromHsv(h, 255 - s * 127, v * 255 / 100));
|
tempColors.push_back(fromHsv(h, 255 - s * 127, v * 255 / 100));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -45,17 +80,22 @@ SALOMEDS::Color GEOM_ColorUtils::getPredefinedUniqueColor()
|
|||||||
|
|
||||||
static int currentColor = randomize(colors.size());
|
static int currentColor = randomize(colors.size());
|
||||||
|
|
||||||
SALOMEDS::Color color;
|
const SALOMEDS::Color color
|
||||||
color.R = (double)colors[currentColor].red() / 255.0;
|
{
|
||||||
color.G = (double)colors[currentColor].green() / 255.0;
|
colors[currentColor].r,
|
||||||
color.B = (double)colors[currentColor].blue() / 255.0;
|
colors[currentColor].g,
|
||||||
|
colors[currentColor].b
|
||||||
|
};
|
||||||
|
|
||||||
currentColor = (currentColor+1) % colors.count();
|
currentColor = (currentColor + 1) % colors.size();
|
||||||
|
|
||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|
||||||
int GEOM_ColorUtils::randomize(int size)
|
int GEOM_ColorUtils::randomize(int size)
|
||||||
{
|
{
|
||||||
return QRandomGenerator::global()->bounded(size);
|
std::random_device rd;
|
||||||
|
std::mt19937 gen(rd());
|
||||||
|
std::uniform_int_distribution<> dis(0, size - 1);
|
||||||
|
return dis(gen);
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user