Project
Loading...
Searching...
No Matches
o2::mch::contour::impl Namespace Reference

Classes

class  HorizontalEdge
 
class  Interval
 
class  ManhattanEdge
 
class  Node
 
class  VerticalEdge
 

Typedefs

template<typename T >
using GetVertexPosFunc = T(*)(const Vertex< T > &)
 

Functions

template<typename T >
void sortVerticalEdges (std::vector< VerticalEdge< T > > &edges)
 
template<typename T >
Interval< T > interval (const VerticalEdge< T > &edge)
 
template<typename T >
std::vector< VerticalEdge< T > > getVerticalEdges (const Polygon< T > &polygon)
 
template<typename T >
std::vector< VerticalEdge< T > > getVerticalEdges (const std::vector< Polygon< T > > &polygons)
 
template<typename T >
getX (const Vertex< T > &v)
 
template<typename T >
getY (const Vertex< T > &v)
 
template<typename T >
std::vector< T > getPositions (const std::vector< Polygon< T > > &polygons, GetVertexPosFunc< T > func)
 
template<typename T >
std::vector< T > getYPositions (const std::vector< Polygon< T > > &polygons)
 
template<typename T >
std::vector< T > getXPositions (const std::vector< Polygon< T > > &polygons)
 
template<typename T >
std::vector< VerticalEdge< T > > sweep (Node< T > *segmentTree, const std::vector< VerticalEdge< T > > &polygonVerticalEdges)
 
template<typename T >
std::vector< HorizontalEdge< T > > verticalsToHorizontals (const std::vector< VerticalEdge< T > > &verticals)
 
template<typename T >
Contour< T > finalizeContour (const std::vector< VerticalEdge< T > > &verticals, const std::vector< HorizontalEdge< T > > &horizontals)
 
template<typename T >
bool isVertical (const ManhattanEdge< T > &edge)
 
template<typename T >
bool isHorizontal (const ManhattanEdge< T > &edge)
 
template<typename T >
top (const VerticalEdge< T > &edge)
 
template<typename T >
bottom (const VerticalEdge< T > &edge)
 
template<typename T >
bool isLeftEdge (const VerticalEdge< T > &edge)
 
template<typename T >
bool isRightEdge (const VerticalEdge< T > &edge)
 
template<typename T >
bool isTopToBottom (const VerticalEdge< T > &edge)
 
template<typename T >
bool isBottomToTop (const VerticalEdge< T > &edge)
 
template<typename T >
left (const HorizontalEdge< T > &edge)
 
template<typename T >
right (const HorizontalEdge< T > &edge)
 
template<typename T >
bool isLeftToRight (const HorizontalEdge< T > &edge)
 
template<typename T >
bool isRightToLeft (const HorizontalEdge< T > &edge)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const ManhattanEdge< T > &edge)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const VerticalEdge< T > &edge)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const HorizontalEdge< T > &edge)
 
template<typename T >
bool operator== (const ManhattanEdge< T > &lhs, const ManhattanEdge< T > &rhs)
 
template<typename T >
bool operator!= (const ManhattanEdge< T > &&lhs, const ManhattanEdge< T > &rhs)
 
template<typename T , typename U >
bool CanTypeFitValue (const U value)
 
bool areEqual (double a, double b)
 
bool areEqual (int a, int b)
 
bool isStrictlyBelow (double a, double b)
 
bool isStrictlyBelow (int a, int b)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const Interval< T > &i)
 
template<typename T >
Node< T > * buildNode (const std::vector< T > &values, int b, int e)
 
template<typename T >
bool isActive (const Node< T > &node)
 
template<typename T >
Node< T > * createSegmentTree (std::vector< T > values)
 
template<typename T >
void dump (const char *msg, const Node< T > &node, const Interval< T > &i)
 
template<typename T >
int numberOfLeaves (const Node< T > &rootNode)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const Node< T > &node)
 

Typedef Documentation

◆ GetVertexPosFunc

template<typename T >
using o2::mch::contour::impl::GetVertexPosFunc = typedef T (*)(const Vertex<T>&)

Definition at line 115 of file ContourCreator.inl.

Function Documentation

◆ areEqual() [1/2]

bool o2::mch::contour::impl::areEqual ( double  a,
double  b 
)
inline

