Inviwo  0.9.10.1
Inviwo documentation
inviwo::TransferFunction Class Reference

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

#include <transferfunction.h>

+ Inheritance diagram for inviwo::TransferFunction:

Public Member Functions

 TransferFunction (size_t textureSize=1024)
 
 TransferFunction (const std::vector< TFPrimitiveData > &values, size_t textureSize=1024)
 
 TransferFunction (const std::vector< TFPrimitiveData > &values, TFPrimitiveSetType type, size_t textureSize=1024)
 
 TransferFunction (const TransferFunction &rhs)
 
TransferFunctionoperator= (const TransferFunction &rhs)
 
const LayergetData () const
 
size_t getTextureSize () const
 
size_t getNumPoints () const
 
TFPrimitivegetPoint (size_t i)
 
const TFPrimitivegetPoint (size_t i) const
 
void addPoint (const float &pos, const vec4 &color)
 
void addPoint (const TFPrimitiveData &point)
 
void addPoint (const vec2 &pos)
 
void addPoints (const std::vector< TFPrimitiveData > &points)
 
void addPoint (const vec2 &pos, const vec4 &color)
 
void removePoint (TFPrimitive *dataPoint)
 
void clearPoints ()
 
void setMaskMin (double maskMin)
 
double getMaskMin () const
 
void setMaskMax (double maskMax)
 
double getMaskMax () const
 
void clearMask ()
 
virtual void invalidate () override
 
virtual void serialize (Serializer &s) const override
 
virtual void deserialize (Deserializer &d) override
 
vec4 sample (double v) const
 
vec4 sample (float v) const
 
virtual std::vector< FileExtensiongetSupportedExtensions () const override
 
virtual void save (const std::string &filename, const FileExtension &ext=FileExtension()) const override
 
virtual void load (const std::string &filename, const FileExtension &ext=FileExtension()) override
 
virtual std::string getTitle () const override
 
- Public Member Functions inherited from inviwo::TFPrimitiveSet
 TFPrimitiveSet (const std::vector< TFPrimitiveData > &values={}, TFPrimitiveSetType type=TFPrimitiveSetType::Relative)
 
 TFPrimitiveSet (const TFPrimitiveSet &rhs)
 
 TFPrimitiveSet (TFPrimitiveSet &&rhs)=default
 
TFPrimitiveSetoperator= (const TFPrimitiveSet &rhs)
 
void setType (TFPrimitiveSetType type)
 
TFPrimitiveSetType getType () const
 
dvec2 getRange () const
 
size_t size () const
 
bool empty () const
 
TFPrimitiveoperator[] (size_t i)
 
const TFPrimitiveoperator[] (size_t i) const
 
TFPrimitiveget (size_t i)
 
const TFPrimitiveget (size_t i) const
 
TFPrimitivefront ()
 
const TFPrimitivefront () const
 
TFPrimitiveback ()
 
const TFPrimitiveback () const
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
std::vector< TFPrimitiveDataget () const
 
std::vector< TFPrimitiveDatagetUnsorted () const
 
void set (const_iterator begin, const_iterator end)
 
std::pair< std::vector< double >, std::vector< vec4 > > getVectors () const
 
std::pair< std::vector< float >, std::vector< vec4 > > getVectorsf () const
 
void add (const TFPrimitive &primitive)
 
void add (double pos, const vec4 &color)
 
void add (const dvec2 &pos)
 
void add (const TFPrimitiveData &data)
 
void add (const std::vector< TFPrimitiveData > &primitives)
 
bool remove (const TFPrimitive &primitive)
 
void clear ()
 
void setPosition (const std::vector< TFPrimitive * > primitives, double pos)
 
void setAlpha (const std::vector< TFPrimitive * > primitives, double alpha)
 
void setColor (const std::vector< TFPrimitive * > primitives, const vec3 &color)
 
virtual void onTFPrimitiveChange (const TFPrimitive &p) override
 
void interpolateAndStoreColors (vec4 *dataArray, const size_t size) const
 
void flipPositions (const std::vector< TFPrimitive * > &primitives={})
 
void interpolateAlpha (const std::vector< TFPrimitive * > &primitives={})
 
void equalizeAlpha (const std::vector< TFPrimitive * > &primitives={})
 
- Public Member Functions inherited from inviwo::Observable< TFPrimitiveSetObserver >
 Observable (const Observable< TFPrimitiveSetObserver > &other)
 
 Observable (Observable< TFPrimitiveSetObserver > &&other)
 
Observable< TFPrimitiveSetObserver > & operator= (const Observable< TFPrimitiveSetObserver > &other)
 
Observable< TFPrimitiveSetObserver > & operator= (Observable< TFPrimitiveSetObserver > &&other)
 
void addObserver (TFPrimitiveSetObserver *observer)
 
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= (Observer &&other)
 
Observeroperator= (const Observer &other)
 
virtual ~Observer ()
 
void removeObservation (ObservableInterface *observable)
 
void removeObservations ()
 

Static Public Member Functions

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

Protected Member Functions

void calcTransferValues () const
 
virtual std::string serializationKey () const override
 
virtual std::string serializationItemKey () const override
 
- Protected Member Functions inherited from inviwo::TFPrimitiveSet
void add (std::unique_ptr< TFPrimitive > primitive)
 
bool remove (std::vector< std::unique_ptr< TFPrimitive >>::iterator it)
 
void sort ()
 
vec4 interpolateColor (double t) const
 
- Protected Member Functions inherited from inviwo::TFPrimitiveSetObservable
void notifyTFPrimitiveAdded (TFPrimitive &p)
 
void notifyTFPrimitiveRemoved (TFPrimitive &p)
 
void notifyTFPrimitiveChanged (const TFPrimitive &p)
 
void notifyTFTypeChanged (const TFPrimitiveSet &primitiveSet)
 
- 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

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

Additional Inherited Members

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

Detailed Description

data structure for holding 1D transfer function data

Member Function Documentation

◆ invalidate()

void inviwo::TransferFunction::invalidate ( )
overridevirtual

Notify that the layer data (texture) needs to be updated next time it is requested.

Reimplemented from inviwo::TFPrimitiveSet.

◆ 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

◆ simplify()

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 files: