iRoCS Toolbox  1.1.0
Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Slots | Protected Attributes
VisualizationChannelSpecs Class Reference

#include <VisualizationChannelSpecs.hh>

Inheritance diagram for VisualizationChannelSpecs:
Collaboration diagram for VisualizationChannelSpecs:

Public Types

enum  ChannelType {
  Data = 0x0001, Visualization = 0x0002, RGB = 0x0004, Annotation = 0x0008,
  SplineCurve = 0x0010, IRoCS = 0x0020, IRoCSSCT = 0x0040
}
 

Public Slots

void normalizeIndexRange ()
 
void revalidate () override
 Reset the channel shape, element size, transformation and bounding box from the underlying data. More...
 
void setAlpha (float alpha)
 
void setFillValue (int value)
 Set the value for subsequent flood fill operations. More...
 
void setHasNewData (bool hasNewData)
 
void setIcon (QIcon const &icon)
 
void setName (std::string const &name)
 
void setTransformation (blitz::TinyMatrix< double, 4, 4 > const &transformation) override
 
void setUpdatesEnabled (bool enable)
 Enables/Disables cache updates for this channel. More...
 
void setVisible (bool visible)
 
void update ()
 Explicitely trigger a cache update for all associated renderers. More...
 

Signals

void boundingBoxChanged (blitz::TinyVector< double, 3 > const &lowerBoundUm, blitz::TinyVector< double, 3 > const &upperBoundUm)
 
void iconChanged ()
 
void nameChanged ()
 
void transformationChanged ()
 
void viewChanged ()
 This signal is emitted whenever the contents or visualization of the channel are altered and an update of the views is required to reflect these changes. More...
 

Public Member Functions

 VisualizationChannelSpecs (atb::Array< int, 3 > *data, MultiChannelModel *model=NULL, bool sign=false, int bitDepth=16)
 
 ~VisualizationChannelSpecs ()
 
ChannelSpecsRendereraddRenderer (ViewWidget *view)
 
float alpha () const
 
int bitDepth () const
 
QWidget * channelControlWidget () const
 
ChannelSpecs::ChannelType channelType () const override
 
ColorMap const & colorMap () const
 
ColorMapcolorMap ()
 
atb::Array< int, 3 > const * data () const
 
atb::Array< int, 3 > * data ()
 
bool dataChanged () const
 Get the data changed flag. More...
 
virtual blitz::TinyVector< double, 3 > const & elementSizeUm () const
 
int fillValue () const
 Get the value for subsequent flood fill operations. More...
 
void floodFill (blitz::TinyVector< double, 3 > const &positionUm, bool mergeNeighboringSegments=false)
 Apply a flood fill operation at the given world coordinates in micrometers. More...
 
bool hasNewData () const
 
QIcon icon () const
 
int & labelAt (blitz::TinyVector< double, 3 > const &positionUm)
 Get the integer label at the given coordinates relative to the upper left corner of the volume. More...
 
int & labelAtVoxel (blitz::TinyVector< ptrdiff_t, 3 > const &pos)
 Get the integer label at the given pixel coordinates relative to the upper left corner of the volume. More...
 
virtual blitz::TinyVector< double, 3 > const & lowerBoundUm () const
 
MultiChannelModelmodel () const
 
std::string name () const
 
void pickFillValue (blitz::TinyVector< double, 3 > const &positionUm)
 Pick the value for subsequent flood fill operations from the current volume. More...
 
void removeRenderer (ViewWidget *view)
 
ChannelSpecsRendererrenderer (ViewWidget *view) const
 
std::map< ViewWidget *, ChannelSpecsRenderer * > const & renderers () const
 
std::map< ViewWidget *, ChannelSpecsRenderer * > & renderers ()
 
void setBitDepth (int bitDepth)
 
void setDataChanged (bool dataChanged)
 Set the data changed flag. More...
 
void setHasNewData ()
 
void setModel (MultiChannelModel *model)
 
void setSign (bool sign)
 
