#ifndef _OTB_TRISKELE_ARRAY_TREE_BASE_TPP #define _OTB_TRISKELE_ARRAY_TREE_BASE_TPP inline ostream & operator << (ostream &out, const Connectivity &c) { BOOST_ASSERT (c >= 0 && c < 4); return out << connectivityName[c]; } inline ostream & operator << (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 CPrintEdge::CPrintEdge (const Edge &edge, const Size &size) : edge (edge), size (size) { } template inline ostream & CPrintEdge::print (ostream &out) const { // XXX if WeightT == uint8_t => print char :-( return out << edge.points[0] << ":" << edge.points[1] << ":" << edge.weight << ":" << point2idx (size, edge.points[0]) << ":" << point2idx (size, edge.points[1]); } template inline CPrintEdge printEdge (const Edge &edge, const Size &size) { return CPrintEdge (edge, size); } // ======================================== template inline CPrintEdges::CPrintEdges (const Edge edges[], const Size &size, const DimEdge edgesCount) : edges (edges), size (size), edgesCount (edgesCount) { } template inline ostream & CPrintEdges::print (ostream &out) const { for (int i = 0; i < edgesCount; ++i) out << printEdge (edges[i], size) << endl; return out; } template inline CPrintEdges printEdges (const Edge edges[], const Size &size, const DimEdge edgesCount) { return CPrintEdges (edges, size, edgesCount); } #endif // _OTB_TRISKELE_ARRAY_TREE_BASE_TPP