STIR 6.4.0
MinimalArrayFilter3D.h
Go to the documentation of this file.
1//
2//
3/*
4 Copyright (C) 2006 - 2007, Hammersmith Imanet Ltd
5 This file is part of STIR.
6
7 SPDX-License-Identifier: Apache-2.0
8
9 See STIR/LICENSE.txt for details
10*/
20
21#ifndef __stir_MinimalArrayFilter3D_H__
22#define __stir_MinimalArrayFilter3D_H__
23
25
26START_NAMESPACE_STIR
27
28template <typename coordT>
29class Coordinate3D;
30
50template <typename elemT>
51class MinimalArrayFilter3D : public ArrayFunctionObject_2ArgumentImplementation<3, elemT>
52{
53public:
54 explicit MinimalArrayFilter3D(const Coordinate3D<int>& mask_radius);
55 MinimalArrayFilter3D();
56 bool is_trivial() const override;
57
58private:
59 int mask_radius_x;
60 int mask_radius_y;
61 int mask_radius_z;
62
63 void do_it(Array<3, elemT>& out_array, const Array<3, elemT>& in_array) const override;
64
66
68 int extract_neighbours(Array<1, elemT>&, const Array<3, elemT>& array, const Coordinate3D<int>&) const;
69};
70
71END_NAMESPACE_STIR
72
73#endif
Declaration of class stir::ArrayFunctionObject_2ArgumentImplementation.
A convenience class for children of ArrayFunctionObject. It implements the in-place operator() in ter...
Definition ArrayFunctionObject_2ArgumentImplementation.h:42
This class defines multi-dimensional (numeric) arrays.
Definition Array.h:78
a templated class for 3-dimensional coordinates.
Definition Coordinate3D.h:43
bool is_trivial() const override
Should return true when the operations won't modify the object at all.
Definition MinimalArrayFilter3D.cxx:94