bool sign () const
 
std::string stringValueAt (blitz::TinyVector< double, 3 > const &positionUm) const override
 Get a string representation of the value at the given 3D world coordinates in micrometers. More...
 
virtual blitz::TinyMatrix< double, 4, 4 > const & transformation () const
 
bool updatesEnabled () const
 Check whether cache updates for this channel are enabled. More...
 
virtual blitz::TinyVector< double, 3 > const & upperBoundUm () const
 
float valueAt (blitz::TinyVector< double, 3 > const &positionUm) const override
 Get a float representation of the value at the given 3D world coordinates in micrometers. More...
 
bool visible () const
 

Static Public Member Functions

static VisualizationChannelSpecsload ()
 

Static Public Attributes

static ChannelTypes const Any
 

Protected Slots

void emitUpdateRequest ()
 This function sets the hasNewData flag for this channel to true, to inform the renderers that this channel has new data and possibly cached values are invalid. More...
 

Protected Attributes

blitz::TinyVector< double, 3 > _elementSizeUm
 
bool _hasNewData
 
blitz::TinyVector< double, 3 > _lowerBoundUm
 
bool _oldVisibilityState
 
blitz::TinyMatrix< double, 4, 4 > _originalTransformation
 
std::map< ViewWidget *, ChannelSpecsRenderer * > _renderers
 
blitz::TinyMatrix< double, 4, 4 > _transformation
 
blitz::TinyVector< double, 3 > _upperBoundUm
 
QFormLayout * p_advancedControlLayout
 
QWidget * p_advancedControlWidget
 
DoubleControlElementp_alphaControl
 
QFormLayout * p_channelControlLayout
 
QWidget * p_channelControlWidget
 
MultiChannelModelp_model
 
QToolButton * p_toggleAdvancedButton
 
Double4x4ControlElementp_transformationControl
 
BoolControlElementp_visibleControl
 

Detailed Description

Definition at line 46 of file VisualizationChannelSpecs.hh.

Member Enumeration Documentation

◆ ChannelType

enum ChannelSpecs::ChannelType
inherited
Enumerator
Data 
Visualization 
RGB 
Annotation 
SplineCurve 
IRoCS 
IRoCSSCT 

Definition at line 60 of file ChannelSpecs.hh.

Constructor & Destructor Documentation

◆ VisualizationChannelSpecs()

VisualizationChannelSpecs::VisualizationChannelSpecs ( atb::Array< int, 3 > *  data,
MultiChannelModel model = NULL,
bool  sign = false,
int  bitDepth = 16 
)

◆ ~VisualizationChannelSpecs()

VisualizationChannelSpecs::~VisualizationChannelSpecs ( )

Member Function Documentation

◆ channelType()

ChannelSpecs::ChannelType VisualizationChannelSpecs::channelType ( ) const
overridevirtual

Implements ChannelSpecs.

◆ load()

static VisualizationChannelSpecs* VisualizationChannelSpecs::load ( )
static

◆ data() [1/2]

atb::Array<int,3> const* VisualizationChannelSpecs::data ( ) const

◆ data() [2/2]

atb::Array<int,3>* VisualizationChannelSpecs::data ( )

◆ valueAt()

float VisualizationChannelSpecs::valueAt ( blitz::TinyVector< double, 3 > const &  positionUm) const
overridevirtual

Get a float representation of the value at the given 3D world coordinates in micrometers.

Parameters
positionUmworld coordinates in micrometers
Returns
The value at the given world coordinates

Implements ChannelSpecs.

◆ stringValueAt()

std::string VisualizationChannelSpecs::stringValueAt ( blitz::TinyVector< double, 3 > const &  positionUm) const
overridevirtual

Get a string representation of the value at the given 3D world coordinates in micrometers.

Parameters
positionUmworld coordinates in micrometers
Returns
The value at the given world coordinates as string

Implements ChannelSpecs.

◆ labelAt()

