~ubuntu-branches/ubuntu/raring/openwalnut/raring

« back to all changes in this revision

Viewing changes to src/modules/dataCreator/WDataCreatorSphere.h

  • Committer: Package Import Robot
  • Author(s): Sebastian Eichelbaum
  • Date: 2012-12-12 11:26:32 UTC
  • mfrom: (3.1.1 sid)
  • Revision ID: package-import@ubuntu.com-20121212112632-xhiuwkxuz5h0idkh
Tags: 1.3.1+hg5849-1
* Minor changes compared to 1.3.0 but included several bug fixes.
* See http://www.openwalnut.org/versions/4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//---------------------------------------------------------------------------
 
2
//
 
3
// Project: OpenWalnut ( http://www.openwalnut.org )
 
4
//
 
5
// Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
 
6
// For more information see http://www.openwalnut.org/copying
 
7
//
 
8
// This file is part of OpenWalnut.
 
9
//
 
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.
 
14
//
 
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.
 
19
//
 
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/>.
 
22
//
 
23
//---------------------------------------------------------------------------
 
24
 
 
25
#ifndef WDATACREATORSPHERE_H
 
26
#define WDATACREATORSPHERE_H
 
27
 
 
28
#include <core/common/WObjectNDIP.h>
 
29
 
 
30
#include "WDataSetSingleCreatorInterface.h"
 
31
 
 
32
/**
 
33
 * Creates a sphere inside a given grid. Only works on scalar fields.
 
34
 */
 
35
class WDataCreatorSphere: public WObjectNDIP< WDataSetSingleCreatorInterface >
 
36
{
 
37
public:
 
38
    /**
 
39
     * Default constructor.
 
40
     */
 
41
    WDataCreatorSphere();
 
42
 
 
43
    /**
 
44
     * Destructor.
 
45
     */
 
46
    virtual ~WDataCreatorSphere();
 
47
 
 
48
    /**
 
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).
 
52
     *
 
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
 
58
     *
 
59
     * \return the value set for the given grid
 
60
     */
 
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 );
 
64
 
 
65
protected:
 
66
private:
 
67
    /**
 
68
     * Relative center coordinates
 
69
     */
 
70
    WPropPosition m_center;
 
71
 
 
72
    /**
 
73
     * The radius of the sphere in relative coordinates.
 
74
     */
 
75
    WPropDouble m_radius;
 
76
 
 
77
    /**
 
78
     * Clamp to 0 for all values below this one
 
79
     */
 
80
    WPropDouble m_lowerClamp;
 
81
 
 
82
    /**
 
83
     * Clamp to 0 for all values above
 
84
     */
 
85
    WPropDouble m_upperClamp;
 
86
 
 
87
    /**
 
88
     * To which value should be clamped?
 
89
     */
 
90
    WPropDouble m_lowerClampValue;
 
91
 
 
92
    /**
 
93
     * To which value should be clamped?
 
94
     */
 
95
    WPropDouble m_upperClampValue;
 
96
};
 
97
 
 
98
#endif  // WDATACREATORSPHERE_H
 
99