VTK-m
2.0
|
Color Table for coloring arbitrary fields. More...
#include <ColorTable.h>
Public Member Functions | |
ColorTable (vtkm::cont::ColorTable::Preset preset=vtkm::cont::ColorTable::Preset::Default) | |
Construct a color table from a preset. More... | |
ColorTable (const std::string &name) | |
Construct a color table from a preset color table. More... | |
ColorTable (vtkm::ColorSpace space) | |
Construct a color table with a zero positions, and an invalid range. More... | |
ColorTable (const vtkm::Range &range, vtkm::ColorSpace space=vtkm::ColorSpace::Lab) | |
Construct a color table with a 2 positions. More... | |
ColorTable (const vtkm::Range &range, const vtkm::Vec3f_32 &rgb1, const vtkm::Vec3f_32 &rgb2, vtkm::ColorSpace space=vtkm::ColorSpace::Lab) | |
Construct a color table with 2 positions. More... | |
ColorTable (const vtkm::Range &range, const vtkm::Vec4f_32 &rgba1, const vtkm::Vec4f_32 &rgba2, vtkm::ColorSpace space=vtkm::ColorSpace::Lab) | |
Construct color and alpha and table with 2 positions. More... | |
ColorTable (const std::string &name, vtkm::ColorSpace colorSpace, const vtkm::Vec3f_64 &nanColor, const std::vector< vtkm::Float64 > &rgbPoints, const std::vector< vtkm::Float64 > &alphaPoints={ 0.0, 1.0, 0.5, 0.0, 1.0, 1.0, 0.5, 0.0 }) | |
Construct a color table with a list of colors and alphas. More... | |
~ColorTable () | |
ColorTable & | operator= (const ColorTable &)=default |
ColorTable (const ColorTable &)=default | |
const std::string & | GetName () const |
void | SetName (const std::string &name) |
bool | LoadPreset (vtkm::cont::ColorTable::Preset preset) |
bool | LoadPreset (const std::string &name) |
Load a preset color table. More... | |
ColorTable | MakeDeepCopy () |
Make a deep copy of the current color table. More... | |
vtkm::ColorSpace | GetColorSpace () const |
void | SetColorSpace (vtkm::ColorSpace space) |
void | SetClampingOn () |
If clamping is disabled values that lay out side the color table range are colored based on Below and Above settings. More... | |
void | SetClampingOff () |
void | SetClamping (bool state) |
bool | GetClamping () const |
void | SetBelowRangeColor (const vtkm::Vec3f_32 &c) |
Color to use when clamping is disabled for any value that is below the given range. More... | |
const vtkm::Vec3f_32 & | GetBelowRangeColor () const |
void | SetAboveRangeColor (const vtkm::Vec3f_32 &c) |
Color to use when clamping is disabled for any value that is above the given range. More... | |
const vtkm::Vec3f_32 & | GetAboveRangeColor () const |
void | SetNaNColor (const vtkm::Vec3f_32 &c) |
const vtkm::Vec3f_32 & | GetNaNColor () const |
void | Clear () |
Remove all existing values in both color and alpha tables. More... | |
void | ClearColors () |
Remove only color table values. More... | |
void | ClearAlpha () |
Remove only alpha table values. More... | |
void | ReverseColors () |
Reverse the rgb values inside the color table. More... | |
void | ReverseAlpha () |
Reverse the alpha, mid, and sharp values inside the opacity table. More... | |
const vtkm::Range & | GetRange () const |
Returns min and max position of all function points. More... | |
void | RescaleToRange (const vtkm::Range &range) |
Rescale the color and opacity transfer functions to match the input range. More... | |
vtkm::Int32 | AddPoint (vtkm::Float64 x, const vtkm::Vec3f_32 &rgb) |
Adds a point to the color function. More... | |
vtkm::Int32 | AddPointHSV (vtkm::Float64 x, const vtkm::Vec3f_32 &hsv) |
Adds a point to the color function. More... | |
vtkm::Int32 | AddSegment (vtkm::Float64 x1, const vtkm::Vec3f_32 &rgb1, vtkm::Float64 x2, const vtkm::Vec3f_32 &rgb2) |
Add a line segment to the color function. More... | |
vtkm::Int32 | AddSegmentHSV (vtkm::Float64 x1, const vtkm::Vec3f_32 &hsv1, vtkm::Float64 x2, const vtkm::Vec3f_32 &hsv2) |
Add a line segment to the color function. More... | |
bool | GetPoint (vtkm::Int32 index, vtkm::Vec4f_64 &) const |
Get the location, and rgb information for an existing point in the opacity function. More... | |
vtkm::Int32 | UpdatePoint (vtkm::Int32 index, const vtkm::Vec4f_64 &) |
Update the location, and rgb information for an existing point in the color function. More... | |
bool | RemovePoint (vtkm::Float64 x) |
Remove the Color function point that exists at exactly x. More... | |
bool | RemovePoint (vtkm::Int32 index) |
Remove the Color function point n. More... | |
vtkm::Int32 | GetNumberOfPoints () const |
Returns the number of points in the color function. More... | |
vtkm::Int32 | AddPointAlpha (vtkm::Float64 x, vtkm::Float32 alpha) |
Adds a point to the opacity function. More... | |
vtkm::Int32 | AddPointAlpha (vtkm::Float64 x, vtkm::Float32 alpha, vtkm::Float32 midpoint, vtkm::Float32 sharpness) |
Adds a point to the opacity function. More... | |
vtkm::Int32 | AddSegmentAlpha (vtkm::Float64 x1, vtkm::Float32 alpha1, vtkm::Float64 x2, vtkm::Float32 alpha2) |
Add a line segment to the opacity function. More... | |
vtkm::Int32 | AddSegmentAlpha (vtkm::Float64 x1, vtkm::Float32 alpha1, vtkm::Float64 x2, vtkm::Float32 alpha2, const vtkm::Vec2f_32 &mid_sharp1, const vtkm::Vec2f_32 &mid_sharp2) |
Add a line segment to the opacity function. More... | |
bool | GetPointAlpha (vtkm::Int32 index, vtkm::Vec4f_64 &) const |
Get the location, alpha, midpoint and sharpness information for an existing point in the opacity function. More... | |
vtkm::Int32 | UpdatePointAlpha (vtkm::Int32 index, const vtkm::Vec4f_64 &) |
Update the location, alpha, midpoint and sharpness information for an existing point in the opacity function. More... | |
bool | RemovePointAlpha (vtkm::Float64 x) |
Remove the Opacity function point that exists at exactly x. More... | |
bool | RemovePointAlpha (vtkm::Int32 index) |
Remove the Opacity function point n. More... | |
vtkm::Int32 | GetNumberOfPointsAlpha () const |
Returns the number of points in the alpha function. More... | |
bool | FillColorTableFromDataPointer (vtkm::Int32 n, const vtkm::Float64 *ptr) |
Fill the Color table from a vtkm::Float64 pointer. More... | |
bool | FillColorTableFromDataPointer (vtkm::Int32 n, const vtkm::Float32 *ptr) |
Fill the Color table from a vtkm::Float32 pointer. More... | |
bool | FillOpacityTableFromDataPointer (vtkm::Int32 n, const vtkm::Float64 *ptr) |
Fill the Opacity table from a vtkm::Float64 pointer. More... | |
bool | FillOpacityTableFromDataPointer (vtkm::Int32 n, const vtkm::Float32 *ptr) |
Fill the Opacity table from a vtkm::Float32 pointer. More... | |
bool | Sample (vtkm::Int32 numSamples, vtkm::cont::ColorTableSamplesRGBA &samples, vtkm::Float64 tolerance=0.002) const |
generate RGB colors using regular spaced samples along the range. More... | |
bool | Sample (vtkm::Int32 numSamples, vtkm::cont::ColorTableSamplesRGB &samples, vtkm::Float64 tolerance=0.002) const |
generate a sample lookup table using regular spaced samples along the range. More... | |
bool | Sample (vtkm::Int32 numSamples, vtkm::cont::ArrayHandle< vtkm::Vec4ui_8 > &colors, vtkm::Float64 tolerance=0.002) const |
generate RGBA colors using regular spaced samples along the range. More... | |
bool | Sample (vtkm::Int32 numSamples, vtkm::cont::ArrayHandle< vtkm::Vec3ui_8 > &colors, vtkm::Float64 tolerance=0.002) const |
generate RGB colors using regular spaced samples along the range. More... | |
vtkm::exec::ColorTable | PrepareForExecution (vtkm::cont::DeviceAdapterId deviceId, vtkm::cont::Token &token) const |
returns a virtual object pointer of the exec color table More... | |
vtkm::Id | GetModifiedCount () const |
Returns the modified count for changes of the color table. More... | |
Static Public Member Functions | |
static std::set< std::string > | GetPresets () |
Returns the name of all preset color tables. More... | |
Private Member Functions | |
void | UpdateArrayHandles () const |
Private Attributes | |
std::shared_ptr< detail::ColorTableInternals > | Internals |
Color Table for coloring arbitrary fields.
The vtkm::cont::ColorTable
allows for color mapping in RGB or HSV space and uses a piecewise hermite functions to allow opacity interpolation that can be piecewise constant, piecewise linear, or somewhere in-between (a modified piecewise hermite function that squishes the function according to a sharpness parameter).
For colors interpolation is handled using a piecewise linear function.
For opacity we define a piecewise function mapping. This mapping allows the addition of control points, and allows the user to control the function between the control points. A piecewise hermite curve is used between control points, based on the sharpness and midpoint parameters. A sharpness of 0 yields a piecewise linear function and a sharpness of 1 yields a piecewise constant function. The midpoint is the normalized distance between control points at which the curve reaches the median Y value. The midpoint and sharpness values specified when adding a node are used to control the transition to the next node with the last node's values being ignored.
When adding opacity nodes without an explicit midpoint and sharpness we will default to to Midpoint = 0.5 (halfway between the control points) and Sharpness = 0.0 (linear).
ColorTable also contains which ColorSpace should be used for interpolation. The color space is selected with the vtkm::ColorSpace
enumeration. Currently the valid ColorSpaces are:
RGB
HSV
HSVWrap
Lab
Diverging
In HSVWrap
mode, it will take the shortest path in Hue (going back through 0 if that is the shortest way around the hue circle) whereas HSV will not go through 0 (in order to match the current functionality of vtkLookupTable
). In Lab
mode, it will take the shortest path in the Lab color space with respect to the CIE Delta E 2000 color distance measure. Diverging
is a special mode where colors will pass through white when interpolating between two saturated colors.
To map a field from a vtkm::cont::DataSet
through the color and opacity transfer functions and into a RGB or RGBA array you should use vtkm::filter::FieldToColor
.
Note that modifications of vtkm::cont::ColorTable
are not thread safe. You should not modify a ColorTable
simultaneously in 2 or more threads. Also, you should not modify a ColorTable
that might be used in the execution environment. However, the ColorTable
can be used in multiple threads and on multiple devices as long as no modifications are made.
|
strong |
vtkm::cont::ColorTable::ColorTable | ( | vtkm::cont::ColorTable::Preset | preset = vtkm::cont::ColorTable::Preset::Default | ) |
Construct a color table from a preset.
Constructs a color table from a given preset, which might include a NaN color. The alpha table will have 2 entries of alpha = 1.0 with linear interpolation
Note: these are a select set of the presets you can get by providing a string identifier.
|
explicit |
Construct a color table from a preset color table.
Constructs a color table from a given preset, which might include a NaN color. The alpha table will have 2 entries of alpha = 1.0 with linear interpolation
Note: Names are case insensitive Currently supports the following color tables:
"Default" "Cool to Warm" "Cool to Warm Extended" "Viridis" "Inferno" "Plasma" "Black-Body Radiation" "X Ray" "Green" "Black - Blue - White" "Blue to Orange" "Gray to Red" "Cold and Hot" "Blue - Green - Orange" "Yellow - Gray - Blue" "Rainbow Uniform" "Jet" "Rainbow Desaturated"
|
explicit |
Construct a color table with a zero positions, and an invalid range.
Note: The color table will have 0 entries Note: The alpha table will have 0 entries
vtkm::cont::ColorTable::ColorTable | ( | const vtkm::Range & | range, |
vtkm::ColorSpace | space = vtkm::ColorSpace::Lab |
||
) |
Construct a color table with a 2 positions.
Note: The color table will have 2 entries of rgb = {1.0,1.0,1.0} Note: The alpha table will have 2 entries of alpha = 1.0 with linear interpolation
vtkm::cont::ColorTable::ColorTable | ( | const vtkm::Range & | range, |
const vtkm::Vec3f_32 & | rgb1, | ||
const vtkm::Vec3f_32 & | rgb2, | ||
vtkm::ColorSpace | space = vtkm::ColorSpace::Lab |
||
) |
Construct a color table with 2 positions.
Note: The alpha table will have 2 entries of alpha = 1.0 with linear interpolation
vtkm::cont::ColorTable::ColorTable | ( | const vtkm::Range & | range, |
const vtkm::Vec4f_32 & | rgba1, | ||
const vtkm::Vec4f_32 & | rgba2, | ||
vtkm::ColorSpace | space = vtkm::ColorSpace::Lab |
||
) |
Construct color and alpha and table with 2 positions.
Note: The alpha table will use linear interpolation
vtkm::cont::ColorTable::ColorTable | ( | const std::string & | name, |
vtkm::ColorSpace | colorSpace, | ||
const vtkm::Vec3f_64 & | nanColor, | ||
const std::vector< vtkm::Float64 > & | rgbPoints, | ||
const std::vector< vtkm::Float64 > & | alphaPoints = { 0.0, 1.0, 0.5, 0.0, 1.0, 1.0, 0.5, 0.0 } |
||
) |
Construct a color table with a list of colors and alphas.
For this version you must also specify a name.
This constructor is mostly used for presets.
vtkm::cont::ColorTable::~ColorTable | ( | ) |
|
default |
vtkm::Int32 vtkm::cont::ColorTable::AddPoint | ( | vtkm::Float64 | x, |
const vtkm::Vec3f_32 & | rgb | ||
) |
Adds a point to the color function.
If the point already exists, it will be updated to the new value.
Note: rgb values need to be between 0 and 1.0 (inclusive). Return the index of the point (0 based), or -1 osn error.
|
inline |
Adds a point to the opacity function.
If the point already exists, it will be updated to the new value. Uses a midpoint of 0.5 (halfway between the control points) and sharpness of 0.0 (linear).
Note: alpha needs to be a value between 0 and 1.0 (inclusive). Return the index of the point (0 based), or -1 on error.
vtkm::Int32 vtkm::cont::ColorTable::AddPointAlpha | ( | vtkm::Float64 | x, |
vtkm::Float32 | alpha, | ||
vtkm::Float32 | midpoint, | ||
vtkm::Float32 | sharpness | ||
) |
Adds a point to the opacity function.
If the point already exists, it will be updated to the new value.
Note: alpha, midpoint, and sharpness values need to be between 0 and 1.0 (inclusive) Return the index of the point (0 based), or -1 on error.
vtkm::Int32 vtkm::cont::ColorTable::AddPointHSV | ( | vtkm::Float64 | x, |
const vtkm::Vec3f_32 & | hsv | ||
) |
Adds a point to the color function.
If the point already exists, it will be updated to the new value.
Note: hsv values need to be between 0 and 1.0 (inclusive). Return the index of the point (0 based), or -1 on error.
vtkm::Int32 vtkm::cont::ColorTable::AddSegment | ( | vtkm::Float64 | x1, |
const vtkm::Vec3f_32 & | rgb1, | ||
vtkm::Float64 | x2, | ||
const vtkm::Vec3f_32 & | rgb2 | ||
) |
Add a line segment to the color function.
All points which lay between x1 and x2 (inclusive) are removed from the function.
Note: rgb1, and rgb2 values need to be between 0 and 1.0 (inclusive). Return the index of the point x1 (0 based), or -1 on error.
|
inline |
Add a line segment to the opacity function.
All points which lay between x1 and x2 (inclusive) are removed from the function. Uses a midpoint of 0.5 (halfway between the control points) and sharpness of 0.0 (linear).
Note: alpha values need to be between 0 and 1.0 (inclusive) Return the index of the point x1 (0 based), or -1 on error
vtkm::Int32 vtkm::cont::ColorTable::AddSegmentAlpha | ( | vtkm::Float64 | x1, |
vtkm::Float32 | alpha1, | ||
vtkm::Float64 | x2, | ||
vtkm::Float32 | alpha2, | ||
const vtkm::Vec2f_32 & | mid_sharp1, | ||
const vtkm::Vec2f_32 & | mid_sharp2 | ||
) |
Add a line segment to the opacity function.
All points which lay between x1 and x2 (inclusive) are removed from the function.
Note: alpha, midpoint, and sharpness values need to be between 0 and 1.0 (inclusive) Return the index of the point x1 (0 based), or -1 on error
vtkm::Int32 vtkm::cont::ColorTable::AddSegmentHSV | ( | vtkm::Float64 | x1, |
const vtkm::Vec3f_32 & | hsv1, | ||
vtkm::Float64 | x2, | ||
const vtkm::Vec3f_32 & | hsv2 | ||
) |
Add a line segment to the color function.
All points which lay between x1 and x2 (inclusive) are removed from the function.
Note: hsv1, and hsv2 values need to be between 0 and 1.0 (inclusive) Return the index of the point x1 (0 based), or -1 on error
void vtkm::cont::ColorTable::Clear | ( | ) |
Remove all existing values in both color and alpha tables.
Does not remove the clamping, below, and above range state or colors.
void vtkm::cont::ColorTable::ClearAlpha | ( | ) |
Remove only alpha table values.
void vtkm::cont::ColorTable::ClearColors | ( | ) |
Remove only color table values.
bool vtkm::cont::ColorTable::FillColorTableFromDataPointer | ( | vtkm::Int32 | n, |
const vtkm::Float32 * | ptr | ||
) |
Fill the Color table from a vtkm::Float32 pointer.
The vtkm::Float64 pointer is required to have the layout out of [X1, R1, G1, B1, X2, R2, G2, B2, ..., Xn, Rn, Gn, Bn] where n is the number of nodes. This will remove any existing color control points.
Note: n represents the length of the array, so ( n/4 == number of control points )
Note: This is provided as a interoperability method with VTK Will return false and not modify anything if n is <= 0 or ptr == nullptr
bool vtkm::cont::ColorTable::FillColorTableFromDataPointer | ( | vtkm::Int32 | n, |
const vtkm::Float64 * | ptr | ||
) |
Fill the Color table from a vtkm::Float64 pointer.
The vtkm::Float64 pointer is required to have the layout out of [X1, R1, G1, B1, X2, R2, G2, B2, ..., Xn, Rn, Gn, Bn] where n is the number of nodes. This will remove any existing color control points.
Note: n represents the length of the array, so ( n/4 == number of control points )
Note: This is provided as a interoperability method with VTK Will return false and not modify anything if n is <= 0 or ptr == nullptr
bool vtkm::cont::ColorTable::FillOpacityTableFromDataPointer | ( | vtkm::Int32 | n, |
const vtkm::Float32 * | ptr | ||
) |
Fill the Opacity table from a vtkm::Float32 pointer.
The vtkm::Float32 pointer is required to have the layout out of [X1, A1, M1, S1, X2, A2, M2, S2, ..., Xn, An, Mn, Sn] where n is the number of nodes. The Xi values represent the value to map, the Ai values represent alpha (opacity) value, the Mi values represent midpoints, and the Si values represent sharpness. Use 0.5 for midpoint and 0.0 for sharpness to have linear interpolation of the alpha.
This will remove any existing opacity control points.
Note: n represents the length of the array, so ( n/4 == number of control points )
Will return false and not modify anything if n is <= 0 or ptr == nullptr
bool vtkm::cont::ColorTable::FillOpacityTableFromDataPointer | ( | vtkm::Int32 | n, |
const vtkm::Float64 * | ptr | ||
) |
Fill the Opacity table from a vtkm::Float64 pointer.
The vtkm::Float64 pointer is required to have the layout out of [X1, A1, M1, S1, X2, A2, M2, S2, ..., Xn, An, Mn, Sn] where n is the number of nodes. The Xi values represent the value to map, the Ai values represent alpha (opacity) value, the Mi values represent midpoints, and the Si values represent sharpness. Use 0.5 for midpoint and 0.0 for sharpness to have linear interpolation of the alpha.
This will remove any existing opacity control points.
Note: n represents the length of the array, so ( n/4 == number of control points )
Will return false and not modify anything if n is <= 0 or ptr == nullptr
const vtkm::Vec3f_32& vtkm::cont::ColorTable::GetAboveRangeColor | ( | ) | const |
const vtkm::Vec3f_32& vtkm::cont::ColorTable::GetBelowRangeColor | ( | ) | const |
bool vtkm::cont::ColorTable::GetClamping | ( | ) | const |
vtkm::ColorSpace vtkm::cont::ColorTable::GetColorSpace | ( | ) | const |
vtkm::Id vtkm::cont::ColorTable::GetModifiedCount | ( | ) | const |
Returns the modified count for changes of the color table.
The ModifiedCount
of the color table starts at 1 and gets incremented every time a change is made to the color table. The modified count allows consumers of a shared color table to keep track if the color table has been modified since the last time they used it. This is important for consumers that need to sample the color table. You only want to resample the color table if changes have been made.
const std::string& vtkm::cont::ColorTable::GetName | ( | ) | const |
const vtkm::Vec3f_32& vtkm::cont::ColorTable::GetNaNColor | ( | ) | const |
vtkm::Int32 vtkm::cont::ColorTable::GetNumberOfPoints | ( | ) | const |
Returns the number of points in the color function.
vtkm::Int32 vtkm::cont::ColorTable::GetNumberOfPointsAlpha | ( | ) | const |
Returns the number of points in the alpha function.
bool vtkm::cont::ColorTable::GetPoint | ( | vtkm::Int32 | index, |
vtkm::Vec4f_64 & | |||
) | const |
Get the location, and rgb information for an existing point in the opacity function.
Note: components 1-3 are rgb and will have values between 0 and 1.0 (inclusive) Return the index of the point (0 based), or -1 on error.
bool vtkm::cont::ColorTable::GetPointAlpha | ( | vtkm::Int32 | index, |
vtkm::Vec4f_64 & | |||
) | const |
Get the location, alpha, midpoint and sharpness information for an existing point in the opacity function.
Note: alpha, midpoint, and sharpness values all will be between 0 and 1.0 (inclusive) Return the index of the point (0 based), or -1 on error.
|
static |
Returns the name of all preset color tables.
This list will include all presets defined in vtkm::cont::ColorTable::Preset and could include extras as well.
const vtkm::Range& vtkm::cont::ColorTable::GetRange | ( | ) | const |
Returns min and max position of all function points.
bool vtkm::cont::ColorTable::LoadPreset | ( | const std::string & | name | ) |
Load a preset color table.
Removes all existing all values in both color and alpha tables, and will reset the NaN Color if the color table has that information. Will not modify clamping, below, and above range state.
Note: Names are case insensitive
Currently supports the following color tables: "Default" "Cool to Warm" "Cool to Warm Extended" "Viridis" "Inferno" "Plasma" "Black-Body Radiation" "X Ray" "Green" "Black - Blue - White" "Blue to Orange" "Gray to Red" "Cold and Hot" "Blue - Green - Orange" "Yellow - Gray - Blue" "Rainbow Uniform" "Jet" "Rainbow Desaturated"
bool vtkm::cont::ColorTable::LoadPreset | ( | vtkm::cont::ColorTable::Preset | preset | ) |
ColorTable vtkm::cont::ColorTable::MakeDeepCopy | ( | ) |
Make a deep copy of the current color table.
The ColorTable is implemented so that all stack based copies are 'shallow' copies. This means that they all alter the same internal instance. But sometimes you need to make an actual fully independent copy.
|
default |
vtkm::exec::ColorTable vtkm::cont::ColorTable::PrepareForExecution | ( | vtkm::cont::DeviceAdapterId | deviceId, |
vtkm::cont::Token & | token | ||
) | const |
returns a virtual object pointer of the exec color table
This pointer is only valid as long as the ColorTable is unmodified
bool vtkm::cont::ColorTable::RemovePoint | ( | vtkm::Float64 | x | ) |
Remove the Color function point that exists at exactly x.
Return true if the point x exists and has been removed
bool vtkm::cont::ColorTable::RemovePoint | ( | vtkm::Int32 | index | ) |
Remove the Color function point n.
Return true if n >= 0 && n < GetNumberOfPoints
bool vtkm::cont::ColorTable::RemovePointAlpha | ( | vtkm::Float64 | x | ) |
Remove the Opacity function point that exists at exactly x.
Return true if the point x exists and has been removed
bool vtkm::cont::ColorTable::RemovePointAlpha | ( | vtkm::Int32 | index | ) |
Remove the Opacity function point n.
Return true if n >= 0 && n < GetNumberOfPointsAlpha
void vtkm::cont::ColorTable::RescaleToRange | ( | const vtkm::Range & | range | ) |
Rescale the color and opacity transfer functions to match the input range.
void vtkm::cont::ColorTable::ReverseAlpha | ( | ) |
Reverse the alpha, mid, and sharp values inside the opacity table.
Note: To keep the shape correct the mid and sharp values of the last node are not included in the reversal
void vtkm::cont::ColorTable::ReverseColors | ( | ) |
Reverse the rgb values inside the color table.
bool vtkm::cont::ColorTable::Sample | ( | vtkm::Int32 | numSamples, |
vtkm::cont::ArrayHandle< vtkm::Vec3ui_8 > & | colors, | ||
vtkm::Float64 | tolerance = 0.002 |
||
) | const |
generate RGB colors using regular spaced samples along the range.
Will use the current range of the color table to generate evenly spaced values using either vtkm::Float32 or vtkm::Float64 space. Will use vtkm::Float32 space when the difference between the vtkm::Float32 and vtkm::Float64 values when the range is within vtkm::Float32 space and the following are within a tolerance:
Note: This will return false if the number of samples is less than 2
bool vtkm::cont::ColorTable::Sample | ( | vtkm::Int32 | numSamples, |
vtkm::cont::ArrayHandle< vtkm::Vec4ui_8 > & | colors, | ||
vtkm::Float64 | tolerance = 0.002 |
||
) | const |
generate RGBA colors using regular spaced samples along the range.
Will use the current range of the color table to generate evenly spaced values using either vtkm::Float32 or vtkm::Float64 space. Will use vtkm::Float32 space when the difference between the vtkm::Float32 and vtkm::Float64 values when the range is within vtkm::Float32 space and the following are within a tolerance:
Note: This will return false if the number of samples is less than 2
bool vtkm::cont::ColorTable::Sample | ( | vtkm::Int32 | numSamples, |
vtkm::cont::ColorTableSamplesRGB & | samples, | ||
vtkm::Float64 | tolerance = 0.002 |
||
) | const |
generate a sample lookup table using regular spaced samples along the range.
Will use the current range of the color table to generate evenly spaced values using either vtkm::Float32 or vtkm::Float64 space. Will use vtkm::Float32 space when the difference between the vtkm::Float32 and vtkm::Float64 values when the range is within vtkm::Float32 space and the following are within a tolerance:
Note: This will return false if the number of samples is less than 2
bool vtkm::cont::ColorTable::Sample | ( | vtkm::Int32 | numSamples, |
vtkm::cont::ColorTableSamplesRGBA & | samples, | ||
vtkm::Float64 | tolerance = 0.002 |
||
) | const |
generate RGB colors using regular spaced samples along the range.
Will use the current range of the color table to generate evenly spaced values using either vtkm::Float32 or vtkm::Float64 space. Will use vtkm::Float32 space when the difference between the vtkm::Float32 and vtkm::Float64 values when the range is within vtkm::Float32 space and the following are within a tolerance:
Note: This will return false if the number of samples is less than 2
void vtkm::cont::ColorTable::SetAboveRangeColor | ( | const vtkm::Vec3f_32 & | c | ) |
Color to use when clamping is disabled for any value that is above the given range.
Default value is {0,0,0}
void vtkm::cont::ColorTable::SetBelowRangeColor | ( | const vtkm::Vec3f_32 & | c | ) |
Color to use when clamping is disabled for any value that is below the given range.
Default value is {0,0,0}
void vtkm::cont::ColorTable::SetClamping | ( | bool | state | ) |
|
inline |
|
inline |
If clamping is disabled values that lay out side the color table range are colored based on Below and Above settings.
By default clamping is enabled
void vtkm::cont::ColorTable::SetColorSpace | ( | vtkm::ColorSpace | space | ) |
void vtkm::cont::ColorTable::SetName | ( | const std::string & | name | ) |
void vtkm::cont::ColorTable::SetNaNColor | ( | const vtkm::Vec3f_32 & | c | ) |
|
private |
vtkm::Int32 vtkm::cont::ColorTable::UpdatePoint | ( | vtkm::Int32 | index, |
const vtkm::Vec4f_64 & | |||
) |
Update the location, and rgb information for an existing point in the color function.
If the location value for the index is modified the point is removed from the function and re-inserted in the proper sorted location.
Note: components 1-3 are rgb and must have values between 0 and 1.0 (inclusive). Return the new index of the updated point (0 based), or -1 on error.
vtkm::Int32 vtkm::cont::ColorTable::UpdatePointAlpha | ( | vtkm::Int32 | index, |
const vtkm::Vec4f_64 & | |||
) |
Update the location, alpha, midpoint and sharpness information for an existing point in the opacity function.
If the location value for the index is modified the point is removed from the function and re-inserted in the proper sorted location
Note: alpha, midpoint, and sharpness values need to be between 0 and 1.0 (inclusive) Return the new index of the updated point (0 based), or -1 on error.
|
private |