int& VisualizationChannelSpecs::labelAt ( blitz::TinyVector< double, 3 > const &  positionUm)

Get the integer label at the given coordinates relative to the upper left corner of the volume.

The transformation matrix of the channel is ignored!

Parameters
position_umvolume coordinates in micrometers
Returns
The value at the given volume coordinates
Exceptions
std::out_of_rangeif the given coordinates are out-of-bounds

◆ labelAtVoxel()

int& VisualizationChannelSpecs::labelAtVoxel ( blitz::TinyVector< ptrdiff_t, 3 > const &  pos)

Get the integer label at the given pixel coordinates relative to the upper left corner of the volume.

The transformation matrix of the channel is ignored!

Parameters
posvolume coordinates in pixels
Returns
The value at the given volume coordinates
Exceptions
std::out_of_rangeif the given coordinates are out-of-bounds

◆ colorMap() [1/2]

ColorMap const& VisualizationChannelSpecs::colorMap ( ) const

◆ colorMap() [2/2]

ColorMap& VisualizationChannelSpecs::colorMap ( )

◆ pickFillValue()

void VisualizationChannelSpecs::pickFillValue ( blitz::TinyVector< double, 3 > const &  positionUm)

Pick the value for subsequent flood fill operations from the current volume.

Sets fill value to the value at the specified world coordinates of this VisualizationChannelSpecs. Positions will be rounded to the nearest pixel. Out-of-bounds access leaves the fill value unchanged.

Parameters
positionUmThe world coordinates in micrometers to set the fill value from.

◆ fillValue()

int VisualizationChannelSpecs::fillValue ( ) const

Get the value for subsequent flood fill operations.

Returns
The fill value

◆ floodFill()

void VisualizationChannelSpecs::floodFill ( blitz::TinyVector< double, 3 > const &  positionUm,
bool  mergeNeighboringSegments = false 
)

Apply a flood fill operation at the given world coordinates in micrometers.

The position will be rounded to the nearest pixel which will be used as seed. If the given position is out-of-bounds this operation has no effect. If merging of neighboring segments is requested, the 8-neighborhood of adjacent pixels with different label is tested if another region with the same label exists. If so, also fill the ridge pixel with the new label. If this operation succeeds it calls emitUpdateRequest() to inform other views of changes in this VisualizationChannelSpecs.

Parameters
positionUmThe world coordinates in micrometers in which the flood fill operation is started
mergeNeighboringSegmentsIf true, boundary pixels outside the filled segment will also be filled if they touch another segment with the same label and no segments with different labels are merged

◆ setSign()

void VisualizationChannelSpecs::setSign ( bool  sign)

◆ sign()

bool VisualizationChannelSpecs::sign ( ) const

◆ setBitDepth()

void VisualizationChannelSpecs::setBitDepth ( int  bitDepth)

◆ bitDepth()

int VisualizationChannelSpecs::bitDepth ( ) const

◆ setHasNewData() [1/2]

void VisualizationChannelSpecs::setHasNewData ( )

◆ dataChanged()

bool VisualizationChannelSpecs::dataChanged ( ) const

Get the data changed flag.

This flag indicates that the content of the underlying atb::Array has changed and requires saving.

Returns
The data changed flag

◆ setDataChanged()

void VisualizationChannelSpecs::setDataChanged ( bool  dataChanged)

Set the data changed flag.

This flag indicates that the content of the underlying atb::Array has changed and requires saving. This flag should be cleared (set to false) after saving the dataset.

Parameters
dataChangedThe new data changed flag value

◆ addRenderer()

ChannelSpecsRenderer* VisualizationChannelSpecs::addRenderer ( ViewWidget view)
virtual

Implements ChannelSpecs.

◆ setFillValue

void VisualizationChannelSpecs::setFillValue ( int  value)
slot

Set the value for subsequent flood fill operations.

Parameters
valueThe new fill value

◆ normalizeIndexRange

void VisualizationChannelSpecs::normalizeIndexRange ( )
slot

