25 if (!
s_gui.instance) {
27 s_gui.instance->params.fromPersistentSettings();
30 return s_gui.instance->params;
35 s_gui.instance->params.initFontSizesIfNeeded();
42 if (!
s_gui.instance) {
44 s_gui.instance->params.fromPersistentSettings();
65 showBBOnSelected =
true;
69 lightDoubleSided =
true;
70 drawBackgroundGradient =
true;
71 drawRoundedPoints =
false;
72 decimateMeshOnMove =
true;
73 minLoDMeshSize = 2500000;
74 decimateCloudOnMove =
true;
75 minLoDCloudSize = 10000000;
81 colorScaleShowHistogram =
true;
82 colorScaleUseShader =
false;
83 colorScaleShaderSupported =
false;
84 colorScaleRampWidth = 50;
95 displayedNumPrecision = 6;
100 autoComputeOctree = ASK_USER;
120 settings.beginGroup(
"OpenGL");
122 settings.value(
"lightAmbientColor",
123 QByteArray::fromRawData(
129 settings.value(
"lightSpecularColor",
130 QByteArray::fromRawData(
136 settings.value(
"lightDiffuseColor",
137 QByteArray::fromRawData(
143 settings.value(
"meshFrontDiff",
144 QByteArray::fromRawData(
151 settings.value(
"meshBackDiff",
152 QByteArray::fromRawData(
159 settings.value(
"meshSpecular",
160 QByteArray::fromRawData(
166 settings.value(
"pointsDefaultColor",
167 QByteArray::fromRawData(
173 settings.value(
"textDefaultColor",
174 QByteArray::fromRawData(
180 settings.value(
"backgroundColor",
181 QByteArray::fromRawData(
187 settings.value(
"labelBackgroundColor",
188 QByteArray::fromRawData(
195 settings.value(
"labelMarkerColor",
196 QByteArray::fromRawData(
204 settings.value(
"bbDefaultColor",
205 QByteArray::fromRawData(
210 showBBOnSelected = settings.value(
"showBBOnSelected",
true).toBool();
211 bbOpacity = settings.value(
"bbOpacity", 0.5).toDouble();
212 bbLineWidth =
static_cast<unsigned>(
213 std::max(1u, settings.value(
"bbLineWidth", 1).toUInt()));
215 lightDoubleSided = settings.value(
"lightDoubleSided",
true).toBool();
216 drawBackgroundGradient =
217 settings.value(
"backgroundGradient",
true).toBool();
218 drawRoundedPoints = settings.value(
"drawRoundedPoints",
false).toBool();
219 decimateMeshOnMove = settings.value(
"meshDecimation",
true).toBool();
220 minLoDMeshSize = settings.value(
"minLoDMeshSize", 2500000).toUInt();
221 decimateCloudOnMove = settings.value(
"cloudDecimation",
true).toBool();
222 minLoDCloudSize = settings.value(
"minLoDCloudSize", 10000000).toUInt();
223 useVBOs = settings.value(
"useVBOs",
true).toBool();
224 displayCross = settings.value(
"crossDisplayed",
true).toBool();
225 labelMarkerSize =
static_cast<unsigned>(
226 std::max(0, settings.value(
"labelMarkerSize", 5).toInt()));
227 colorScaleShowHistogram =
228 settings.value(
"colorScaleShowHistogram",
true).toBool();
229 colorScaleUseShader = settings.value(
"colorScaleUseShader",
false).toBool();
231 colorScaleRampWidth =
static_cast<unsigned>(
232 std::max(0, settings.value(
"colorScaleRampWidth", 50).toInt()));
233 defaultFontSize =
static_cast<unsigned>(
234 std::max(0, settings.value(
"defaultFontSize", 10).toInt()));
235 labelFontSize =
static_cast<unsigned>(
236 std::max(0, settings.value(
"labelFontSize", 8).toInt()));
237 displayedNumPrecision =
static_cast<unsigned>(
238 std::max(0, settings.value(
"displayedNumPrecision", 6).toInt()));
239 labelOpacity =
static_cast<unsigned>(
240 std::max(0, settings.value(
"labelOpacity", 75).toInt()));
241 zoomSpeed = settings.value(
"zoomSpeed", 1.0).toDouble();
243 settings.value(
"autoComputeOctree", ASK_USER).toInt());
250 settings.beginGroup(
"OpenGL");
258 settings.setValue(
"lightSpecularColor",
259 QByteArray((
const char*)lightSpecularColor.rgba,
264 settings.setValue(
"meshBackDiff", QByteArray((
const char*)meshBackDiff.rgba,
266 settings.setValue(
"meshSpecular", QByteArray((
const char*)meshSpecular.rgba,
269 "pointsDefaultColor",
277 settings.setValue(
"labelBackgroundColor",
278 QByteArray((
const char*)labelBackgroundCol.rgb,
286 settings.setValue(
"showBBOnSelected", showBBOnSelected);
287 settings.setValue(
"bbOpacity", bbOpacity);
288 settings.setValue(
"bbLineWidth", bbLineWidth);
289 settings.setValue(
"backgroundGradient", drawBackgroundGradient);
290 settings.setValue(
"drawRoundedPoints", drawRoundedPoints);
291 settings.setValue(
"meshDecimation", decimateMeshOnMove);
292 settings.setValue(
"minLoDMeshSize", minLoDMeshSize);
293 settings.setValue(
"cloudDecimation", decimateCloudOnMove);
294 settings.setValue(
"minLoDCloudSize", minLoDCloudSize);
295 settings.setValue(
"useVBOs", useVBOs);
296 settings.setValue(
"crossDisplayed", displayCross);
297 settings.setValue(
"labelMarkerSize", labelMarkerSize);
298 settings.setValue(
"colorScaleShowHistogram", colorScaleShowHistogram);
299 settings.setValue(
"colorScaleUseShader", colorScaleUseShader);
301 settings.setValue(
"colorScaleRampWidth", colorScaleRampWidth);
302 settings.setValue(
"defaultFontSize", defaultFontSize);
303 settings.setValue(
"labelFontSize", labelFontSize);
304 settings.setValue(
"displayedNumPrecision", displayedNumPrecision);
305 settings.setValue(
"labelOpacity", labelOpacity);
306 settings.setValue(
"zoomSpeed", zoomSpeed);
307 settings.setValue(
"autoComputeOctree",
static_cast<int>(autoComputeOctree));
314 settings.beginGroup(
"OpenGL");
315 return settings.contains(paramName);
This class manages some persistent parameters (mostly for display)
ParamStruct params
Parameters set.
static void Set(const ParamStruct ¶ms)
Sets GUI parameters.
static void ReleaseInstance()
Release unique instance (if any)
static const ParamStruct & Parameters()
Returns the stored values of each parameter.
static void UpdateParameters()
static ecvSingleton< ecvGui > s_gui
Unique instance of ecvGui.
static int c_fColorArraySize
static int c_ubColorArraySize
constexpr Rgbub defaultColor(MAX, MAX, MAX)
constexpr Rgbub defaultLabelMarkerColor(MAX, 0, MAX)
RgbaTpl< unsigned char > Rgbaub
4 components, unsigned byte type
constexpr Rgbaf night(0.00f, 0.00f, 0.00f, 1.00F)
RgbaTpl< float > Rgbaf
4 components, float type
constexpr Rgbaf darkest(0.08f, 0.08f, 0.08f, 1.00f)
constexpr Rgbaf bright(1.00f, 1.00f, 1.00f, 1.00f)
constexpr Rgbaf middle(0.50f, 0.50f, 0.50f, 1.00f)
constexpr Rgbaf defaultMeshBackDiff(0.27f, 0.90f, 0.90f, 1.00f)
constexpr Rgbaf darker(0.17f, 0.17f, 0.17f, 1.00f)
constexpr Rgb yellow(MAX, MAX, 0)
constexpr Rgbaf defaultMeshFrontDiff(0.00f, 0.90f, 0.27f, 1.00f)
constexpr Rgbub defaultBkgColor(135, 206, 235)
constexpr Rgbub defaultLabelBkgColor(MAX, MAX, MAX)
void reset()
Resets parameters to default values.
ComputeOctreeForPicking
Octree computation (for picking) behaviors.
void initFontSizesIfNeeded()
ParamStruct()
Default constructor.
void toPersistentSettings() const
Saves to persistent DB.
void fromPersistentSettings()
Loads from persistent DB.
bool isInPersistentSettings(QString paramName) const
Generic singleton encapsulation structure.