Inviwo 0.9.12-pre
Inviwo documentation
Loading...
Searching...
No Matches
inviwo::TransferFunction Class Reference

data structure for holding 1D transfer function data More...

#include <inviwo/core/datastructures/transferfunction.h>

+ Inheritance diagram for inviwo::TransferFunction:

Public Member Functions

TransferFunctionoperator= (const TransferFunction &rhs)=default
 
TransferFunctionoperator= (TransferFunction &&rhs) noexcept=default
 
vec4 sample (double v) const
 
vec4 sample (float v) const
 
 TransferFunction (const std::vector< TFPrimitiveData > &values)
 
 TransferFunction (const std::vector< TFPrimitiveData > &values, PrimitiveSetMode type)
 
 TransferFunction (const TransferFunction &rhs)=default
 
 TransferFunction (TransferFunction &&rhs) noexcept=default
 
- Public Member Functions inherited from inviwo::TFPrimitiveSet
TFPrimitiveadd (const dvec2 &pos)
 
void add (const std::vector< TFPrimitiveData > &primitives)
 
TFPrimitiveadd (const TFPrimitive &primitive)
 
TFPrimitiveadd (const TFPrimitiveData &data)
 
TFPrimitiveadd (double pos, const vec4 &color)
 
TFPrimitiveadd (double pos, double alpha)
 
TFPrimitiveback ()
 
const TFPrimitiveback () const
 
iterator begin ()
 
const_iterator begin () const
 
void beginBulkUpdate ()
 
const_iterator cbegin () const
 
const_iterator cend () const
 
void clear ()
 
bool contains (const TFPrimitive *primitive) const
 
virtual void deserialize (Deserializer &d) override
 
bool empty () const
 
iterator end ()
 
const_iterator end () const
 
void endBulkUpdate ()
 
TFPrimitivefront ()
 
const TFPrimitivefront () const
 
std::vector< TFPrimitiveDataget () const
 
TFPrimitiveget (size_t i)
 
const TFPrimitiveget (size_t i) const
 
std::vector< vec4 > getColors () const
 
PrimitiveSetMode getMode () const
 
std::vector< double > getPositions () const
 
std::vector< float > getPositionsf () const
 
dvec2 getRange () const
 
std::vector< TFPrimitiveDatagetUnsorted () const
 
std::pair< std::vector< double >, std::vector< vec4 > > getVectors () const
 
std::pair< std::vector< float >, std::vector< vec4 > > getVectorsf () const
 
void interpolateAndStoreColors (std::span< vec4 > data) const
 
TFPrimitiveSetoperator= (const TFPrimitiveSet &rhs)
 
TFPrimitiveSetoperator= (TFPrimitiveSet &&rhs) noexcept
 
bool operator== (const std::vector< TFPrimitiveData > &rhs) const
 
TFPrimitiveoperator[] (size_t i)
 
const TFPrimitiveoperator[] (size_t i) const
 
bool remove (const TFPrimitive &primitive)
 
virtual void serialize (Serializer &s) const override
 
template<std::input_iterator Iter, std::sentinel_for< Iter > Sentinel>
requires std::convertible_to<std::iter_reference_t<Iter>, TFPrimitiveData>
void set (Iter sbegin, Sentinel send)
 
template<std::ranges::input_range R>
requires std::convertible_to<std::ranges::range_reference_t<R>, TFPrimitiveData>
void set (R range)
 
void setMode (PrimitiveSetMode mode)
 
void setMode (PrimitiveSetMode mode, const DataMapper &dm)
 
void setPosition (std::span< TFPrimitive * > primitives, double pos)
 
size_t size () const
 
 TFPrimitiveSet (const std::vector< TFPrimitiveData > &values={}, PrimitiveSetMode mode=PrimitiveSetMode::Relative)
 
 TFPrimitiveSet (const TFPrimitiveSet &rhs)
 
 TFPrimitiveSet (TFPrimitiveSet &&rhs) noexcept=default
 
- Public Member Functions inherited from inviwo::Observable< TFPrimitiveSetObserver >
void addObserver (TFPrimitiveSetObserver *observer)
 
bool isObservedBy (TFPrimitiveSetObserver *observer) const
 
 Observable (const Observable< TFPrimitiveSetObserver > &other)
 
 Observable (Observable< TFPrimitiveSetObserver > &&other) noexcept
 
Observable< TFPrimitiveSetObserver > & operator= (const Observable< TFPrimitiveSetObserver > &other)
 
Observable< TFPrimitiveSetObserver > & operator= (Observable< TFPrimitiveSetObserver > &&other) noexcept
 
void removeObserver (TFPrimitiveSetObserver *observer)
 
virtual void startBlockingNotifications () override final
 
virtual void stopBlockingNotifications () override final
 
