TTK
|
TTK processing package for the computation of edge-based integral lines of the gradient of an input scalar field defined on a PL manifold. More...
#include <IntegralLines.h>
Public Member Functions | |
IntegralLines () | |
~IntegralLines () override | |
template<class triangulationType = ttk::AbstractTriangulation> | |
int | execute (triangulationType *triangulation) |
template<class triangulationType = ttk::AbstractTriangulation> | |
void | computeIntegralLine (const triangulationType *triangulation, ttk::intgl::IntegralLine *integralLine, const ttk::SimplexId *offsets) const |
Computes the integral line starting at the vertex of global id seedIdentifier. | |
template<class triangulationType > | |
void | createTask (const triangulationType *triangulation, std::vector< ttk::intgl::IntegralLine * > &chunkIntegralLine, const ttk::SimplexId *offsets, int nbElement) const |
Create an OpenMP task that contains the computation of nbElement integral lines. | |
template<class triangulationType > | |
void | prepareForTask (const triangulationType *triangulation, std::vector< ttk::intgl::IntegralLine * > &chunkIntegralLine, int startingIndex, int nbElement, std::vector< SimplexId > *seeds) const |
Initializes the three attributes of an integral line: the global id of its seed, its trajectory, and the distances of its points with regards to its seed. Then stores the pointers to those objects in chunkIntegralLine to use it for task creation. | |
void | setVertexNumber (const SimplexId &vertexNumber) |
void | setSeedNumber (const SimplexId &seedNumber) |
void | setDirection (int direction) |
void | findNextVertex (ttk::SimplexId &vnext, ttk::SimplexId &fnext, std::vector< ttk::SimplexId > &component, const SimplexId *offsets) const |
Finds the vertex of highest or lowest offsets (depending on the direction of the integral line) in the component vector. | |
int | preconditionTriangulation (ttk::AbstractTriangulation *triangulation) |
void | setInputScalarField (void *data) |
void | setInputOffsets (const SimplexId *const data) |
void | setVertexIdentifierScalarField (std::vector< SimplexId > *const data) |
void | setOutputIntegralLines (std::vector< ttk::ArrayLinkedList< ttk::intgl::IntegralLine, INTEGRAL_LINE_TABULAR_SIZE > > *integralLines) |
void | setChunkSize (int size) |
void | buildScalarFieldCriticalPoints () |
template<class triangulationType > | |
void | prepareForTask (const triangulationType *ttkNotUsed(triangulation), std::vector< ttk::intgl::IntegralLine * > &chunkIntegralLine, int startingIndex, int nbElement, std::vector< SimplexId > *seeds) const |
![]() | |
Debug () | |
~Debug () override | |
virtual int | setDebugLevel (const int &debugLevel) |
int | setWrapper (const Wrapper *wrapper) override |
int | printMsg (const std::string &msg, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const std::vector< std::string > &msgs, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printErr (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const |
int | printWrn (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const |
int | printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const double &memory, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const double &time, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const std::vector< std::vector< std::string > > &rows, const debug::Priority &priority=debug::Priority::INFO, const bool hasHeader=true, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const |
int | printMsg (const debug::Separator &separator, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const |
void | setDebugMsgPrefix (const std::string &prefix) |
![]() | |
BaseClass () | |
virtual | ~BaseClass ()=default |
int | getThreadNumber () const |
virtual int | setThreadNumber (const int threadNumber) |
Protected Attributes | |
ttk::SimplexId | vertexNumber_ |
ttk::SimplexId | seedNumber_ |
ttk::SimplexId | chunkSize_ |
ttk::SimplexId | direction_ |
void * | inputScalarField_ |
const ttk::SimplexId * | inputOffsets_ |
std::vector< ttk::SimplexId > * | vertexIdentifierScalarField_ |
std::vector< ttk::ArrayLinkedList< ttk::intgl::IntegralLine, INTEGRAL_LINE_TABULAR_SIZE > > * | outputIntegralLines_ |
ttk::ScalarFieldCriticalPoints | scalarFieldCriticalPoints_ |
bool | EnableForking {false} |
![]() | |
int | debugLevel_ |
std::string | debugMsgPrefix_ |
std::string | debugMsgNamePrefix_ |
![]() | |
bool | lastObject_ |
int | threadNumber_ |
Wrapper * | wrapper_ |
Additional Inherited Members | |
![]() | |
int | printMsgInternal (const std::string &msg, const std::string &right, const std::string &filler, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsgInternal (const std::string &msg, const debug::Priority &priority, const debug::LineMode &lineMode, std::ostream &stream=std::cout) const |
int | welcomeMsg (std::ostream &stream) |
![]() | |
static COMMON_EXPORTS debug::LineMode | lastLineMode = ttk::debug::LineMode::NEW |
TTK processing package for the computation of edge-based integral lines of the gradient of an input scalar field defined on a PL manifold.
Given a list of sources, the package produces forward or backward integral lines along the edges of the input triangulation.
Online examples:\n
Definition at line 119 of file IntegralLines.h.
IntegralLines::IntegralLines | ( | ) |
Definition at line 6 of file IntegralLines.cpp.
|
overridedefault |
|
inline |
Definition at line 367 of file IntegralLines.h.
void ttk::IntegralLines::computeIntegralLine | ( | const triangulationType * | triangulation, |
ttk::intgl::IntegralLine * | integralLine, | ||
const ttk::SimplexId * | offsets | ||
) | const |
Computes the integral line starting at the vertex of global id seedIdentifier.
triangulationType |
triangulation | |
integralLine | integral line to compute |
offsets | Order array of the scalar array |
Definition at line 509 of file IntegralLines.h.
void ttk::IntegralLines::createTask | ( | const triangulationType * | triangulation, |
std::vector< ttk::intgl::IntegralLine * > & | chunkIntegralLine, | ||
const ttk::SimplexId * | offsets, | ||
int | nbElement | ||
) | const |
Create an OpenMP task that contains the computation of nbElement integral lines.
triangulationType |
triangulation | |
chunkIntegralLine | integral lines to compute within one task |
offsets | Order array of the scalar array |
nbElement | number of integral lines in chunkIntegralLine |
Definition at line 682 of file IntegralLines.h.
int ttk::IntegralLines::execute | ( | triangulationType * | triangulation | ) |
Definition at line 701 of file IntegralLines.h.
|
inline |
Finds the vertex of highest or lowest offsets (depending on the direction of the integral line) in the component vector.
vnext | identifier of the vertex |
fnext | offset of the vertex |
component | list of identifiers to do the search in |
offsets | Order array of the scalar array |
Definition at line 488 of file IntegralLines.h.
|
inline |
Definition at line 326 of file IntegralLines.h.
void ttk::IntegralLines::prepareForTask | ( | const triangulationType * | triangulation, |
std::vector< ttk::intgl::IntegralLine * > & | chunkIntegralLine, | ||
int | startingIndex, | ||
int | nbElement, | ||
std::vector< SimplexId > * | seeds | ||
) | const |
Initializes the three attributes of an integral line: the global id of its seed, its trajectory, and the distances of its points with regards to its seed. Then stores the pointers to those objects in chunkIntegralLine to use it for task creation.
triangulationType |
triangulation | |
chunkIntegralLine | integral lines to compute within one task |
startingIndex | index of the first seed of seeds to be used to create an integral line and add it to chunkIntegralLine |
nbElement | number of integral lines in chunkIntegralLine |
seeds | starting points of the integral lines to be computed |
void ttk::IntegralLines::prepareForTask | ( | const triangulationType * | ttkNotUsedtriangulation, |
std::vector< ttk::intgl::IntegralLine * > & | chunkIntegralLine, | ||
int | startingIndex, | ||
int | nbElement, | ||
std::vector< SimplexId > * | seeds | ||
) | const |
Definition at line 651 of file IntegralLines.h.
|
inline |
Definition at line 363 of file IntegralLines.h.
|
inline |
Definition at line 187 of file IntegralLines.h.
|
inline |
data
buffer prior to any computation (the VTK wrapper already includes a mechanism to automatically generate such a preconditioned buffer). Definition at line 347 of file IntegralLines.h.
|
inline |
Definition at line 335 of file IntegralLines.h.
|
inline |
Definition at line 356 of file IntegralLines.h.
|
inline |
Definition at line 183 of file IntegralLines.h.
|
inline |
Definition at line 352 of file IntegralLines.h.
|
inline |
Definition at line 179 of file IntegralLines.h.
|
protected |
Definition at line 374 of file IntegralLines.h.
|
protected |
Definition at line 375 of file IntegralLines.h.
|
protected |
Definition at line 383 of file IntegralLines.h.
|
protected |
Definition at line 377 of file IntegralLines.h.
|
protected |
Definition at line 376 of file IntegralLines.h.
|
protected |
Definition at line 381 of file IntegralLines.h.
|
protected |
Definition at line 382 of file IntegralLines.h.
|
protected |
Definition at line 373 of file IntegralLines.h.
|
protected |
Definition at line 378 of file IntegralLines.h.
|
protected |
Definition at line 372 of file IntegralLines.h.