1 // abs.h
2 //
3 // Copyright (C) 2003, 2004 Jason Bevins
4 //
5 // This library is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU Lesser General Public License as published by
7 // the Free Software Foundation; either version 2.1 of the License, or (at
8 // your option) any later version.
9 //
10 // This library is distributed in the hope that it will be useful, but WITHOUT
11 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
13 // License (COPYING.txt) for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public License
16 // along with this library; if not, write to the Free Software Foundation,
17 // Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 //
19 // The developer's email is jlbezigvins@gmzigail.com (for great email, take
20 // off every 'zig'.)
21 //
22 
23 #ifndef NOISE_MODULE_ABS_H
24 #define NOISE_MODULE_ABS_H
25 
26 #include "modulebase.h"
27 
28 namespace noise
29 {
30 
31   namespace module {
32 
33     /// @addtogroup libnoise
34     /// @{
35 
36     /// @addtogroup modules
37     /// @{
38 
39     /// @defgroup modifiermodules Modifier Modules
40     /// @addtogroup modifiermodules
41     /// @{
42 
43     /// Noise module that outputs the absolute value of the output value from
44     /// a source module.
45     ///
46     /// @image html moduleabs.png
47     ///
48     /// This noise module requires one source module.
49     class Abs: public Module
50     {
51 
52       public:
53 
54         /// Constructor.
55         Abs ();
56 
GetSourceModuleCount()57         virtual int GetSourceModuleCount () const
58         {
59           return 1;
60         }
61 
62         virtual double GetValue (double x, double y, double z) const;
63 
64     };
65 
66     /// @}
67 
68     /// @}
69 
70     /// @}
71 
72   }
73 
74 }
75 
76 #endif
77