mirror of https://github.com/CGAL/cgal
lower the highlighting of selected SM_items and change the color system in VSA.
This commit is contained in:
parent
7beb5018e4
commit
fedc3eabef
|
|
@ -44,7 +44,6 @@ qt5_wrap_ui(basicUI_FILES Surface_mesh_approximation_dockwidget.ui)
|
||||||
polyhedron_demo_plugin(surface_mesh_approximation_plugin
|
polyhedron_demo_plugin(surface_mesh_approximation_plugin
|
||||||
Surface_mesh_approximation_plugin
|
Surface_mesh_approximation_plugin
|
||||||
${basicUI_FILES}
|
${basicUI_FILES}
|
||||||
Color_cheat_sheet
|
|
||||||
VSA_wrapper)
|
VSA_wrapper)
|
||||||
target_link_libraries(surface_mesh_approximation_plugin
|
target_link_libraries(surface_mesh_approximation_plugin
|
||||||
PUBLIC
|
PUBLIC
|
||||||
|
|
|
||||||
|
|
@ -1,260 +0,0 @@
|
||||||
#include "Color_cheat_sheet.h"
|
|
||||||
|
|
||||||
const unsigned char Color_cheat_sheet::m_colors[256][3] = {
|
|
||||||
{0, 0, 0},
|
|
||||||
{128, 0, 0},
|
|
||||||
{0, 128, 0},
|
|
||||||
{128, 128, 0},
|
|
||||||
{0, 0, 128},
|
|
||||||
{128, 0, 128},
|
|
||||||
{0, 128, 128},
|
|
||||||
{192, 192, 192},
|
|
||||||
{128, 128, 128},
|
|
||||||
{255, 0, 0},
|
|
||||||
{0, 255, 0},
|
|
||||||
{255, 255, 0},
|
|
||||||
{0, 0, 255},
|
|
||||||
{255, 0, 255},
|
|
||||||
{0, 255, 255},
|
|
||||||
{255, 255, 255},
|
|
||||||
{0, 0, 0},
|
|
||||||
{0, 0, 95},
|
|
||||||
{0, 0, 135},
|
|
||||||
{0, 0, 175},
|
|
||||||
{0, 0, 215},
|
|
||||||
{0, 0, 255},
|
|
||||||
{0, 95, 0},
|
|
||||||
{0, 95, 95},
|
|
||||||
{0, 95, 135},
|
|
||||||
{0, 95, 175},
|
|
||||||
{0, 95, 215},
|
|
||||||
{0, 95, 255},
|
|
||||||
{0, 135, 0},
|
|
||||||
{0, 135, 95},
|
|
||||||
{0, 135, 135},
|
|
||||||
{0, 135, 175},
|
|
||||||
{0, 135, 215},
|
|
||||||
{0, 135, 255},
|
|
||||||
{0, 175, 0},
|
|
||||||
{0, 175, 95},
|
|
||||||
{0, 175, 135},
|
|
||||||
{0, 175, 175},
|
|
||||||
{0, 175, 215},
|
|
||||||
{0, 175, 255},
|
|
||||||
{0, 215, 0},
|
|
||||||
{0, 215, 95},
|
|
||||||
{0, 215, 135},
|
|
||||||
{0, 215, 175},
|
|
||||||
{0, 215, 215},
|
|
||||||
{0, 215, 255},
|
|
||||||
{0, 255, 0},
|
|
||||||
{0, 255, 95},
|
|
||||||
{0, 255, 135},
|
|
||||||
{0, 255, 175},
|
|
||||||
{0, 255, 215},
|
|
||||||
{0, 255, 255},
|
|
||||||
{95, 0, 0},
|
|
||||||
{95, 0, 95},
|
|
||||||
{95, 0, 135},
|
|
||||||
{95, 0, 175},
|
|
||||||
{95, 0, 215},
|
|
||||||
{95, 0, 255},
|
|
||||||
{95, 95, 0},
|
|
||||||
{95, 95, 95},
|
|
||||||
{95, 95, 135},
|
|
||||||
{95, 95, 175},
|
|
||||||
{95, 95, 215},
|
|
||||||
{95, 95, 255},
|
|
||||||
{95, 135, 0},
|
|
||||||
{95, 135, 95},
|
|
||||||
{95, 135, 135},
|
|
||||||
{95, 135, 175},
|
|
||||||
{95, 135, 215},
|
|
||||||
{95, 135, 255},
|
|
||||||
{95, 175, 0},
|
|
||||||
{95, 175, 95},
|
|
||||||
{95, 175, 135},
|
|
||||||
{95, 175, 175},
|
|
||||||
{95, 175, 215},
|
|
||||||
{95, 175, 255},
|
|
||||||
{95, 215, 0},
|
|
||||||
{95, 215, 95},
|
|
||||||
{95, 215, 135},
|
|
||||||
{95, 215, 175},
|
|
||||||
{95, 215, 215},
|
|
||||||
{95, 215, 255},
|
|
||||||
{95, 255, 0},
|
|
||||||
{95, 255, 95},
|
|
||||||
{95, 255, 135},
|
|
||||||
{95, 255, 175},
|
|
||||||
{95, 255, 215},
|
|
||||||
{95, 255, 255},
|
|
||||||
{135, 0, 0},
|
|
||||||
{135, 0, 95},
|
|
||||||
{135, 0, 135},
|
|
||||||
{135, 0, 175},
|
|
||||||
{135, 0, 215},
|
|
||||||
{135, 0, 255},
|
|
||||||
{135, 95, 0},
|
|
||||||
{135, 95, 95},
|
|
||||||
{135, 95, 135},
|
|
||||||
{135, 95, 175},
|
|
||||||
{135, 95, 215},
|
|
||||||
{135, 95, 255},
|
|
||||||
{135, 135, 0},
|
|
||||||
{135, 135, 95},
|
|
||||||
{135, 135, 135},
|
|
||||||
{135, 135, 175},
|
|
||||||
{135, 135, 215},
|
|
||||||
{135, 135, 255},
|
|
||||||
{135, 175, 0},
|
|
||||||
{135, 175, 95},
|
|
||||||
{135, 175, 135},
|
|
||||||
{135, 175, 175},
|
|
||||||
{135, 175, 215},
|
|
||||||
{135, 175, 255},
|
|
||||||
{135, 215, 0},
|
|
||||||
{135, 215, 95},
|
|
||||||
{135, 215, 135},
|
|
||||||
{135, 215, 175},
|
|
||||||
{135, 215, 215},
|
|
||||||
{135, 215, 255},
|
|
||||||
{135, 255, 0},
|
|
||||||
{135, 255, 95},
|
|
||||||
{135, 255, 135},
|
|
||||||
{135, 255, 175},
|
|
||||||
{135, 255, 215},
|
|
||||||
{135, 255, 255},
|
|
||||||
{175, 0, 0},
|
|
||||||
{175, 0, 95},
|
|
||||||
{175, 0, 135},
|
|
||||||
{175, 0, 175},
|
|
||||||
{175, 0, 215},
|
|
||||||
{175, 0, 255},
|
|
||||||
{175, 95, 0},
|
|
||||||
{175, 95, 95},
|
|
||||||
{175, 95, 135},
|
|
||||||
{175, 95, 175},
|
|
||||||
{175, 95, 215},
|
|
||||||
{175, 95, 255},
|
|
||||||
{175, 135, 0},
|
|
||||||
{175, 135, 95},
|
|
||||||
{175, 135, 135},
|
|
||||||
{175, 135, 175},
|
|
||||||
{175, 135, 215},
|
|
||||||
{175, 135, 255},
|
|
||||||
{175, 175, 0},
|
|
||||||
{175, 175, 95},
|
|
||||||
{175, 175, 135},
|
|
||||||
{175, 175, 175},
|
|
||||||
{175, 175, 215},
|
|
||||||
{175, 175, 255},
|
|
||||||
{175, 215, 0},
|
|
||||||
{175, 215, 95},
|
|
||||||
{175, 215, 135},
|
|
||||||
{175, 215, 175},
|
|
||||||
{175, 215, 215},
|
|
||||||
{175, 215, 255},
|
|
||||||
{175, 255, 0},
|
|
||||||
{175, 255, 95},
|
|
||||||
{175, 255, 135},
|
|
||||||
{175, 255, 175},
|
|
||||||
{175, 255, 215},
|
|
||||||
{175, 255, 255},
|
|
||||||
{215, 0, 0},
|
|
||||||
{215, 0, 95},
|
|
||||||
{215, 0, 135},
|
|
||||||
{215, 0, 175},
|
|
||||||
{215, 0, 215},
|
|
||||||
{215, 0, 255},
|
|
||||||
{215, 95, 0},
|
|
||||||
{215, 95, 95},
|
|
||||||
{215, 95, 135},
|
|
||||||
{215, 95, 175},
|
|
||||||
{215, 95, 215},
|
|
||||||
{215, 95, 255},
|
|
||||||
{215, 135, 0},
|
|
||||||
{215, 135, 95},
|
|
||||||
{215, 135, 135},
|
|
||||||
{215, 135, 175},
|
|
||||||
{215, 135, 215},
|
|
||||||
{215, 135, 255},
|
|
||||||
{215, 175, 0},
|
|
||||||
{215, 175, 95},
|
|
||||||
{215, 175, 135},
|
|
||||||
{215, 175, 175},
|
|
||||||
{215, 175, 215},
|
|
||||||
{215, 175, 255},
|
|
||||||
{215, 215, 0},
|
|
||||||
{215, 215, 95},
|
|
||||||
{215, 215, 135},
|
|
||||||
{215, 215, 175},
|
|
||||||
{215, 215, 215},
|
|
||||||
{215, 215, 255},
|
|
||||||
{215, 255, 0},
|
|
||||||
{215, 255, 95},
|
|
||||||
{215, 255, 135},
|
|
||||||
{215, 255, 175},
|
|
||||||
{215, 255, 215},
|
|
||||||
{215, 255, 255},
|
|
||||||
{255, 0, 0},
|
|
||||||
{255, 0, 95},
|
|
||||||
{255, 0, 135},
|
|
||||||
{255, 0, 175},
|
|
||||||
{255, 0, 215},
|
|
||||||
{255, 0, 255},
|
|
||||||
{255, 95, 0},
|
|
||||||
{255, 95, 95},
|
|
||||||
{255, 95, 135},
|
|
||||||
{255, 95, 175},
|
|
||||||
{255, 95, 215},
|
|
||||||
{255, 95, 255},
|
|
||||||
{255, 135, 0},
|
|
||||||
{255, 135, 95},
|
|
||||||
{255, 135, 135},
|
|
||||||
{255, 135, 175},
|
|
||||||
{255, 135, 215},
|
|
||||||
{255, 135, 255},
|
|
||||||
{255, 175, 0},
|
|
||||||
{255, 175, 95},
|
|
||||||
{255, 175, 135},
|
|
||||||
{255, 175, 175},
|
|
||||||
{255, 175, 215},
|
|
||||||
{255, 175, 255},
|
|
||||||
{255, 215, 0},
|
|
||||||
{255, 215, 95},
|
|
||||||
{255, 215, 135},
|
|
||||||
{255, 215, 175},
|
|
||||||
{255, 215, 215},
|
|
||||||
{255, 215, 255},
|
|
||||||
{255, 255, 0},
|
|
||||||
{255, 255, 95},
|
|
||||||
{255, 255, 135},
|
|
||||||
{255, 255, 175},
|
|
||||||
{255, 255, 215},
|
|
||||||
{255, 255, 255},
|
|
||||||
{8, 8, 8},
|
|
||||||
{18, 18, 18},
|
|
||||||
{28, 28, 28},
|
|
||||||
{38, 38, 38},
|
|
||||||
{48, 48, 48},
|
|
||||||
{58, 58, 58},
|
|
||||||
{68, 68, 68},
|
|
||||||
{78, 78, 78},
|
|
||||||
{88, 88, 88},
|
|
||||||
{98, 98, 98},
|
|
||||||
{108, 108, 108},
|
|
||||||
{118, 118, 118},
|
|
||||||
{128, 128, 128},
|
|
||||||
{138, 138, 138},
|
|
||||||
{148, 148, 148},
|
|
||||||
{158, 158, 158},
|
|
||||||
{168, 168, 168},
|
|
||||||
{178, 178, 178},
|
|
||||||
{188, 188, 188},
|
|
||||||
{198, 198, 198},
|
|
||||||
{208, 208, 208},
|
|
||||||
{218, 218, 218},
|
|
||||||
{228, 228, 228},
|
|
||||||
{238, 238, 238},
|
|
||||||
};
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
#ifndef COLOR_CHEAT_SHEET_H
|
|
||||||
#define COLOR_CHEAT_SHEET_H
|
|
||||||
|
|
||||||
#include <cstddef>
|
|
||||||
#include <QtCore/qcompilerdetection.h>
|
|
||||||
|
|
||||||
// 256 color cheat sheet
|
|
||||||
// Source: https://jonasjacek.github.io/colors/
|
|
||||||
|
|
||||||
#ifdef surface_mesh_approximation_plugin_EXPORTS
|
|
||||||
#define COLOR_CHEAT_SHEET_EXPORT Q_DECL_EXPORT
|
|
||||||
#else
|
|
||||||
#define COLOR_CHEAT_SHEET_EXPORT Q_DECL_IMPORT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
class COLOR_CHEAT_SHEET_EXPORT Color_cheat_sheet
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
static const unsigned char &r(const std::size_t &i) {
|
|
||||||
return m_colors[i][0];
|
|
||||||
}
|
|
||||||
|
|
||||||
static const unsigned char &g(const std::size_t &i) {
|
|
||||||
return m_colors[i][1];
|
|
||||||
}
|
|
||||||
|
|
||||||
static const unsigned char &b(const std::size_t &i) {
|
|
||||||
return m_colors[i][2];
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
static const unsigned char m_colors[256][3];
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // COLOR_CHEAT_SHEET_H
|
|
||||||
|
|
@ -60,9 +60,8 @@ std::size_t VSA_wrapper::add_one_proxy() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (nb_added == 1) {
|
if (nb_added == 1) {
|
||||||
const std::size_t c = rand_0_255();
|
const std::size_t h = (rand_0_310()+ 340)%359, s = rand_70_255();
|
||||||
m_proxy_colors.push_back(QColor::fromRgb(
|
m_proxy_colors.push_back(QColor::fromHsvF(h/359.0,s/255.0,1.0));
|
||||||
Color_cheat_sheet::r(c), Color_cheat_sheet::g(c), Color_cheat_sheet::b(c)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nb_added;
|
return nb_added;
|
||||||
|
|
@ -95,9 +94,8 @@ bool VSA_wrapper::split(const std::size_t px_idx, const std::size_t n, const std
|
||||||
}
|
}
|
||||||
if (splitted) {
|
if (splitted) {
|
||||||
for (std::size_t i = m_proxy_colors.size(); i < number_of_proxies(); ++i) {
|
for (std::size_t i = m_proxy_colors.size(); i < number_of_proxies(); ++i) {
|
||||||
const std::size_t c = rand_0_255();
|
const std::size_t h = (rand_0_310()+ 340)%359,s=rand_70_255();
|
||||||
m_proxy_colors.push_back(QColor::fromRgb(
|
m_proxy_colors.push_back(QColor::fromHsvF(h/359.0,s/255.0,1.0));
|
||||||
Color_cheat_sheet::r(c), Color_cheat_sheet::g(c), Color_cheat_sheet::b(c)));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,8 @@
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
|
|
||||||
#include "SMesh_type.h"
|
#include "SMesh_type.h"
|
||||||
#include "Color_cheat_sheet.h"
|
//#include "Color_cheat_sheet.h"
|
||||||
|
#include "Color_map.h"
|
||||||
|
|
||||||
#ifdef surface_mesh_approximation_plugin_EXPORTS
|
#ifdef surface_mesh_approximation_plugin_EXPORTS
|
||||||
#define VSA_WRAPPER_EXPORT Q_DECL_EXPORT
|
#define VSA_WRAPPER_EXPORT Q_DECL_EXPORT
|
||||||
|
|
@ -96,10 +97,16 @@ class VSA_WRAPPER_EXPORT VSA_wrapper {
|
||||||
Compact_metric, EPICK> Compact_approx;
|
Compact_metric, EPICK> Compact_approx;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
std::size_t rand_0_255() {
|
std::size_t rand_0_310() {
|
||||||
return static_cast<std::size_t>(std::rand() % 255);
|
return static_cast<std::size_t>(std::rand() % 310);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::size_t rand_70_255() {
|
||||||
|
return static_cast<std::size_t>(std::rand() % 185 + 70);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
enum Metric { L21, L2, Compact };
|
enum Metric { L21, L2, Compact };
|
||||||
|
|
||||||
|
|
@ -155,10 +162,11 @@ public:
|
||||||
|
|
||||||
// generate proxy colors
|
// generate proxy colors
|
||||||
m_proxy_colors.clear();
|
m_proxy_colors.clear();
|
||||||
|
m_proxy_colors.reserve(number_of_proxies());
|
||||||
|
|
||||||
for (std::size_t i = 0; i < number_of_proxies(); ++i) {
|
for (std::size_t i = 0; i < number_of_proxies(); ++i) {
|
||||||
const std::size_t c = rand_0_255();
|
const std::size_t h = (rand_0_310()+ 340)%360,s=rand_70_255();
|
||||||
m_proxy_colors.push_back(QColor::fromRgb(
|
m_proxy_colors.push_back(QColor::fromHsvF(h/359.0,s/255.0,1.0));
|
||||||
Color_cheat_sheet::r(c), Color_cheat_sheet::g(c), Color_cheat_sheet::b(c)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_initialized = true;
|
m_initialized = true;
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ void main(void) {
|
||||||
highp vec4 specular = pow(max(dot(R,V), 0.0), spec_power) * light_spec;
|
highp vec4 specular = pow(max(dot(R,V), 0.0), spec_power) * light_spec;
|
||||||
vec4 ret_color = vec4((my_color*light_amb).xyz + diffuse.xyz + specular.xyz,1);
|
vec4 ret_color = vec4((my_color*light_amb).xyz + diffuse.xyz + specular.xyz,1);
|
||||||
if(is_selected)
|
if(is_selected)
|
||||||
gl_FragColor = vec4(ret_color.r+70.0/255.0, ret_color.g+70.0/255.0, ret_color.b+70.0/255.0, alpha);
|
gl_FragColor = vec4(ret_color.r+35.0/255.0, ret_color.g+35.0/255.0, ret_color.b+35.0/255.0, alpha);
|
||||||
else
|
else
|
||||||
gl_FragColor = vec4(ret_color.xyz, alpha);
|
gl_FragColor = vec4(ret_color.xyz, alpha);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ void main(void) {
|
||||||
vec4 specular = pow(max(dot(R,V), 0.0), spec_power) * light_spec;
|
vec4 specular = pow(max(dot(R,V), 0.0), spec_power) * light_spec;
|
||||||
vec4 ret_color = vec4((my_color*light_amb).xyz + diffuse.xyz + specular.xyz,1);
|
vec4 ret_color = vec4((my_color*light_amb).xyz + diffuse.xyz + specular.xyz,1);
|
||||||
if(is_selected)
|
if(is_selected)
|
||||||
out_color = vec4(ret_color.r+70.0/255.0, ret_color.g+70.0/255.0, ret_color.b+70.0/255.0, alpha);
|
out_color = vec4(ret_color.r+35.0/255.0, ret_color.g+35.0/255.0, ret_color.b+35.0/255.0, alpha);
|
||||||
else
|
else
|
||||||
out_color = vec4(ret_color.xyz, alpha);
|
out_color = vec4(ret_color.xyz, alpha);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue