CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Functions
Point2DBase.h File Reference
#include "DataFormats/GeometryVector/interface/PointTag.h"
#include "DataFormats/GeometryVector/interface/PV2DBase.h"
#include "DataFormats/GeometryVector/interface/Vector2DBase.h"

Go to the source code of this file.

Classes

class  Point2DBase< T, FrameTag >
 

Functions

template<typename T , typename U , class Frame >
Point2DBase< typename
PreciseFloatType< T, U >::Type,
Frame > 
operator+ (const Point2DBase< T, Frame > &p, const Vector2DBase< U, Frame > &v)
 
template<typename T , typename U , class Frame >
Point2DBase< typename
PreciseFloatType< T, U >::Type,
Frame > 
operator+ (const Vector2DBase< T, Frame > &p, const Point2DBase< U, Frame > &v)
 
template<typename T , typename U , class Frame >
Vector2DBase< typename
PreciseFloatType< T, U >::Type,
Frame > 
operator- (const Point2DBase< T, Frame > &p1, const Point2DBase< U, Frame > &p2)
 

Function Documentation

template<typename T , typename U , class Frame >
Point2DBase<typename PreciseFloatType<T, U>::Type, Frame> operator+ ( const Point2DBase< T, Frame > &  p,
const Vector2DBase< U, Frame > &  v 
)
inline

The sum of a Point and a Vector is a Point. The arguments must be defined in the same reference frame. The resulting point has the higher precision of the precisions of the two arguments.

Definition at line 62 of file Point2DBase.h.

References PV2DBase< T, PointTag, FrameTag >::basicVector(), and PV2DBase< T, VectorTag, FrameTag >::basicVector().

63  {
65  return RT(p.basicVector() + v.basicVector());
66 }
SOAFrame< float > Frame
const BasicVectorType & basicVector() const
Definition: PV2DBase.h:37
template<typename T , typename U , class Frame >
Point2DBase<typename PreciseFloatType<T, U>::Type, Frame> operator+ ( const Vector2DBase< T, Frame > &  p,
const Point2DBase< U, Frame > &  v 
)
inline

Same as operator+(Point,Vector) (see above)

Definition at line 71 of file Point2DBase.h.

References PV2DBase< T, VectorTag, FrameTag >::basicVector(), and PV2DBase< T, PointTag, FrameTag >::basicVector().

72  {
74  return RT(p.basicVector() + v.basicVector());
75 }
SOAFrame< float > Frame
const BasicVectorType & basicVector() const
Definition: PV2DBase.h:37
template<typename T , typename U , class Frame >
Vector2DBase<typename PreciseFloatType<T, U>::Type, Frame> operator- ( const Point2DBase< T, Frame > &  p1,
const Point2DBase< U, Frame > &  p2 
)
inline

The difference of two points is a vector. The arguments must be defined in the same reference frame. The resulting vector has the higher precision of the precisions of the two arguments.

Definition at line 82 of file Point2DBase.h.

References PV2DBase< T, PointTag, FrameTag >::basicVector().

83  {
85  return RT(p1.basicVector() - p2.basicVector());
86 }
SOAFrame< float > Frame
const BasicVectorType & basicVector() const
Definition: PV2DBase.h:37