ROOT logo
// $Id: STabletPoint.h 2421 2010-07-25 18:33:07Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

#ifndef Tmp1_STabletPoint_H
#define Tmp1_STabletPoint_H

#include "Stones/HTrans.h"

#include <vector>

class STabletPoint : public HPointF
{
public:
  Float_t t, p;

  STabletPoint() : HPointF(), t(0), p(0) {}
  STabletPoint(Float_t _x, Float_t _y, Float_t _z, Float_t _t, Float_t _p) :
    HPointF(_x, _y, _z), t(_t), p(_p) {}

  STabletPoint& operator+=(const STabletPoint& a) { HPointF::operator+=(a); t += a.t; p += a.p; return *this; }
  STabletPoint& operator-=(const STabletPoint& a) { HPointF::operator-=(a); t -= a.t; p -= a.p; return *this; }
  STabletPoint& operator*=(Float_t f)             { HPointF::operator*=(f); t *= f;   p *= f;   return *this; }
  STabletPoint& operator/=(Float_t d)             { return operator*=(1/d); }

  void Print() const;

  ClassDefNV(STabletPoint, 1);
}; // endclass STabletPoint

//------------------------------------------------------------------------------

typedef vector<STabletPoint>            vSTabletPoint_t;
typedef vector<STabletPoint>::iterator  vSTabletPoint_i;

//------------------------------------------------------------------------------

inline STabletPoint operator+(const STabletPoint& a, const STabletPoint& b)
{
   STabletPoint r(a);
   return r += b;
}

inline STabletPoint operator-(const STabletPoint& a, const STabletPoint& b)
{
   STabletPoint r(a);
   return r -= b;
}

inline STabletPoint operator*(const STabletPoint& a, Float_t b)
{
   STabletPoint r(a);
   return r *= b;
}

inline STabletPoint operator*(Float_t b, const STabletPoint& a)
{
   STabletPoint r(a);
   return r *= b;
}

inline STabletPoint operator/(const STabletPoint& a, Float_t b)
{
   STabletPoint r(a);
   return r /= b;
}

#endif
 STabletPoint.h:1
 STabletPoint.h:2
 STabletPoint.h:3
 STabletPoint.h:4
 STabletPoint.h:5
 STabletPoint.h:6
 STabletPoint.h:7
 STabletPoint.h:8
 STabletPoint.h:9
 STabletPoint.h:10
 STabletPoint.h:11
 STabletPoint.h:12
 STabletPoint.h:13
 STabletPoint.h:14
 STabletPoint.h:15
 STabletPoint.h:16
 STabletPoint.h:17
 STabletPoint.h:18
 STabletPoint.h:19
 STabletPoint.h:20
 STabletPoint.h:21
 STabletPoint.h:22
 STabletPoint.h:23
 STabletPoint.h:24
 STabletPoint.h:25
 STabletPoint.h:26
 STabletPoint.h:27
 STabletPoint.h:28
 STabletPoint.h:29
 STabletPoint.h:30
 STabletPoint.h:31
 STabletPoint.h:32
 STabletPoint.h:33
 STabletPoint.h:34
 STabletPoint.h:35
 STabletPoint.h:36
 STabletPoint.h:37
 STabletPoint.h:38
 STabletPoint.h:39
 STabletPoint.h:40
 STabletPoint.h:41
 STabletPoint.h:42
 STabletPoint.h:43
 STabletPoint.h:44
 STabletPoint.h:45
 STabletPoint.h:46
 STabletPoint.h:47
 STabletPoint.h:48
 STabletPoint.h:49
 STabletPoint.h:50
 STabletPoint.h:51
 STabletPoint.h:52
 STabletPoint.h:53
 STabletPoint.h:54
 STabletPoint.h:55
 STabletPoint.h:56
 STabletPoint.h:57
 STabletPoint.h:58
 STabletPoint.h:59
 STabletPoint.h:60
 STabletPoint.h:61
 STabletPoint.h:62
 STabletPoint.h:63
 STabletPoint.h:64
 STabletPoint.h:65
 STabletPoint.h:66
 STabletPoint.h:67
 STabletPoint.h:68
 STabletPoint.h:69
 STabletPoint.h:70