OpenWalnut  1.5.0dev
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
WVisiTrace Class Reference

Class performing graph computations for VisiTrace algorithm. More...

#include <WVisiTrace.h>

+ Collaboration diagram for WVisiTrace:

Public Member Functions

 WVisiTrace ()
 Simple constructor performing initializations. More...
 
std::vector< WPositiongetLine ()
 Get the final 3D line a vector of WPosition. More...
 
void addCandidatesForRay (const std::vector< std::pair< double, WPosition > > candidates)
 Add candidate positions and corresponding opacity jump values for one viewing ray. More...
 
void reset ()
 Erases all data to be able to start a new VisiTrace computation. More...
 

Private Member Functions

void performVisiTrace ()
 Optimization resulting in the desired 3D curve (m_curve3D). More...
 
std::vector< std::pair< int, int > > getLinearizedNodesRefs () const
 Get an vector with reference ids for all nodes. More...
 
std::vector< std::vector< int > > getInverseLinearizedNodesRefs () const
 Get ids in the vector of getLinearizedNodesRefs from structure of m_candidatePositions. More...
 
void performDijkstra ()
 Create weighted graph and find shortest path from according to VisiTrace. More...
 

Private Attributes

std::vector< std::vector< WPosition > > m_candidatePositions
 The candidate positions for all rays. More...
 
std::vector< std::vector< double > > m_candidateJumps
 The opacity jumps belonging to the intervals of the candidate positions. More...
 
std::vector< WPositionm_curve3D
 The 3D curve computed by VisiTrace. More...
 
bool m_dataChanged
 Indicates whether new data has been added since last VisiTrace computation. More...
 

Friends

class WVisiTraceTest
 Test class needs private access. More...
 

Detailed Description

Class performing graph computations for VisiTrace algorithm.

The algorithm has been published here: http://dx.doi.org/10.2312/PE.EuroVisShort.EuroVisShort2013.091-095

The aim is to draw smooth lines on top visible structures in direct volume renderings.

Definition at line 41 of file WVisiTrace.h.

Constructor & Destructor Documentation

◆ WVisiTrace()

WVisiTrace::WVisiTrace ( )

Simple constructor performing initializations.

Definition at line 40 of file WVisiTrace.cpp.

Member Function Documentation

◆ addCandidatesForRay()

void WVisiTrace::addCandidatesForRay ( const std::vector< std::pair< double, WPosition > >  candidates)

Add candidate positions and corresponding opacity jump values for one viewing ray.

These values are the basis for visiTrace computation.

Parameters
candidatescandidate positions and corresponding opacity jumps

Definition at line 59 of file WVisiTrace.cpp.

References m_candidateJumps, m_candidatePositions, and m_dataChanged.

Referenced by WMPickingDVR::moduleMain(), and WVisiTraceTest::testAddingPositions().

+ Here is the caller graph for this function:

◆ getInverseLinearizedNodesRefs()

std::vector< std::vector< int > > WVisiTrace::getInverseLinearizedNodesRefs ( ) const
private

Get ids in the vector of getLinearizedNodesRefs from structure of m_candidatePositions.

Returns
vector of vectors containing correpsonding ids in linearized vector

Definition at line 89 of file WVisiTrace.cpp.

References m_candidatePositions.

Referenced by performDijkstra(), and WVisiTraceTest::testInverseLinearization().

+ Here is the caller graph for this function:

◆ getLine()

std::vector< WPosition > WVisiTrace::getLine ( )

Get the final 3D line a vector of WPosition.

If data has changed since last call a recomputation will be triggered.

Returns
3D line computed by visitrace.

Definition at line 48 of file WVisiTrace.cpp.

References m_curve3D, m_dataChanged, and performVisiTrace().

Referenced by WMPickingDVR::moduleMain(), and WVisiTraceTest::testGetLineOfInitial().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getLinearizedNodesRefs()

std::vector< std::pair< int, int > > WVisiTrace::getLinearizedNodesRefs ( ) const
private

Get an vector with reference ids for all nodes.

Returns
vector containing pair of indices referencing m_candidatePositions (m_candidateJumps).

Definition at line 76 of file WVisiTrace.cpp.

References m_candidatePositions.

Referenced by performDijkstra(), and WVisiTraceTest::testLinearization().

+ Here is the caller graph for this function:

◆ performDijkstra()

void WVisiTrace::performDijkstra ( )
private

Create weighted graph and find shortest path from according to VisiTrace.

Definition at line 105 of file WVisiTrace.cpp.

References getInverseLinearizedNodesRefs(), getLinearizedNodesRefs(), m_candidateJumps, m_candidatePositions, and m_curve3D.

Referenced by performVisiTrace(), and WVisiTraceTest::testPerformDijkstraException().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ performVisiTrace()

void WVisiTrace::performVisiTrace ( )
private

Optimization resulting in the desired 3D curve (m_curve3D).

Definition at line 269 of file WVisiTrace.cpp.

References performDijkstra().

Referenced by getLine().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ reset()

void WVisiTrace::reset ( )

Erases all data to be able to start a new VisiTrace computation.

Definition at line 274 of file WVisiTrace.cpp.

References m_candidateJumps, m_candidatePositions, m_curve3D, and m_dataChanged.

Referenced by WMPickingDVR::moduleMain().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

◆ WVisiTraceTest

friend class WVisiTraceTest
friend

Test class needs private access.

Definition at line 43 of file WVisiTrace.h.

Member Data Documentation

◆ m_candidateJumps

std::vector< std::vector< double > > WVisiTrace::m_candidateJumps
private

The opacity jumps belonging to the intervals of the candidate positions.

Definition at line 99 of file WVisiTrace.h.

Referenced by addCandidatesForRay(), performDijkstra(), reset(), WVisiTraceTest::testAddingPositions(), and WVisiTraceTest::testPerformDijkstraException().

◆ m_candidatePositions

std::vector< std::vector< WPosition > > WVisiTrace::m_candidatePositions
private

◆ m_curve3D

std::vector< WPosition > WVisiTrace::m_curve3D
private

The 3D curve computed by VisiTrace.

Definition at line 100 of file WVisiTrace.h.

Referenced by getLine(), performDijkstra(), reset(), and WVisiTraceTest::testPerformDijkstraException().

◆ m_dataChanged

bool WVisiTrace::m_dataChanged
private

Indicates whether new data has been added since last VisiTrace computation.

Definition at line 102 of file WVisiTrace.h.

Referenced by addCandidatesForRay(), getLine(), and reset().


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