ROOT logo
// $Id: ZTrans.h 2394 2010-06-27 21:37:17Z 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 GledCore_ZTrans_H
#define GledCore_ZTrans_H

#include <Stones/HTrans.h>


//==============================================================================
// ZPoint
//==============================================================================

class ZPoint : public HPoint<Double32_t>
{
  typedef HPoint<Double32_t> TP;

public:
  ZPoint() : TP() {}
  ZPoint(const Float_t* p)  : TP(p) {}
  ZPoint(const Double_t* p) : TP(p) {}
  ZPoint(Double_t _x, Double_t _y, Double_t _z) : TP(_x, _y, _z) {}
  template <typename OO>
  ZPoint(const HPoint<OO>& v) : TP(v.x, v.y, v.z) {}

  ClassDefNV(ZPoint, 1); // Simple, streamable 3D point.
};


//==============================================================================
// ZTrans -- 3D transformation in generalised coordinates
//==============================================================================

class ZTrans : public HTrans<Double32_t>
{
  typedef HTrans<Double32_t> TP;

public:
  ZTrans() : TP() {}
  ZTrans(const ZTrans& z) : TP(z) {}
  //ZTrans(const Double_t arr[16]);
  //ZTrans(const Float_t  arr[16]);
  ~ZTrans() {}

  // Add this explicit setter -- otherwise CINT can't do it.
  using HTrans<Double32_t>::SetBaseVec;
  void SetBaseVec(Int_t b, const ZPoint& v)
  { SetBaseVec(b, v.x, v.y, v.z); }

  ZTrans operator*(const ZTrans& t);

  ClassDefNV(ZTrans, 1); // Column-major 4x4 matrix for homogeneous coordinates.
};

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