Definition at line 41 of file Helper.h.

◆ areEqual() [2/2]

bool o2::mch::contour::impl::areEqual ( int  a,
int  b 
)
inline

Definition at line 46 of file Helper.h.

◆ bottom()

template<typename T >
T o2::mch::contour::impl::bottom ( const VerticalEdge< T > &  edge)

Definition at line 96 of file Edge.h.

◆ buildNode()

template<typename T >
Node< T > * o2::mch::contour::impl::buildNode ( const std::vector< T > &  values,
int  b,
int  e 
)

Definition at line 118 of file SegmentTree.h.

◆ CanTypeFitValue()

template<typename T , typename U >
bool o2::mch::contour::impl::CanTypeFitValue ( const U  value)

Definition at line 32 of file Helper.h.

◆ createSegmentTree()

template<typename T >
Node< T > * o2::mch::contour::impl::createSegmentTree ( std::vector< T >  values)

Definition at line 137 of file SegmentTree.h.

◆ dump()

template<typename T >
void o2::mch::contour::impl::dump ( const char msg,
const Node< T > &  node,
const Interval< T > &  i 
)

Definition at line 189 of file SegmentTree.h.

◆ finalizeContour()

template<typename T >
Contour< T > o2::mch::contour::impl::finalizeContour ( const std::vector< VerticalEdge< T > > &  verticals,
const std::vector< HorizontalEdge< T > > &  horizontals 
)

Definition at line 231 of file ContourCreator.inl.

◆ getPositions()

template<typename T >
std::vector< T > o2::mch::contour::impl::getPositions ( const std::vector< Polygon< T > > &  polygons,
GetVertexPosFunc< T >  func 
)

Definition at line 118 of file ContourCreator.inl.

◆ getVerticalEdges() [1/2]

template<typename T >
std::vector< VerticalEdge< T > > o2::mch::contour::impl::getVerticalEdges ( const Polygon< T > &  polygon)

Return the vertical edges of the input polygon

Definition at line 77 of file ContourCreator.inl.

◆ getVerticalEdges() [2/2]

template<typename T >
std::vector< VerticalEdge< T > > o2::mch::contour::impl::getVerticalEdges ( const std::vector< Polygon< T > > &  polygons)

Definition at line 92 of file ContourCreator.inl.

◆ getX()

template<typename T >
T o2::mch::contour::impl::getX ( const Vertex< T > &  v)

Definition at line 103 of file ContourCreator.inl.

◆ getXPositions()

template<typename T >
std::vector< T > o2::mch::contour::impl::getXPositions ( const std::vector< Polygon< T > > &  polygons)

Definition at line 139 of file ContourCreator.inl.

◆ getY()

template<typename T >
T o2::mch::contour::impl::getY ( const Vertex< T > &  v)

Definition at line 109 of file ContourCreator.inl.

◆ getYPositions()

template<typename T >
std::vector< T > o2::mch::contour::impl::getYPositions ( const std::vector< Polygon< T > > &  polygons)

Definition at line 133 of file ContourCreator.inl.

◆ interval()

template<typename T >
Interval< T > o2::mch::contour::impl::interval ( const VerticalEdge< T > &  edge)

Definition at line 69 of file ContourCreator.inl.

◆ isActive()

template<typename T >
bool o2::mch::contour::impl::isActive ( const Node< T > &  node)

Definition at line 131 of file SegmentTree.h.

◆ isBottomToTop()

template<typename T >
bool o2::mch::contour::impl::isBottomToTop ( const VerticalEdge< T > &  edge)

Definition at line 120 of file Edge.h.

◆ isHorizontal()

template<typename T >
bool o2::mch::contour::impl::isHorizontal ( const ManhattanEdge< T > &  edge)

Definition at line 62 of file Edge.h.

◆ isLeftEdge()

template<typename T >
bool o2::mch::contour::impl::isLeftEdge ( const VerticalEdge< T > &  edge)

Definition at line 102 of file Edge.h.

◆ isLeftToRight()

template<typename T >
bool o2::mch::contour::impl::isLeftToRight ( const HorizontalEdge< T > &  edge)

Definition at line 138 of file Edge.h.

◆ isRightEdge()

template<typename T >
bool o2::mch::contour::impl::isRightEdge ( const VerticalEdge< T > &  edge)