- Public Member Functions inherited from inviwo::Observer
 Observer (const Observer &other)
 
 Observer (Observer &&other)
 
Observeroperator= (const Observer &other)
 
Observeroperator= (Observer &&other)
 
void removeObservation (ObservableInterface *observable)
 
void removeObservations ()
 
virtual ~Observer ()
 

Static Public Member Functions

static TransferFunction load (const std::filesystem::path &path)
 
static void save (const TransferFunction &tf, const std::filesystem::path &path)
 
static std::vector< TFPrimitiveDatasimplify (const std::vector< TFPrimitiveData > &points, double delta=0.01)
 

Protected Member Functions

virtual std::string_view serializationItemKey () const override
 
virtual std::string_view serializationKey () const override
 
- Protected Member Functions inherited from inviwo::TFPrimitiveSet
TFPrimitiveadd (std::unique_ptr< TFPrimitive > primitive)
 
vec4 interpolateColor (double t) const
 
virtual void onTFPrimitiveChange (const TFPrimitive &p) override
 
bool remove (std::vector< std::unique_ptr< TFPrimitive > >::iterator it)
 
void sort ()
 
void verifyPoint (const TFPrimitive &primitive) const
 
void verifyPoint (const TFPrimitiveData &primitive) const
 
void verifyPoint (double pos) const
 
- Protected Member Functions inherited from inviwo::TFPrimitiveSetObservable
void notifyTFBeginBulkUpdate (const TFPrimitiveSet &set)
 
void notifyTFEndBulkUpdate (const TFPrimitiveSet &set)
 
void notifyTFModeChanged (const TFPrimitiveSet &set, PrimitiveSetMode mode)
 
void notifyTFPrimitiveAdded (const TFPrimitiveSet &set, TFPrimitive &p)
 
void notifyTFPrimitiveChanged (const TFPrimitiveSet &set, const TFPrimitive &p)
 
void notifyTFPrimitiveRemoved (const TFPrimitiveSet &set, TFPrimitive &p)
 
- Protected Member Functions inherited from inviwo::Observable< TFPrimitiveSetObserver >
void forEachObserver (C callback)
 
- Protected Member Functions inherited from inviwo::ObservableInterface
void addObservationHelper (Observer *observer)
 
void removeObservationHelper (Observer *observer)
 
- Protected Member Functions inherited from inviwo::Observer
void addObservation (ObservableInterface *observable)
 

Friends

IVW_CORE_API bool operator!= (const TransferFunction &lhs, const TransferFunction &rhs)
 
IVW_CORE_API bool operator== (const TransferFunction &lhs, const TransferFunction &rhs)
 

Additional Inherited Members

- Public Types inherited from inviwo::TFPrimitiveSet
using const_iterator
 
using const_transform_t = const TFPrimitive& (*)(const TFPrimitive*)
 
using iterator
 
using transform_t = TFPrimitive& (*)(TFPrimitive*)
 
- Protected Attributes inherited from inviwo::TFPrimitiveSet
std::vector< TFPrimitive * > sorted_
 
std::vector< std::unique_ptr< TFPrimitive > > values_
 
- Protected Attributes inherited from inviwo::Observer
std::unordered_set< ObservableInterface * > observables_
 

Detailed Description

data structure for holding 1D transfer function data

Member Function Documentation

◆ sample() [1/2]

vec4 inviwo::TransferFunction::sample ( double v) const

Sample the transfer function at position v and return the respective color and opacity (rgba). The range of the transfer function is [0,1].

Parameters
vsampling position, if v is outside the range [0,1] it is clamped to [0,1]
Returns
color and opacity at position v

◆ sample() [2/2]

vec4 inviwo::TransferFunction::sample ( float v) const

Sample the transfer function at position v and return the respective color and opacity (rgba). The range of the transfer function is [0,1].

Parameters
vsampling position, if v is outside the range [0,1] it is clamped to [0,1]
Returns
color and opacity at position v

◆ serializationItemKey()

virtual std::string_view inviwo::TransferFunction::serializationItemKey ( ) const
overrideprotectedvirtual

Reimplemented from inviwo::TFPrimitiveSet.

◆ serializationKey()

virtual std::string_view inviwo::TransferFunction::serializationKey ( ) const
overrideprotectedvirtual

Reimplemented from inviwo::TFPrimitiveSet.

◆ simplify()

static std::vector< TFPrimitiveData > inviwo::TransferFunction::simplify ( const std::vector< TFPrimitiveData > & points,
double delta = 0.01 )
static

Simplify a vector of TF points by removing points that can be replaced by interpolating between the previous and the next point, as long as the resulting error is less then delta. the error is the absolute maximal component wise error at the point to be removed.


The documentation for this class was generated from the following file: