OpenWalnut
1.5.0dev
|
Class performing graph computations for VisiTrace algorithm. More...
#include <WVisiTrace.h>
Public Member Functions | |
WVisiTrace () | |
Simple constructor performing initializations. More... | |
std::vector< WPosition > | getLine () |
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< WPosition > | m_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... | |
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.
WVisiTrace::WVisiTrace | ( | ) |
Simple constructor performing initializations.
Definition at line 40 of file WVisiTrace.cpp.
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.
candidates | candidate 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().
|
private |
Get ids in the vector of getLinearizedNodesRefs from structure of m_candidatePositions.
Definition at line 89 of file WVisiTrace.cpp.
References m_candidatePositions.
Referenced by performDijkstra(), and WVisiTraceTest::testInverseLinearization().
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.
Definition at line 48 of file WVisiTrace.cpp.
References m_curve3D, m_dataChanged, and performVisiTrace().
Referenced by WMPickingDVR::moduleMain(), and WVisiTraceTest::testGetLineOfInitial().
|
private |
Get an vector with reference ids for all nodes.
Definition at line 76 of file WVisiTrace.cpp.
References m_candidatePositions.
Referenced by performDijkstra(), and WVisiTraceTest::testLinearization().
|
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().
|
private |
Optimization resulting in the desired 3D curve (m_curve3D).
Definition at line 269 of file WVisiTrace.cpp.
References performDijkstra().
Referenced by getLine().
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().
|
friend |
Test class needs private access.
Definition at line 43 of file WVisiTrace.h.
|
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().
|
private |
The candidate positions for all rays.
Definition at line 98 of file WVisiTrace.h.
Referenced by addCandidatesForRay(), getInverseLinearizedNodesRefs(), getLinearizedNodesRefs(), performDijkstra(), reset(), WVisiTraceTest::testAddingPositions(), WVisiTraceTest::testInverseLinearization(), WVisiTraceTest::testLinearization(), and WVisiTraceTest::testPerformDijkstraException().
|
private |
The 3D curve computed by VisiTrace.
Definition at line 100 of file WVisiTrace.h.
Referenced by getLine(), performDijkstra(), reset(), and WVisiTraceTest::testPerformDijkstraException().
|
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().