STIR 6.4.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
38START_NAMESPACE_STIR
39
50
51template <class coordT>
52class CartesianCoordinate3D : public Coordinate3D<coordT>
53{
54protected:
55 typedef Coordinate3D<coordT> base_type;
56 typedef typename base_type::base_type basebase_type;
57
58public:
59 inline CartesianCoordinate3D();
60 inline CartesianCoordinate3D(const coordT&, const coordT&, const coordT&);
61 inline CartesianCoordinate3D(const BasicCoordinate<3, coordT>& c);
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
76END_NAMESPACE_STIR
77
79
80#endif
81
82#ifdef STIR_USE_NO_TYPENAME
83#undef typename
84#endif
inline implementations for the stir::CartesianCoordinate3D<coordT> class
defines the stir::Coordinate3D<coordT> class
class BasicCoordinate<int num_dimensions, typename coordT> defines num_dimensions -dimensional coordi...
Definition BasicCoordinate.h:57