#ifndef _OTB_TRISKELE_ARRAY_TREE_BASE_TPP #define _OTB_TRISKELE_ARRAY_TREE_BASE_TPP inline std::ostream & operator << (std::ostream &out, const Connectivity &c) { BOOST_ASSERT (c >= 0 && c < 4); return out << connectivityName[c]; } inline std::ostream & operator << (std::ostream &out, const TileItem &t) { BOOST_ASSERT (t >= 0 && t < 3); return out << tileItemName[t]; } template inline void swapEdge (Edge &a, Edge &b) { Edge c = a; a = b; b = c; } template inline std::ostream & operator << (std::ostream &out, const Edge &edge) { return out << edge.points[0] << ":" << edge.points[1] << ":" << edge.weight; } template inline std::ostream & printEdge (std::ostream &out, const Edge &edge, const Size &size) { return out << edge.points[0] << ":" << edge.points[1] << ":" << ((uint32_t) edge.weight) << ":" << point2idx (size, edge.points[0]) << ":" << point2idx (size, edge.points[1]); } template inline std::ostream & printEdges (std::ostream &out, const std::vector &edges) { for (int i = 0; i < edges.size (); ++i) out << " " << edges [i]; return out; } template inline std::ostream & printEdges (std::ostream &out, const Edge edges[], const Size &size, const DimEdge edgesCount) { for (int i = 0; i < edgesCount; ++i) printEdge (out, edges[i], size) << std::endl; return out; } template inline std::ostream & printEdges (std::ostream &out, const std::vector &edges, const Size &size) { for (int i = 0; i < edges.size (); ++i) out << " [" << point2idx (size, edges [i].points[0]) << " " << point2idx (size, edges [i].points[1]) << " " << edges [i].weight << "]"; return out; } #endif // _OTB_TRISKELE_ARRAY_TREE_BASE_TPP