cee::ug::ScalarSettings
-
class
ScalarSettings
: public RefCountedObject Settings for a specific scalar result.
See the topic Scalar Results
The scalar result has various settings that can be configured to make a better visual appearance of your result data, for instance settings such as legend scheme, legend range and filtering.
Each scalar result has its own settings. Get scalar settings for a specific scalar result by calling UnstructGridModel::scalarSettings() with the requested id.
int scalarId = scalarResultInfos[0].id(); cee::ug::ScalarSettings* settings = ugModel->scalarSettings(scalarId);
Range
The range specifies the minimum and maximum value for the color scheme to fill. Set a custom range with setRange(double min, double max) and get the current range using rangeMinimum() and rangeMaximum(). To set the color scheme to automatically span a range of scalar values, select a mode using setAutoRangeMode().
Color mapping and scheme
The color mapping can be either filled contours with uniform level size or continuous. The ColorMapper object can be accessed through colorMapper(). See ColorMapper for further description on setting color mapping and scheme.
Legend
The color legend provides an overlay item in the view that shows the current results legend colors, range and filtering. Legend visibility is toggled with setLegendVisibilityMode() The legend width, colors, line widths, tick marks and text can be heavily customized.
Filtering
Elements can be filtered based on scalar values and a filtering minimum and a filtering maximum. Elements with scalar values outside of the specified range, will be set invisible. Set the filtering visible range using setFringesElementFilteringVisibleRange(). And also choose to filter undefined values using setFilterUndefinedElements().
Example
This example will set the number of legend levels for the current fringes result and change the color scheme of the legend.
Gets the scalar setting for the scalar result shown as fringes on the model
int scalarId = scalarResultInfos[0].id(); cee::ug::ScalarSettings* settings = ugModel->scalarSettings(scalarId);
Sets number of legend levels to 5.
settings->colorMapper().setTypeFilledContoursUniform(5);
Sets the color scheme to normal inverted.
settings->colorMapper().setColorScheme(cee::ug::ColorMapper::NORMAL_INVERTED);
Use filter to only show values elements where the result value is in the interval from 20 to 99. (The scalar result in this data source has a minimum value of 0 and a maximum value of 99.)
Set filtering range.
settings->setFringesElementFilteringVisibleRange(20, 99);
See the complete source code at: UnstructGrid: Set Scalar Settings on a Loaded Model
See also
Public Types
-
enum
MarkerPosition
Position of the custom markers to show above/below the color legend.
Values:
-
enumerator
ABOVE
Show the marker above the color legend.
-
enumerator
BELOW
Show the marker below the color legend.
-
enumerator
-
enum
AutoRangeMode
Extent of the automatic range computation.
Values:
-
enumerator
OFF
Scalar range is not computed automatically.
-
enumerator
ALL_ITEMS
Scalar range is computed automatically from scalar result values of all items in the model.
-
enumerator
VISIBLE_ITEMS
Scalar range is computed automatically from scalar result values of visible items in the model.
-
enumerator
-
enum
LegendVisibilityMode
Control the visibility of the color legend.
Values:
-
enumerator
NEVER
Always hide the color legend for this result.
-
enumerator
AUTO
Show the color legend for this result if used by any visible parts in the view (default)
-
enumerator
ALWAYS
Always show the color legend for this result, no matter if it is in use or not.
-
enumerator
-
enum
TickMarksPosition
Position of the legend tick marks.
LEFT/RIGHT are only for vertical legends. TOP/BOTTOM are only for horizontal legends. Default is FOLLOW_LAYOUT. Follow layout will have the tick marks on the “inside” of the legend.
Values:
-
enumerator
LEFT
Draw tick marks on the left side of the color legend.
-
enumerator
RIGHT
Draw tick marks on the right side of the color legend.
-
enumerator
TOP
Draw tick marks above the color legend.
-
enumerator
BOTTOM
Draw tick marks below the color legend.
-
enumerator
FOLLOW_LAYOUT
Automatically position the tick marks left or right based on the color legend’s alignment in the view (default)
-
enumerator
Public Functions
-
double
rangeMinimum
() const Returns the minimum value of the currently set range.
-
double
rangeMaximum
() const Returns the maximum value of the currently set range.
-
void
setRange
(double min, double max) Sets the range.
The range given by min and max specifies the min and max value for the color scheme to fill.
Note! Will not have any effect if auto full range is toggled on.
See also
-
AutoRangeMode
autoRangeMode
() const Returns how the scalar range is computed automatically.
-
void
setAutoRangeMode
(AutoRangeMode mode) Sets how the scalar range is computed automatically.
-
const ColorMapper &
colorMapper
() const Returns the color mapper for these scalar settings.
-
ColorMapper &
colorMapper
() Returns the color mapper for these scalar settings.
-
const ContourLines &
contourLines
() const Returns the contour lines settings.
-
ContourLines &
contourLines
() Returns the contour lines settings.
-
bool
logarithmicMapping
() const Returns true if the mapper is using a logarithmic scale.
-
void
setLogarithmicMapping
(bool logMapper) Sets logarithmic or linear mode of the mapper.
-
bool
nodeAveragedValues
() const Returns true if node averaging is used.
-
void
setNodeAveragedValues
(bool useNodeAveraging) Enables/disables the use of node averaged values.
-
LegendVisibilityMode
legendVisibilityMode
() const Returns the visibility mode of the color legend.
-
void
setLegendVisibilityMode
(LegendVisibilityMode legendVisibilityMode) Specifies the visibility of the color legend.
The legend can be set to appear if used by any part in the model (AUTO, default), to always be shown (ALWAYS) or to never be shown (NEVER)
-
unsigned int
legendLineWidth
() const Returns the legend line width.
-
void
setLegendLineWidth
(unsigned int lineWidth) Sets the legend line width.
-
unsigned int
legendBarWidth
() const Returns the width of the legend bar (filled boxes) in pixels.
-
void
setLegendBarWidth
(unsigned int widthInPixels) Sets the width of the legend bar (filled boxes) in pixels.
-
bool
forceTickMarkLinesToCoverLegend
() const Returns true if the tick mark lines will be drawn on top of the legend bar for continuous legends.
See also
-
void
setForceTickMarkLinesToCoverLegend
(bool alwaysCover) Specifies if the tick mark lines should be drawn on top of the legend bar for continuous legends.
This feature is off by default, causing the tick mark lines to not cover the legend but start on the right side so not to obscure the continuous gradient shown on the legend.
By enabling this feature, the tick mark lines will be drawn on top of the legend bar and appear much in the same ways as the filled contours legends.
Note! Only applies when the mapper type is CONTINUOUS
-
bool
drawLegendWithMinimumValueOnTop
() const Returns true if the color legend is drawn in reverse order (with the minimum value on the top).
See also
-
void
setDrawLegendWithMinimumValueOnTop
(bool minOnTop) Specifies if the color legend should be drawn in reverse order (with the minimum value on the top).
-
bool
skipOverlappingTickMarkLabels
() const Returns true if overlapping tick mark labels will be hidden (default).
Returns false if all tick mark labels are drawn without overlap checking.
See also
-
void
setSkipOverlappingTickMarkLabels
(bool skip) Specifies if automatic hiding of overlapping tick mark labels should be enabled or not.
Default is true (skip any overlapping tick mark labels to avoid texts on top of each other).
-
LegendVisibilityMode
aboveBelowRangeColorMarkerVisibilityMode
() const Returns the mode used to determine if the above/below color markers should be shown or not.
-
void
setAboveBelowRangeColorMarkerVisibilityMode
(LegendVisibilityMode mode) Specifies if above/below color markers should be visible or not.
Auto will draw above/below if different from top/bottom colors. Default is never.
-
TickMarksPosition
tickMarksPosition
() const Gets the position of the color legend’s tick marks.
-
void
setTickMarksPosition
(TickMarksPosition position) Sets the position of the color legend’s tick marks.
LEFT/RIGHT are only for vertical legends. TOP/BOTTOM are only for horizontal legends. If set to FOLLOW_LAYOUT (default), the tick mark position will be decided from the overlay items layout in the view.
-
unsigned int
tickMarkLabelsMinimumDistance
() const Returns the minimum distance between tick mark labels.
-
void
setTickMarkLabelsMinimumDistance
(unsigned int distance) Sets the minimum distance between tick mark labels.
-
LegendDirection
legendDirection
() const Returns the direction of the color legend.
-
void
setLegendDirection
(LegendDirection direction) Sets the direction of the color legend.
-
bool
drawLegendBackground
() const Sets if a background should be drawn for the legend.
-
void
setDrawLegendBackground
(bool drawBackground) Returns true if a background is drawn for the legend.
-
void
setLegendBackgroundColor
(const Color3f &color) Sets the color of the legend background.
The legend does not draw the background by default. Set setDrawLegendBackground(true) to draw a background behind the legend. This is useful when you need to improve the contrast between the tick value labels and the background. The background opacity is set using setLegendBackgroundOpacity().
-
float
legendBackgroundOpacity
() const Returns the opacity of the legend background.
-
void
setLegendBackgroundOpacity
(float opacity) Sets the legend background opacity.
The legend does not draw the background by default. Set setDrawLegendBackground(true) to draw a background behind the legend.
-
void
setLegendBackgroundBorderColor
(const Color3f &color) Sets the color of the legend background border.
-
bool
isSingleColorZeroRangeModeEnabled
(Color3f *color = NULL) const Returns true if single color for zero range legend mode is used.
See also
-
void
setSingleColorZeroRangeMode
(const Color3f &color) Specifies that results with a zero range legend (min == max) should be shown with the specified color.
The color legend will show this color and the corresponding value once in the middle of the color legend.
To disable this mode and get back to the default way of showing zero range legends, use the disableSingleColorZeroRangeMode() method.
-
void
disableSingleColorZeroRangeMode
() Disables single color for zero range legend mode.
Revert to using the default way of showing zero range legends (all tick marks same value)
-
bool
forceUniformTickMarkSpacing
() const Returns true (default) if the color legend should be rendered with evenly sized levels.
The (possibly) uneven spacing of the level values or custom continuous tick marks are disregarded
-
void
setForceUniformTickMarkSpacing
(bool forceUniformSpacing) Sets that all tick marks should be evenly distributed in the color legend, despite the uneven size of each level.
The default value is true, which will render a color legend where all the levels have the same size or all the continuous custom tick marks with even spacing.
-
bool
forceUniformTextureLevels
() const Returns true if the color legend texture is forced to have evenly spaced texture levels.
‘
See also
-
void
setForceUniformTextureLevels
(bool forceUniformLevels) Sets that all levels should be evenly distributed in the color legend texture if:
- Color mapper type is set to either FILLED_CONTOURS or FILLED_CONTOURS_UNIFORM and
- One or more levels have a different size/range than the rest
The default value is false
See also
-
char
numericFormat
() const Returns the numeric format used to show the legend tick values.
See also
-
void
setNumericFormat
(char format) Sets the numeric format to use when showing the legend tick values.
Available options:
- ’g/G’ : Use the shortest representation (‘e’ or ‘f’) (default). Example: 392.65
- ’f/F’ : Decimal floating point. Example: 392.65
- ’e/E’ : Scientific notation. Example: 3.9265e+2
Capital letters will give a capital exp letter. E.g.: 2.3e+5 vs 2.3E+5
-
int
numericPrecision
() const Returns the numeric precision used to show the legend tick values.
See also
-
void
setNumericPrecision
(int precision) Sets the numeric precision to use when showing the legend tick values.
- For ‘f’ and ‘e’ mode: The number of digits after the decimal point to show
- For ‘g’ mode: The maximum number of significant digits to show
-
double
numericScalingConstant
() const Returns the constant term of numeric scaling of the values in the tick marks on the color legend.
See also
-
double
numericScalingFirstDegreeFactor
() const Returns the first degree term of numeric scaling of the values in the tick marks on the color legend.
See also
-
void
setNumericScaling
(double constantTerm, double firstDegreeTerm) Sets the numeric scaling of the values in the tick marks on the color legend.
This method allows for applying a first degree function on the values to show as tick marks on the color legend before displaying them. This might be useful to show the result in another unit than what is used in the data model (e.g. convert velocity from miles/hour to m/s).
The value shown as tick marks on the color legend will be:
DisplayValue = ConstantTerm + ResultValue*FirstDegreeTerm
The default is constantTerm = 0 and firstDegreeTerm = 1 (no scaling).
-
void
addColorMarker
(MarkerPosition position, const Color3f &color, const Str &description) Adds a custom color marker to the color legend.
This can be used to show the value and name for above, below and undefined colors as defined in the color mapper. Any number of markers can be shown above or below the color legend
-
size_t
colorMarkerCount
() const Returns the number of custom color markers on the color legend.
-
MarkerPosition
colorMarkerPosition
(size_t index) const Returns the position (above or below) of the custom color marker with the given index.
-
Color3f
colorMarkerColor
(size_t index) const Returns the color of the custom color marker with the given index.
-
Str
colorMarkerDescription
(size_t index) const Returns the description text of the custom color marker with the given index.
-
void
clearColorMarkers
() Removes all the color markers from the color legend.
See also
-
unsigned int
colorMarkerBoxHeight
() const Returns the height of a legend custom color marker.
-
void
setColorMarkerBoxHeight
(unsigned int height) Sets the height of a legend custom color marker.
The size is the same for all custom markers in a legend. Default size is 25.
-
unsigned int
colorMarkerMargin
() const Returns the margin between legend custom color markers.
-
void
setColorMarkerMargin
(unsigned int margin) Sets the margin between legend custom color marker.
-
bool
isFringesElementFilteringEnabled
() const Returns true if element filtering based on fringes scalar is enabled for this scalar result.
-
void
disableFringesElementFiltering
() Disables element filtering when this scalar is displayed as fringes.
-
double
fringesElementFilteringVisibleRangeMinimum
() const Returns the minimum scalar value for the filtering.
-
double
fringesElementFilteringVisibleRangeMaximum
() const Returns the maximum scalar value for the filtering.
-
void
setFringesElementFilteringVisibleRange
(double min, double max) Sets the visible range for fringe (scalar) element filtering to min and max.
Elements can be filtered based on the fringes scalar result values. This function defines the visible range. Elements with fringe scalar values outside of this range will be set invisible.
Warning
Note that for result mappings other than PER_ELEMENT, elements will be flagged as invisible whenever at least one of the associated scalar values is outside the specified range.
-
bool
filterUndefinedElements
() const Returns true if elements with undefined scalar result(s) should be filtered (default false).
See also
-
void
setFilterUndefinedElements
(bool filter) Specifies if the elements with undefined (cee::UNDEFINED_DOUBLE) or no results should be filtered or not.
Default is false, which means that the undefined elements will be shown even if filtering is enabled. To hide the undefined elements when doing filtering, set this setting to true.
See also
enableFringesElementFiltering()
Warning
Note that for result mappings other than PER_ELEMENT, elements will be identified as undefined whenever at least one of the associated scalar values is undefined.
-
enum