CMS 3D CMS Logo

Point3DBase.h File Reference

#include "DataFormats/GeometryVector/interface/PointTag.h"
#include "DataFormats/GeometryVector/interface/PV3DBase.h"
#include "DataFormats/GeometryVector/interface/Point2DBase.h"
#include "DataFormats/GeometryVector/interface/Vector3DBase.h"

Go to the source code of this file.

Classes

class  Point3DBase< T, FrameTag >

Functions

template<typename T, typename U, class Frame>
Point3DBase< typename
PreciseFloatType< T, U >::Type,
Frame > 
operator+ (const Vector3DBase< T, Frame > &p, const Point3DBase< U, Frame > &v)
 Same as operator+(Point,Vector) (see above).
template<typename T, typename U, class Frame>
Point3DBase< typename
PreciseFloatType< T, U >::Type,
Frame > 
operator+ (const Point3DBase< T, Frame > &p, const Vector3DBase< U, Frame > &v)
 The sum of a Point and a Vector is a Point.
template<typename T, typename U, class Frame>
Point3DBase< typename
PreciseFloatType< T, U >::Type,
Frame > 
operator- (const Point3DBase< T, Frame > &p, const Vector3DBase< U, Frame > &v)
 The difference of a Point and a Vector is a Point.
template<typename T, typename U, class Frame>
Vector3DBase< typename
PreciseFloatType< T, U >::Type,
Frame > 
operator- (const Point3DBase< T, Frame > &p1, const Point3DBase< U, Frame > &p2)
 The difference of two points is a vector.


Function Documentation

template<typename T, typename U, class Frame>
Point3DBase< typename PreciseFloatType<T,U>::Type, Frame> operator+ ( const Vector3DBase< T, Frame > &  p,
const Point3DBase< U, Frame > &  v 
) [inline]

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

Definition at line 95 of file Point3DBase.h.

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

00095                                                                           {
00096   typedef Point3DBase< typename PreciseFloatType<T,U>::Type, Frame> RT;
00097   return RT( p.basicVector() + v.basicVector());
00098 }

template<typename T, typename U, class Frame>
Point3DBase< typename PreciseFloatType<T,U>::Type, Frame> operator+ ( const Point3DBase< T, Frame > &  p,
const Vector3DBase< 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 86 of file Point3DBase.h.

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

00086                                                                           {
00087   typedef Point3DBase< typename PreciseFloatType<T,U>::Type, Frame> RT;
00088   return RT( p.basicVector() + v.basicVector());
00089 }

template<typename T, typename U, class Frame>
Point3DBase< typename PreciseFloatType<T,U>::Type, Frame> operator- ( const Point3DBase< T, Frame > &  p,
const Vector3DBase< U, Frame > &  v 
) [inline]

The difference 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 117 of file Point3DBase.h.

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

00117                                                                           {
00118   typedef Point3DBase< typename PreciseFloatType<T,U>::Type, Frame> RT;
00119   return RT( p.basicVector() - v.basicVector());
00120 }

template<typename T, typename U, class Frame>
Vector3DBase< typename PreciseFloatType<T,U>::Type, Frame> operator- ( const Point3DBase< T, Frame > &  p1,
const Point3DBase< 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 106 of file Point3DBase.h.

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

00106                                                                            {
00107   typedef Vector3DBase< typename PreciseFloatType<T,U>::Type, Frame> RT;
00108   return RT( p1.basicVector() - p2.basicVector());
00109 }


Generated on Tue Jun 9 17:52:06 2009 for CMSSW by  doxygen 1.5.4