◆ setTransformation

void VisualizationChannelSpecs::setTransformation ( blitz::TinyMatrix< double, 4, 4 > const &  transformation)
overrideslot

◆ revalidate

void VisualizationChannelSpecs::revalidate ( )
overrideslot

Reset the channel shape, element size, transformation and bounding box from the underlying data.

This method must be called whenever the underlying data were programmatically changed using the direct data access methods. If updates are enabled it will also do cache updates.

◆ setModel()

void ChannelSpecs::setModel ( MultiChannelModel model)
inherited

◆ model()

MultiChannelModel* ChannelSpecs::model ( ) const
inherited

◆ name()

std::string ChannelSpecs::name ( ) const
inherited

◆ icon()

QIcon ChannelSpecs::icon ( ) const
inherited

◆ alpha()

float ChannelSpecs::alpha ( ) const
inherited

◆ visible()

bool ChannelSpecs::visible ( ) const
inherited

◆ hasNewData()

bool ChannelSpecs::hasNewData ( ) const
inherited

◆ lowerBoundUm()

virtual blitz::TinyVector<double,3> const& ChannelSpecs::lowerBoundUm ( ) const
virtualinherited

◆ upperBoundUm()

virtual blitz::TinyVector<double,3> const& ChannelSpecs::upperBoundUm ( ) const
virtualinherited

◆ elementSizeUm()

virtual blitz::TinyVector<double,3> const& ChannelSpecs::elementSizeUm ( ) const
virtualinherited

◆ transformation()

virtual blitz::TinyMatrix<double,4,4> const& ChannelSpecs::transformation ( ) const
virtualinherited

◆ channelControlWidget()

QWidget* ChannelSpecs::channelControlWidget ( ) const
inherited

◆ removeRenderer()

void ChannelSpecs::removeRenderer ( ViewWidget view)
inherited

◆ renderer()

ChannelSpecsRenderer* ChannelSpecs::renderer ( ViewWidget view) const
inherited

◆ renderers() [1/2]

std::map<ViewWidget*,ChannelSpecsRenderer*> const& ChannelSpecs::renderers ( ) const
inherited

◆ renderers() [2/2]

std::map<ViewWidget*,ChannelSpecsRenderer*>& ChannelSpecs::renderers ( )
inherited

◆ updatesEnabled()

bool ChannelSpecs::updatesEnabled ( ) const
inherited

Check whether cache updates for this channel are enabled.

Returns
true if cache updates are enabled, false otherwise

◆ setName

void ChannelSpecs::setName ( std::string const &  name)
slotinherited

◆ setIcon

void ChannelSpecs::setIcon ( QIcon const &  icon)
slotinherited

◆ setAlpha

void ChannelSpecs::setAlpha ( float  alpha)
slotinherited

◆ setVisible

void ChannelSpecs::setVisible ( bool  visible)
slotinherited

◆ setHasNewData [2/2]

void ChannelSpecs::setHasNewData ( bool  hasNewData)
slotinherited

◆ setUpdatesEnabled

void ChannelSpecs::setUpdatesEnabled ( bool  enable)
slotinherited

Enables/Disables cache updates for this channel.

If you programmatically apply many subsequent changes to a channel like automatic marker insertion or property changes, disable cache updates, otherwise each operation triggers a cache update.

Parameters
enabletrue to enable cache updates, false to disable cache updates

◆ update

void ChannelSpecs::update ( )
slotinherited

Explicitely trigger a cache update for all associated renderers.

This is only necessary if updates were disabled and after all changes the cache has to be updated. If updates are disabled a call to this function is a noop.

◆ boundingBoxChanged

void ChannelSpecs::boundingBoxChanged ( blitz::TinyVector< double, 3 > const &  lowerBoundUm,
blitz::TinyVector< double, 3 > const &  upperBoundUm 
)
signalinherited

◆ iconChanged

void ChannelSpecs::iconChanged ( )
signalinherited

◆ nameChanged

