All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes
lar::util::simple_geo Namespace Reference

Simple class definitions for geometry concepts. More...

Classes

struct  Point2D
 2D point (x, y) (by default, with double precision) More...
 
struct  Point3D
 3D point (x, y, z) (by default, with double precision) More...
 
class  AreaBase
 Area/volume delimited by points: base/1D implementation. More...
 
class  Area
 Area delimited by two points. More...
 
class  Volume
 Volume delimited by two points. More...
 
struct  Range
 Definition of a range along one dimension. More...
 
struct  Rectangle
 Definition of a rectangle from dimension ranges. More...
 

Functions

Dimensionless objects (points)
template<typename T >
bool operator== (Point2D< T > const &a, Point2D< T > const &b)
 
template<typename T >
bool operator!= (Point2D< T > const &a, Point2D< T > const &b)
 
template<typename T >
Point2D< T > operator+ (Point2D< T > const &a, Point2D< T > const &b)
 
template<typename T >
Point2D< T > operator* (Point2D< T > const &p, typename Point2D< T >::Data_t f)
 
template<typename T >
Point2D< T > operator/ (Point2D< T > const &p, typename Point2D< T >::Data_t f)
 
template<typename Stream , typename T >
Streamoperator<< (Stream &&out, Point2D< T > const &p)
 
template<typename T >
bool operator== (Point3D< T > const &a, Point3D< T > const &b)
 
template<typename T >
bool operator!= (Point3D< T > const &a, Point3D< T > const &b)
 
template<typename T >
Point3D< T > operator+ (Point3D< T > const &a, Point3D< T > const &b)
 
template<typename T >
Point3D< T > operator* (Point3D< T > const &p, typename Point2D< T >::Data_t f)
 
template<typename T >
Point3D< T > operator/ (Point3D< T > const &p, typename Point2D< T >::Data_t f)
 
template<typename Stream , typename T >
Streamoperator<< (Stream &&out, Point3D< T > const &p)
 
Point-bounded volumes
template<typename Stream , typename Point >
Streamoperator<< (Stream &&out, AreaBase< Point > const &area)
 
Dimension-bounded volumes
template<typename Stream , typename Data >
Streamoperator<< (Stream &&out, Range< Data > const &range)
 Prints the specified range to a stream: "( lower -- upper )". More...
 
template<typename Stream , typename Data >
Streamoperator<< (Stream &&out, Rectangle< Data > const &rect)
 Prints the specified rectangle to a stream: "w=Wrange d=Drange". More...
 

Detailed Description

Simple class definitions for geometry concepts.

This namespace provides data structures for "points" and extended structures.

Points are either 2D (Point2D) or 3D (Point3D).

The extended structures are offered in two flavours:

Function Documentation

template<typename T >
bool lar::util::simple_geo::operator!= ( Point2D< T > const &  a,
Point2D< T > const &  b 
)

Definition at line 67 of file SimpleGeo.h.

68  { return (a.x != b.x) || (a.y != b.y); }
process_name gaushit a
template<typename T >
bool lar::util::simple_geo::operator!= ( Point3D< T > const &  a,
Point3D< T > const &  b 
)

Definition at line 100 of file SimpleGeo.h.

101  { return (a.x != b.x) || (a.y != b.y) || (a.z != b.z); }
process_name gaushit a
template<typename T >
Point2D<T> lar::util::simple_geo::operator* ( Point2D< T > const &  p,
typename Point2D< T >::Data_t  f 
)

Definition at line 73 of file SimpleGeo.h.

74  { return { p.x * f, p.y * f }; }
pdgs p
Definition: selectors.fcl:22
template<typename T >
Point3D<T> lar::util::simple_geo::operator* ( Point3D< T > const &  p,
typename Point2D< T >::Data_t  f 
)

Definition at line 106 of file SimpleGeo.h.

107  { return { p.x * f, p.y * f, p.z * f }; }
pdgs p
Definition: selectors.fcl:22
template<typename T >
Point2D<T> lar::util::simple_geo::operator+ ( Point2D< T > const &  a,
Point2D< T > const &  b 
)

Definition at line 70 of file SimpleGeo.h.

71  { return { a.x + b.x, a.y + b.y }; }
process_name gaushit a
template<typename T >
Point3D<T> lar::util::simple_geo::operator+ ( Point3D< T > const &  a,
Point3D< T > const &  b 
)

Definition at line 103 of file SimpleGeo.h.

104  { return { a.x + b.x, a.y + b.y, a.z + b.z }; }
process_name gaushit a
template<typename T >
Point2D<T> lar::util::simple_geo::operator/ ( Point2D< T > const &  p,
typename Point2D< T >::Data_t  f 
)

Definition at line 76 of file SimpleGeo.h.

77  { return { p.x / f, p.y / f }; }
pdgs p
Definition: selectors.fcl:22
template<typename T >
Point3D<T> lar::util::simple_geo::operator/ ( Point3D< T > const &  p,
typename Point2D< T >::Data_t  f 
)

Definition at line 109 of file SimpleGeo.h.

110  { return { p.x / f, p.y / f, p.z / f }; }
pdgs p
Definition: selectors.fcl:22
template<typename Stream , typename T >
Stream& lar::util::simple_geo::operator<< ( Stream &&  out,
Point2D< T > const &  p 
)

Definition at line 79 of file SimpleGeo.h.

80  { out << "( " << p.x << " ; " << p.y << " )"; return out; }
pdgs p
Definition: selectors.fcl:22
template<typename Stream , typename T >
Stream& lar::util::simple_geo::operator<< ( Stream &&  out,
Point3D< T > const &  p 
)

Definition at line 112 of file SimpleGeo.h.

113  {
114  out << "( " << p.x << " ; " << p.y << " ; " << p.z << " )";
115  return out;
116  }
pdgs p
Definition: selectors.fcl:22
template<typename Stream , typename Point >
Stream& lar::util::simple_geo::operator<< ( Stream &&  out,
AreaBase< Point > const &  area 
)

Definition at line 255 of file SimpleGeo.h.

256  { out << area.Min() << " - " << area.Max(); return out; }
template<typename Stream , typename Data >
Stream & lar::util::simple_geo::operator<< ( Stream &&  out,
Range< Data > const &  range 
)

Prints the specified range to a stream: "( lower -- upper )".

Definition at line 507 of file SimpleGeo.h.

508 {
509  out << "( " << range.lower << " -- " << range.upper << " )";
510  return out;
511 } // operator<< (Range)
template<typename Stream , typename Data >
Stream & lar::util::simple_geo::operator<< ( Stream &&  out,
Rectangle< Data > const &  rect 
)

Prints the specified rectangle to a stream: "w=Wrange d=Drange".

Definition at line 537 of file SimpleGeo.h.

538 {
539  out << "w=" << rect.width << " d=" << rect.depth;
540  return out;
541 } // operator<< (Rectangle)
template<typename T >
bool lar::util::simple_geo::operator== ( Point2D< T > const &  a,
Point2D< T > const &  b 
)

Definition at line 64 of file SimpleGeo.h.

65  { return (a.x == b.x) && (a.y == b.y); }
process_name gaushit a
template<typename T >
bool lar::util::simple_geo::operator== ( Point3D< T > const &  a,
Point3D< T > const &  b 
)

Definition at line 97 of file SimpleGeo.h.

98  { return (a.x == b.x) && (a.y == b.y) && (a.z == b.z); }
process_name gaushit a