#include <pushrelabel_non_linear_grid_3D.h>
[NOHEADER] | |
| typedef char | direction_type |
| Direction used to name an edge by the pair (node,direction). | |
| const direction_type | X_MIN_DIR = 1 |
| Direction used to name an edge by the pair (node,direction). | |
| const direction_type | X_MAX_DIR = 2 |
| Direction used to name an edge by the pair (node,direction). | |
| const direction_type | Y_MIN_DIR = 3 |
| Direction used to name an edge by the pair (node,direction). | |
| const direction_type | Y_MAX_DIR = 4 |
| Direction used to name an edge by the pair (node,direction). | |
| const direction_type | Z_MIN_x_min_DIR = 5 |
| Direction used to name an edge by the pair (node,direction). | |
| const direction_type | Z_MIN_x_max_DIR = 6 |
| Direction used to name an edge by the pair (node,direction). | |
| const direction_type | Z_MIN_y_min_DIR = 7 |
| Direction used to name an edge by the pair (node,direction). | |
| const direction_type | Z_MIN_y_max_DIR = 8 |
| Direction used to name an edge by the pair (node,direction). | |
| const direction_type | Z_MAX_x_min_DIR = 9 |
| Direction used to name an edge by the pair (node,direction). | |
| const direction_type | Z_MAX_x_max_DIR = 10 |
| Direction used to name an edge by the pair (node,direction). | |
| const direction_type | Z_MAX_y_min_DIR = 11 |
| Direction used to name an edge by the pair (node,direction). | |
| const direction_type | Z_MAX_y_max_DIR = 12 |
| Direction used to name an edge by the pair (node,direction). | |
[NOHEADER] | |
| typedef char | location_type |
| Position to name a node of coordinate (x;y). | |
| const location_type | CENTER_NODE = 100 |
| Position to name a node of coordinate (x;y). | |
| const location_type | Z_MAX_x_min_NODE = 101 |
| Position to name a node of coordinate (x;y). | |
| const location_type | Z_MAX_x_max_NODE = 102 |
| Position to name a node of coordinate (x;y). | |
| const location_type | Z_MAX_y_min_NODE = 103 |
| Position to name a node of coordinate (x;y). | |
| const location_type | Z_MAX_y_max_NODE = 104 |
| Position to name a node of coordinate (x;y). | |
Public Types | |
| typedef Real | real_type |
| Useful typedef. | |
| typedef Array_3D< bool >::size_type | size_type |
| Useful typedef. | |
| typedef Geometry::Vec3< unsigned int > | position_type |
| Useful typedef. | |
| typedef unsigned int | index_type |
| Useful typedef. | |
| typedef unsigned int | label_type |
| Useful typedef. | |
Public Methods | |
| PushRelabel_non_linear_grid_3D (const Array_3D< real_type > &cost_edge_cap, const Array_3D< bool > &dom, const Array_2D< real_type > &x_derivative_edge_cap, const Array_2D< real_type > &y_derivative_edge_cap, const real_type eps=1e-3) | |
| Constructor. | |
| real_type | max_flow () |
| Compute the maximum flow on the graph. | |
| void | min_cut (Array_2D< size_type > *const cut) const |
| Compute the minimum cut once the maximum flow is known. | |
| void | to_index (const node_type &p, size_type *const i) const |
| Compute an index for all the 3 coordinates to spare space. | |
| void | from_index (node_type *const p, const size_type i) const |
| Reverse transformation of to_index(). | |
| void | neighbors (const node_type &node, node_type *const result, size_type *const n_res) const |
| Gives all the neighbors. | |
| void | adjacent_nodes (const node_type &node, node_type *const result, size_type *const n_res) const |
| Gives the adjacent nodes that are reachable through a non saturated edge. | |
| real_type | edge_capacity (const node_type &from, const direction_type dir) const |
| Gives the max capacity of an edge named by (node,direction). | |
| real_type | edge_flow (const node_type &from, const direction_type dir) const |
| Gives the flow in an edge named by (node,direction). | |
| real_type | edge_residual (const node_type &from, const direction_type dir) const |
| Gives the residual capacity of an edge named by (node,direction). | |
| real_type | node_excess (const node_type &node) const |
| Gives excess water in a node. | |
| void | add_flow (const node_type &from, const direction_type dir, const real_type flow) |
| Adds flow to an edge. | |
| direction_type | direction (const node_type &from, const node_type &to) const |
| Gives the direction of an edge named by (source,target). | |
| label_type | relabel (const node_type &node) |
| relabel step of the algorithm. | |
| void | global_relabel () |
| Global update of the labels. | |
| bool | discharge (const node_type &node) |
| discharge step of the algorithm. | |
| void | add_active_node (const node_type &node) |
| Adds an active node. | |
| void | get_next_node (node_type *const node, bool *const no_more_node) |
| Gets the next node to handle. | |
| bool | is_active (const node_type &node) const |
| Algorithm defined test. | |
| bool | is_admissible (const node_type &from, const node_type &to) const |
| Algorithm defined test. | |
| const label_type & | label (const node_type &node) const |
| Manage the labels. | |
| label_type & | label (const node_type &node) |
| Manage the labels. | |
Public Attributes | |
| bool | DBG_LOGGING |
| const real_type | epsilon |
| Threshold to test zero equality. | |
| size_type | nb_nodes |
| Number of nodes in the graph. | |
| size_type | nb_relabel |
| Number of consecutive relabel steps. | |
| Array_3D< real_type > | cost_edge_capacity |
| Max capacity of the cost edges. | |
| const Array_3D< bool > & | domain |
| Array_2D< size_type > | min_bound |
| Bottom boundary the optimization domain. | |
| Array_2D< size_type > | max_bound |
| Top boundary of the optimization domain. | |
| std::deque< index_type > | active_node_index |
| List of the active nodes. | |
| const node_type | source |
| Source node. | |
| const node_type | target |
| Think node. | |
| Array_2D< real_type > | x_major_derivative_edge_capacity |
| Max capacity of the derivative penalty edges. | |
| Array_2D< real_type > | x_minor_derivative_edge_capacity |
| Max capacity of the derivative penalty edges. | |
| Array_2D< real_type > | y_major_derivative_edge_capacity |
| Max capacity of the derivative penalty edges. | |
| Array_2D< real_type > | y_minor_derivative_edge_capacity |
| Max capacity of the derivative penalty edges. | |
| Array_3D< index_type > | label_CENTER |
| Node labels. | |
| Array_3D< index_type > | label_Z_MAX_x_min |
| Node labels. | |
| Array_3D< index_type > | label_Z_MAX_x_max |
| Node labels. | |
| Array_3D< index_type > | label_Z_MAX_y_min |
| Node labels. | |
| Array_3D< index_type > | label_Z_MAX_y_max |
| Node labels. | |
| Array_3D< real_type > | cost_edge_Z_MAX_x_min_flow |
| Flow in the cost edges. | |
| Array_3D< real_type > | cost_edge_Z_MAX_x_max_flow |
| Flow in the cost edges. | |
| Array_3D< real_type > | cost_edge_Z_MAX_y_min_flow |
| Flow in the cost edges. | |
| Array_3D< real_type > | cost_edge_Z_MAX_y_max_flow |
| Flow in the cost edges. | |
| Array_3D< real_type > | cost_edge_Z_MAX_MAX_x_min_flow |
| Flow in the cost edges. | |
| Array_3D< real_type > | cost_edge_Z_MAX_MAX_x_max_flow |
| Flow in the cost edges. | |
| Array_3D< real_type > | cost_edge_Z_MAX_MAX_y_min_flow |
| Flow in the cost edges. | |
| Array_3D< real_type > | cost_edge_Z_MAX_MAX_y_max_flow |
| Flow in the cost edges. | |
| Array_3D< real_type > | x_major_derivative_edge_flow |
| Flow in the penalty edges. | |
| Array_3D< real_type > | y_major_derivative_edge_flow |
| Flow in the penalty edges. | |
| Array_3D< real_type > | x_minor_derivative_edge_flow |
| Flow in the penalty edges. | |
| Array_3D< real_type > | y_minor_derivative_edge_flow |
| Flow in the penalty edges. | |
| const size_type | x_size |
| Max size of the optimization domain. | |
| const size_type | y_size |
| Max size of the optimization domain. | |
| const size_type | z_size |
| Max size of the optimization domain. | |
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Useful typedef.
|
|
|||||
|
Useful typedef.
|
|
|||||
|
Position to name a node of coordinate (x;y).
|
|
|||||
|
Useful typedef.
|
|
|||||
|
Useful typedef.
|
|
|||||
|
Useful typedef.
|
|
||||||||||||||||||||||||||||
|
Constructor.
You have to provide the consistency value for each voxel in |
|
||||||||||
|
Adds an active node.
|
|
||||||||||||||||||||
|
Adds flow to an edge. No domain check. |
|
||||||||||||||||||||
|
Gives the adjacent nodes that are reachable through a non saturated edge. No domain check. |
|
||||||||||||||||
|
Gives the direction of an edge named by (source,target).
|
|
||||||||||
|
discharge step of the algorithm. true if the operation have been done. |
|
||||||||||||||||
|
Gives the max capacity of an edge named by (node,direction). Pas de vérification pour les bords. |
|
||||||||||||||||
|
Gives the flow in an edge named by (node,direction).
|
|
||||||||||||||||
|
Gives the residual capacity of an edge named by (node,direction).
|
|
||||||||||||||||
|
Reverse transformation of to_index().
|
|
||||||||||||||||
|
Gets the next node to handle.
|
|
|||||||||
|
Global update of the labels.
|
|
||||||||||
|
Algorithm defined test.
|
|
||||||||||||||||
|
Algorithm defined test.
|
|
||||||||||
|
Manage the labels.
|
|
||||||||||
|
Manage the labels.
|
|
|||||||||
|
Compute the maximum flow on the graph.
|
|
||||||||||
|
Compute the minimum cut once the maximum flow is known.
|
|
||||||||||||||||||||
|
Gives all the neighbors. No domain check. |
|
||||||||||
|
Gives excess water in a node.
|
|
||||||||||
|
relabel step of the algorithm.
|
|
||||||||||||||||
|
Compute an index for all the 3 coordinates to spare space.
|
|
|||||
|
List of the active nodes.
|
|
|||||
|
Position to name a node of coordinate (x;y).
|
|
|||||
|
Max capacity of the cost edges.
|
|
|||||
|
Flow in the cost edges. Sign refers to the flow direction. |
|
|||||
|
Flow in the cost edges. Sign refers to the flow direction. |
|
|||||
|
Flow in the cost edges. Sign refers to the flow direction. |
|
|||||
|
Flow in the cost edges. Sign refers to the flow direction. |
|
|||||
|
Flow in the cost edges. Sign refers to the flow direction. |
|
|||||
|
Flow in the cost edges. Sign refers to the flow direction. |
|
|||||
|
Flow in the cost edges. Sign refers to the flow direction. |
|
|||||
|
Flow in the cost edges. Sign refers to the flow direction. |
|
|||||
|
|
|
|||||
|
Definition of the optimization domain. Graph is only defined on this domain. |
|
|||||
|
Threshold to test zero equality.
|
|
|||||
|
Node labels.
|
|
|||||
|
Node labels.
|
|
|||||
|
Node labels.
|
|
|||||
|
Node labels.
|
|
|||||
|
Node labels.
|
|
|||||
|
Top boundary of the optimization domain.
|
|
|||||
|
Bottom boundary the optimization domain.
|
|
|||||
|
Number of nodes in the graph.
|
|
|||||
|
Number of consecutive relabel steps.
|
|
|||||
|
Source node.
|
|
|||||
|
Think node.
|
|
|||||
|
Max capacity of the derivative penalty edges.
|
|
|||||
|
Flow in the penalty edges. Sign refers to the flow direction. |
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Max capacity of the derivative penalty edges.
|
|
|||||
|
Flow in the penalty edges. Sign refers to the flow direction. |
|
|||||
|
Max size of the optimization domain.
|
|
|||||
|
Max capacity of the derivative penalty edges.
|
|
|||||
|
Flow in the penalty edges. Sign refers to the flow direction. |
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Max capacity of the derivative penalty edges.
|
|
|||||
|
Flow in the penalty edges. Sign refers to the flow direction. |
|
|||||
|
Max size of the optimization domain.
|
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Position to name a node of coordinate (x;y).
|
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Position to name a node of coordinate (x;y).
|
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Position to name a node of coordinate (x;y).
|
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Position to name a node of coordinate (x;y).
|
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Direction used to name an edge by the pair (node,direction).
|
|
|||||
|
Max size of the optimization domain.
|
1.2.18