Definition at line 108 of file Edge.h.

◆ isRightToLeft()

template<typename T >
bool o2::mch::contour::impl::isRightToLeft ( const HorizontalEdge< T > &  edge)

Definition at line 144 of file Edge.h.

◆ isStrictlyBelow() [1/2]

bool o2::mch::contour::impl::isStrictlyBelow ( double  a,
double  b 
)
inline

Definition at line 48 of file Helper.h.

◆ isStrictlyBelow() [2/2]

bool o2::mch::contour::impl::isStrictlyBelow ( int  a,
int  b 
)
inline

Definition at line 50 of file Helper.h.

◆ isTopToBottom()

template<typename T >
bool o2::mch::contour::impl::isTopToBottom ( const VerticalEdge< T > &  edge)

Definition at line 114 of file Edge.h.

◆ isVertical()

template<typename T >
bool o2::mch::contour::impl::isVertical ( const ManhattanEdge< T > &  edge)

Definition at line 56 of file Edge.h.

◆ left()

template<typename T >
T o2::mch::contour::impl::left ( const HorizontalEdge< T > &  edge)

Definition at line 126 of file Edge.h.

◆ numberOfLeaves()

template<typename T >
int o2::mch::contour::impl::numberOfLeaves ( const Node< T > &  rootNode)

Definition at line 281 of file SegmentTree.h.

◆ operator!=()

template<typename T >
bool o2::mch::contour::impl::operator!= ( const ManhattanEdge< T > &&  lhs,
const ManhattanEdge< T > &  rhs 
)

Definition at line 179 of file Edge.h.

◆ operator<<() [1/5]

template<typename T >
std::ostream & o2::mch::contour::impl::operator<< ( std::ostream &  os,
const HorizontalEdge< T > &  edge 
)

Definition at line 165 of file Edge.h.

◆ operator<<() [2/5]

template<typename T >
std::ostream & o2::mch::contour::impl::operator<< ( std::ostream &  os,
const Interval< T > &  i 
)
inline

Definition at line 70 of file Interval.h.

◆ operator<<() [3/5]

template<typename T >
std::ostream & o2::mch::contour::impl::operator<< ( std::ostream &  os,
const ManhattanEdge< T > &  edge 
)

Definition at line 150 of file Edge.h.

◆ operator<<() [4/5]

template<typename T >
std::ostream & o2::mch::contour::impl::operator<< ( std::ostream &  os,
const Node< T > &  node 
)

Definition at line 288 of file SegmentTree.h.

◆ operator<<() [5/5]

template<typename T >
std::ostream & o2::mch::contour::impl::operator<< ( std::ostream &  os,
const VerticalEdge< T > &  edge 
)

Definition at line 157 of file Edge.h.

◆ operator==()

template<typename T >
bool o2::mch::contour::impl::operator== ( const ManhattanEdge< T > &  lhs,
const ManhattanEdge< T > &  rhs 
)

Definition at line 173 of file Edge.h.

◆ right()

template<typename T >
T o2::mch::contour::impl::right ( const HorizontalEdge< T > &  edge)

Definition at line 132 of file Edge.h.

◆ sortVerticalEdges()

template<typename T >
void o2::mch::contour::impl::sortVerticalEdges ( std::vector< VerticalEdge< T > > &  edges)

Definition at line 37 of file ContourCreator.inl.

◆ sweep()

template<typename T >
std::vector< VerticalEdge< T > > o2::mch::contour::impl::sweep ( Node< T > *  segmentTree,
const std::vector< VerticalEdge< T > > &  polygonVerticalEdges 
)

Definition at line 145 of file ContourCreator.inl.

◆ top()

template<typename T >
T o2::mch::contour::impl::top ( const VerticalEdge< T > &  edge)

Definition at line 90 of file Edge.h.

◆ verticalsToHorizontals()

template<typename T >
std::vector< HorizontalEdge< T > > o2::mch::contour::impl::verticalsToHorizontals ( const std::vector< VerticalEdge< T > > &  verticals)

Generates horizontal edges from the vertical ones The horizontals are ordered relative to the verticals, i.e. the first horizontal should be the edge following the first vertical, etc...

Parameters
verticals
Returns
the horizontals, in the relevant order

Definition at line 192 of file ContourCreator.inl.