the class is responsible for finding smallest metric edge paths on a mesh More...
#include <MREdgePathsBuilder.h>
Classes | |
struct | ReachedVert |
information about just reached vertex (with final metric value) More... | |
Public Member Functions | |
bool | done () const |
returns true if further edge forest growth is impossible | |
float | doneDistance () const |
returns path length till the next candidate vertex or maximum float value if all vertices have been reached | |
const VertPathInfoMap & | vertPathInfoMap () const |
gives read access to the map from vertex to path to it | |
Protected Attributes | |
MR_NO_UNIQUE_ADDRESS MetricToPenalty | metricToPenalty_ |
EdgePathsBuilderT (const MeshTopology &topology, const EdgeMetric &metric) | |
bool | addStart (VertId startVert, float startMetric) |
ReachedVert | reachNext () |
bool | addOrgRingSteps (const ReachedVert &rv) |
ReachedVert | growOneEdge () |
the same as reachNext() + addOrgRingSteps() | |
const VertPathInfo * | getVertInfo (VertId v) const |
returns one element from the map (or nullptr if the element is missing) | |
EdgePath | getPathBack (VertId backpathStart) const |
returns the path in the forest from given vertex to one of start vertices | |
the class is responsible for finding smallest metric edge paths on a mesh
MR::EdgePathsBuilderT< MetricToPenalty >::EdgePathsBuilderT | ( | const MeshTopology & | topology, |
const EdgeMetric & | metric ) |
bool MR::EdgePathsBuilderT< MetricToPenalty >::addOrgRingSteps | ( | const ReachedVert & | rv | ) |
adds steps for all origin ring edges of the reached vertex; returns true if at least one step was added
bool MR::EdgePathsBuilderT< MetricToPenalty >::addStart | ( | VertId | startVert, |
float | startMetric ) |
compares proposed metric with best value known for startVert; if proposed metric is smaller then adds it in the queue and returns true
|
inline |
returns true if further edge forest growth is impossible
|
inline |
returns path length till the next candidate vertex or maximum float value if all vertices have been reached
EdgePath MR::EdgePathsBuilderT< MetricToPenalty >::getPathBack | ( | VertId | backpathStart | ) | const |
returns the path in the forest from given vertex to one of start vertices
const VertPathInfo * MR::EdgePathsBuilderT< MetricToPenalty >::getVertInfo | ( | VertId | v | ) | const |
returns one element from the map (or nullptr if the element is missing)
auto MR::EdgePathsBuilderT< MetricToPenalty >::growOneEdge | ( | ) |
the same as reachNext() + addOrgRingSteps()
auto MR::EdgePathsBuilderT< MetricToPenalty >::reachNext | ( | ) |
include one more vertex in the final forest, returning vertex-info for the newly reached vertex; returns invalid VertId in v-field if no more vertices left
|
inline |
gives read access to the map from vertex to path to it
|
protected |