void ChannelSpecs::nameChanged ( )
signalinherited

◆ transformationChanged

void ChannelSpecs::transformationChanged ( )
signalinherited

◆ viewChanged

void ChannelSpecs::viewChanged ( )
signalinherited

This signal is emitted whenever the contents or visualization of the channel are altered and an update of the views is required to reflect these changes.

The MultiChannelModel catches this SIGNAL, calls updateCache() and redraw() for all views and clears the hasNewData flag for all channels when the redraw has finished.

◆ emitUpdateRequest

void ChannelSpecs::emitUpdateRequest ( )
protectedslotinherited

This function sets the hasNewData flag for this channel to true, to inform the renderers that this channel has new data and possibly cached values are invalid.

It also saves the current visibility state to _oldVisibilityState and emits a viewChanged() SIGNAL.

Field Documentation

◆ Any

ChannelTypes const ChannelSpecs::Any
staticinherited

Definition at line 70 of file ChannelSpecs.hh.

◆ p_model

MultiChannelModel* ChannelSpecs::p_model
protectedinherited

Definition at line 200 of file ChannelSpecs.hh.

◆ _renderers

std::map<ViewWidget*,ChannelSpecsRenderer*> ChannelSpecs::_renderers
protectedinherited

Definition at line 201 of file ChannelSpecs.hh.

◆ p_channelControlWidget

QWidget* ChannelSpecs::p_channelControlWidget
protectedinherited

Definition at line 202 of file ChannelSpecs.hh.

◆ p_channelControlLayout

QFormLayout* ChannelSpecs::p_channelControlLayout
protectedinherited

Definition at line 203 of file ChannelSpecs.hh.

◆ p_alphaControl

DoubleControlElement* ChannelSpecs::p_alphaControl
protectedinherited

Definition at line 204 of file ChannelSpecs.hh.

◆ p_visibleControl

BoolControlElement* ChannelSpecs::p_visibleControl
protectedinherited

Definition at line 205 of file ChannelSpecs.hh.

◆ p_toggleAdvancedButton

QToolButton* ChannelSpecs::p_toggleAdvancedButton
protectedinherited

Definition at line 207 of file ChannelSpecs.hh.

◆ p_advancedControlWidget

QWidget* ChannelSpecs::p_advancedControlWidget
protectedinherited

Definition at line 208 of file ChannelSpecs.hh.

◆ p_advancedControlLayout

QFormLayout* ChannelSpecs::p_advancedControlLayout
protectedinherited

Definition at line 209 of file ChannelSpecs.hh.

◆ p_transformationControl

Double4x4ControlElement* ChannelSpecs::p_transformationControl
protectedinherited

Definition at line 211 of file ChannelSpecs.hh.

◆ _oldVisibilityState

bool ChannelSpecs::_oldVisibilityState
protectedinherited

Definition at line 213 of file ChannelSpecs.hh.

◆ _hasNewData

bool ChannelSpecs::_hasNewData
protectedinherited

Definition at line 214 of file ChannelSpecs.hh.

◆ _lowerBoundUm

blitz::TinyVector<double,3> ChannelSpecs::_lowerBoundUm
protectedinherited

Definition at line 216 of file ChannelSpecs.hh.

◆ _upperBoundUm

blitz::TinyVector<double,3> ChannelSpecs::_upperBoundUm
protectedinherited

Definition at line 216 of file ChannelSpecs.hh.

◆ _elementSizeUm

blitz::TinyVector<double,3> ChannelSpecs::_elementSizeUm
protectedinherited

Definition at line 216 of file ChannelSpecs.hh.

◆ _originalTransformation

blitz::TinyMatrix<double,4,4> ChannelSpecs::_originalTransformation
protectedinherited

Definition at line 217 of file ChannelSpecs.hh.

◆ _transformation

blitz::TinyMatrix<double,4,4> ChannelSpecs::_transformation
protectedinherited

Definition at line 217 of file ChannelSpecs.hh.


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