1 // invert.h2 //3 // Copyright (C) 2003, 2004 Jason Bevins4 //5 // This library is free software; you can redistribute it and/or modify it6 // under the terms of the GNU Lesser General Public License as published by7 // the Free Software Foundation; either version 2.1 of the License, or (at8 // your option) any later version.9 //10 // This library is distributed in the hope that it will be useful, but WITHOUT11 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public13 // License (COPYING.txt) for more details.14 //15 // You should have received a copy of the GNU Lesser General Public License16 // along with this library; if not, write to the Free Software Foundation,17 // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA18 //19 // The developer's email is jlbezigvins@gmzigail.com (for great email, take20 // off every 'zig'.)21 //22 modulenoise.mod.invert;
23 24 private {
25 importnoise.mod.modulebase;
26 }
27 28 /// @addtogroup libnoise29 /// @{30 31 /// @addtogroup modules32 /// @{33 34 /// @addtogroup modifiermodules35 /// @{36 37 /// Noise module that inverts the output value from a source module.38 ///39 /// @image html moduleinvert.png40 ///41 /// This noise module requires one source module.42 classInvert : Mod43 {
44 45 public:
46 47 /// Constructor.48 this()
49 {
50 super(this.GetSourceModCount());
51 }
52 53 overrideintGetSourceModCount () const54 {
55 return1;
56 }
57 58 overridedoubleGetValue (doublex, doubley, doublez) const59 {
60 assert (m_pSourceMod[0] !isnull);
61 62 return -(m_pSourceMod[0].GetValue (x, y, z));
63 }
64 65 };
66 67 /// @}68 69 /// @}70 71 /// @}