STIR  6.2.0
CartesianCoordinate3D.h
Go to the documentation of this file.
1 #ifndef __CartesianCoordinate3D_H__
2 #define __CartesianCoordinate3D_H__
3 //
4 //
16 /*
17  Copyright (C) 2000 PARAPET partners
18  Copyright (C) 2000- 2009-06-22, Hammersmith Imanet Ltd
19  Copyright (C) 2011-07-01 - 2011, Kris Thielemans
20  This file is part of STIR.
21 
22  SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
23 
24  See STIR/LICENSE.txt for details
25 */
26 
27 #include "stir/Coordinate3D.h"
28 
29 #ifdef STIR_USE_NO_TYPENAME
30 /* horrible work-around for compilers that do not handle 'typename'
31  correctly.
32  This work-around relies on the fact that you do not use 'typename'
33  in the template parameters (use 'class' instead)
34 */
35 # define typename
36 #endif
37 
38 START_NAMESPACE_STIR
39 
51 template <class coordT>
52 class CartesianCoordinate3D : public Coordinate3D<coordT>
53 {
54 protected:
56  typedef typename base_type::base_type basebase_type;
57 
58 public:
59  inline CartesianCoordinate3D();
60  inline CartesianCoordinate3D(const coordT&, const coordT&, const coordT&);
62  inline CartesianCoordinate3D& operator=(const BasicCoordinate<3, coordT>& c);
63  inline CartesianCoordinate3D& operator=(const coordT& c);
64 #ifdef OLDDESIGN
65  inline CartesianCoordinate3D(const Point3D& p);
66 #endif
67 
68  inline coordT& z();
69  inline coordT z() const;
70  inline coordT& y();
71  inline coordT y() const;
72  inline coordT& x();
73  inline coordT x() const;
74 };
75 
76 END_NAMESPACE_STIR
77 
79 
80 #endif
81 
82 #ifdef STIR_USE_NO_TYPENAME
83 #undef typename
84 #endif
a templated class for 3-dimensional coordinates.
Definition: CartesianCoordinate3D.h:52
inline implementations for the stir::CartesianCoordinate3D<coordT> class
defines the stir::Coordinate3D<coordT> class
a templated class for 3-dimensional coordinates.
Definition: Coordinate3D.h:42