1
//---------------------------------------------------------------------------
3
// Project: OpenWalnut ( http://www.openwalnut.org )
5
// Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
6
// For more information see http://www.openwalnut.org/copying
8
// This file is part of OpenWalnut.
10
// OpenWalnut is free software: you can redistribute it and/or modify
11
// it under the terms of the GNU Lesser General Public License as published by
12
// the Free Software Foundation, either version 3 of the License, or
13
// (at your option) any later version.
15
// OpenWalnut is distributed in the hope that it will be useful,
16
// but WITHOUT ANY WARRANTY; without even the implied warranty of
17
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
// GNU Lesser General Public License for more details.
20
// You should have received a copy of the GNU Lesser General Public License
21
// along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
23
//---------------------------------------------------------------------------
25
#ifndef WDATACREATORSPHERE_H
26
#define WDATACREATORSPHERE_H
28
#include <core/common/WObjectNDIP.h>
30
#include "WDataSetSingleCreatorInterface.h"
33
* Creates a sphere inside a given grid. Only works on scalar fields.
35
class WDataCreatorSphere: public WObjectNDIP< WDataSetSingleCreatorInterface >
39
* Default constructor.
46
virtual ~WDataCreatorSphere();
49
* Create the dataset. This needs to be implemented by all the creators you write. This method is designed to be applicable to all kinds of
50
* WDataSetSingle that use WValueSetBase. Your implementation does not need to support all types. If you do not support any order/dimension
51
* combination, throw an exception (like by using WAssert).
53
* \param order the tensor order of the values stored in this WValueSet
54
* \param dimension the tensor dimension of the values stored in this WValueSet
55
* \param progress the progress instance you should increment each time you fill the value for one voxel.
56
* \param grid the grid on which the value set has to be build
57
* \param type the value type in the value set
59
* \return the value set for the given grid
61
virtual WValueSetBase::SPtr operator()( WProgress::SPtr progress,
62
WGridRegular3D::ConstSPtr grid, unsigned char order = 0, unsigned char dimension = 1,
63
dataType type = W_DT_FLOAT );
68
* Relative center coordinates
70
WPropPosition m_center;
73
* The radius of the sphere in relative coordinates.
78
* Clamp to 0 for all values below this one
80
WPropDouble m_lowerClamp;
83
* Clamp to 0 for all values above
85
WPropDouble m_upperClamp;
88
* To which value should be clamped?
90
WPropDouble m_lowerClampValue;
93
* To which value should be clamped?
95
WPropDouble m_upperClampValue;
98
#endif // WDATACREATORSPHERE_H