LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
SimpleGeo.h File Reference

Some simple functions to represent geometry entities. More...

#include <algorithm>
#include <array>
#include <stdexcept>

Go to the source code of this file.

Classes

struct  lar::util::simple_geo::Point2D< Data >
 2D point (x, y) (by default, with double precision) More...
 
struct  lar::util::simple_geo::Point3D< Data >
 3D point (x, y, z) (by default, with double precision) More...
 
class  lar::util::simple_geo::AreaBase< Point >
 Area/volume delimited by points: base/1D implementation. More...
 
class  lar::util::simple_geo::AreaBase< Point >::NullIntersection
 Exception thrown when result of intersection is null. More...
 
class  lar::util::simple_geo::Area< Point >
 Area delimited by two points. More...
 
class  lar::util::simple_geo::Volume< Point >
 Volume delimited by two points. More...
 
struct  lar::util::simple_geo::Range< Data >
 Definition of a range along one dimension. More...
 
struct  lar::util::simple_geo::Rectangle< Data >
 Definition of a rectangle from dimension ranges. More...
 

Namespaces

 lar
 LArSoft-specific namespace.
 
 lar::util
 LArSoft utility namespace.
 
 lar::util::simple_geo
 Simple class definitions for geometry concepts.
 

Functions

Dimensionless objects (points)
template<typename T >
bool lar::util::simple_geo::operator== (Point2D< T > const &a, Point2D< T > const &b)
 
template<typename T >
bool lar::util::simple_geo::operator!= (Point2D< T > const &a, Point2D< T > const &b)
 
template<typename T >
Point2D< T > lar::util::simple_geo::operator+ (Point2D< T > const &a, Point2D< T > const &b)
 
template<typename T >
Point2D< T > lar::util::simple_geo::operator* (Point2D< T > const &p, typename Point2D< T >::Data_t f)
 
template<typename T >
Point2D< T > lar::util::simple_geo::operator/ (Point2D< T > const &p, typename Point2D< T >::Data_t f)
 
template<typename Stream , typename T >
Stream & lar::util::simple_geo::operator<< (Stream &&out, Point2D< T > const &p)
 
template<typename T >
bool lar::util::simple_geo::operator== (Point3D< T > const &a, Point3D< T > const &b)
 
template<typename T >
bool lar::util::simple_geo::operator!= (Point3D< T > const &a, Point3D< T > const &b)
 
template<typename T >
Point3D< T > lar::util::simple_geo::operator+ (Point3D< T > const &a, Point3D< T > const &b)
 
template<typename T >
Point3D< T > lar::util::simple_geo::operator* (Point3D< T > const &p, typename Point2D< T >::Data_t f)
 
template<typename T >
Point3D< T > lar::util::simple_geo::operator/ (Point3D< T > const &p, typename Point2D< T >::Data_t f)
 
template<typename Stream , typename T >
Stream & lar::util::simple_geo::operator<< (Stream &&out, Point3D< T > const &p)
 
Point-bounded volumes
template<typename Stream , typename Point >
Stream & lar::util::simple_geo::operator<< (Stream &&out, AreaBase< Point > const &area)
 
Dimension-bounded volumes
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 )". More...
 
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". More...
 

Detailed Description

Some simple functions to represent geometry entities.

Author
Gianluca Petrillo (petri.nosp@m.llo@.nosp@m.fnal..nosp@m.gov)

This library is simple and header-only.

Definition in file SimpleGeo.h.